在程序升级/维护过程中,版本控制是一个很重要的内容。
用户需要了解安装到设备上的应用程序的版本信息,以及了解哪些版本可以进行升级。
其它应用程序包括你发布的其它程序需要向系统查询你的应用程序的版本,来确定相互之间的兼容性。
你的应用程序发布的服务可能也需要查询版本来显示给用户。
Android系统自身不检查应用程序的版本信息,也不会强制限制升级或兼容等。相反的,只是用户或应用程序自身对应用程序的版本有限制。
Android系统会对程序manifest中描述的系统版本(minSdkVersion特性指定)进行检查。这样,应用程序可以指定兼容的最低系统 API等级。了解更多信息,请参考 指定程序的系统API等级 。
应用程序版本设定
为了定义应用程序的版本信息,你需要在程序的manifest文件中进行设定。这里有两个特性,而且往往你需要同时设定这两个值:
android:versionCode整数值,代表应用程序代码的相对版本。
整数值有利于其它程序比较,检查是升级还是降级。你可以把这个值设定为任何想设的值,但是,你必须保证后续更新版的值要比这个大。系统不会强制要求这一行 为,但是随着版本更新值也增加是正常的行为。
一般来说,你发布的第一版程序的versionCode设定为1,然后每次发布都会相应增加,不管发布的内容是较大还是较小的。这意味着 android:versionCode不像应用程序的发布版本(看下面的android:versionName)那样显示给用户。应用程序和发布的服 务不应该显示这个版本值给用户。
android:versionName字符串值,代表应用程序的版本信息,需要显示给用户。
与android:versionCode一样,系统不会为了任何内部的目的使用这个值,除了显示给用户外。发布的服务也需要提取这个值来显示给用户。
你需要在manifest文件中定义这两个版本特性。
下面是一个manifest的例子,展示了android:versionCode和android:versionName特性的定义。