文章内容

2018/9/11 15:54:20,作 者: 黄兵

android app 版本控制

版本控制是应用升级和维护策略的关键组成部分。版本控制很重要,因为:

  • 用户需要了解其设备上所安装应用的具体版本信息,以及可供安装的升级版本。
  • 其他应用(包括您作为套件发布的其他应用)需要查询系统获取应用的版本,以确定兼容性和识别依赖关系。
  • 发布应用时所使用的服务可能也需要查询应用的版本,以便它们可以向用户显示版本。发布服务可能还需要检查应用版本,以确定兼容性和建立升级/降级关系。

Android 系统不会使用应用版本信息对第三方应用的升级、降级或兼容性进行限制,而是由您负责在您的应用内执行版本限制,或通知用户版本限制与局限性。不过,Android 系统会根据构建文件中 minSdkVersion 设置的说明强制执行系统版本兼容性。该设置允许应用指定与其兼容的最低系统 API。

您可以将这些设置包含到 defaultConfig {} 块中(嵌套在模块的 build.gradle 文件的 android {} 块内部),为它们定义默认值。随后,您可以通过为各个构建类型或产品风味定义单独的值,为应用的不同版本替换这些默认值。下面的 build.gradle 文件显示了 defaultConfig {} 块和 productFlavors {} 块中的 versionCode 和 versionName设置。

具体位置如图所示:



android {
 
...
  defaultConfig
{
   
...
    versionCode
2
    versionName
"1.1"
 
}
  productFlavors
{
    demo
{
     
...
      versionName
"1.1-demo"
   
}
    full
{
     
...
   
}
 
}
}
android {
 
...
  defaultConfig
{
   
...
    versionCode
2
    versionName
"1.1"
 
}
  productFlavors
{
    demo
{
     
...
      versionName
"1.1-demo"
   
}
    full
{
     
...
   
}
 
}
}
android {
 
...
  defaultConfig
{
   
...
    versionCode
2
    versionName
"1.1"
 
}
  productFlavors
{
    demo
{
     
...
      versionName
"1.1-demo"
   
}
    full
{
     
...
   
}
 
}
}
android {
 
...
  defaultConfig
{
   
...
    versionCode
2
    versionName
"1.1"
 
}
  productFlavors
{
    demo
{
     
...
      versionName
"1.1-demo"
   
}
    full
{
     
...
   
}
 
}
}

在本示例的 defaultConfig {} 块中,versionCode 值表示当前 APK 包含应用的第二个版本,versionName 字符串则指定应用将以版本 1.1 向用户显示。此 build.gradle 文件还定义了两个产品风味,即“demo”和“full”。由于“demo”产品风味将 versionName 定义为“1.1-demo”,“demo”将使用此 versionName,而不是默认值。“full”产品风味块未定义 versionName,因此它将使用默认值 1.1。

Android 框架提供了一个 API,让您可以查询系统,获取有关应用的版本信息。要获取版本信息,请使用 PackageManager 的 getPackageInfo(java.lang.String, int) 方法。


参考资料:对您的应用进行版本控制

分享到:

发表评论

评论列表