您的位置:首页 > 移动开发 > Android开发

Android应用程序更新或升级

2013-11-04 14:50 148 查看
原文地址:Android应用程序更新或升级作者:摔得漂亮


如果更新或者升级后系统内置应用,遇到重启Android系统后内置应用被还原,那是因为手动安装的APK版本号和系统内置API版本号一样。1、Android系统应用更新机制[/b]系统为每个应用在AndroidMainfest.xml提供了versionName、versionCode两个属性。versionName[/b]:String类型,用来给应用的使用者来查看版本,代表应用程序的版本信息,需要显示给用户。与versionCode一样,系统不会为了任何内部的目的使用这个值,除了显示给用户外。发布的服务也需要提取这个值来显示给用户。versionCode[/b]:Int类型,作为系统判断应用是否能升级的依据。代表应用程序代码的相对版本,也就是版本更新过多少次。整数值有利于其它程序比较,检查是升级还是降级。你可以把这个值设定为任何想设的值,但是,你必须保证后续更新版的值要比这个大。系统不会强制要求这一行为,但是随着版本更新值也增加是正常的行为。一般来说,发布的第一版程序的versionCode设定为1,然后每次发布都会相应增加,不管发布的内容是较大还是较小的。这意味着versionCode不像应用程序的发布版本(versionName)那样显示给用户。应用程序和发布的服务不应该显示这个版本值给用户。2、Android系统内置应用更新判断代码[/b]
[/b]

private void getCurrentVersion() {

try {

PackageInfo info = mContext.getPackageManager().getPackageInfo(mContext.getPackageName(), 0);

curVersionName = info.versionName;

curVersionCode = info.versionCode;

} catch (NameNotFoundException e) {

e.printStackTrace(System.err);

}

}


从上面代码可以知道:更新系统应用时,如果新的versionCode大于当前安装的版本,更新将被执行。3、开发者误区[/b]对Android应用更新机制不熟悉的开发者,错误地把versionName作为应用更新的依据,以致于在更新程序出现一些问题:1、更新程序设计时必须把versionName设置小数形式,如2.1,当设置为2.2.1时程序就不好判断是否该更新版本。2、可能导致系统内置应用无法升级,不断被还原。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: