Android系统内置应用更新或升级后被还原的原因
2014-06-06 09:34
176 查看
如果更新或者升级后系统内置应用,遇到重启Android系统后内置应用被还原,那是因为手动安装的APK版本号和系统内置API版本号一样。
1、Android系统应用更新机制
系统为每个应用在AndroidMainfest.xml提供了versionName、versionCode两个属性。
versionName:String类型,用来给应用的使用者来查看版本.
versionCode:Integer类型,作为系统判断应用是否能升级的依据。
2、Android系统内置应用更新判断代码
代码来自frameworks/base/services/java/com/android/server/PackageManagerService.java 中 scanPackageLI函数的package更新判断条件(约第2580-2621行附近)
// First check if this is a system package that may involve an update
if (updatedPkg
!= null &&
(parseFlags&PackageParser.PARSE_IS_SYSTEM)
!= 0)
{
if (!ps.codePath.equals(scanFile))
{
// The path has changed from what was last scanned... check the
// version of the new path against what we have stored to determine
// what to do.
if (pkg.mVersionCode
< ps.versionCode)
{
// The system package has been updated and the code path does not match
// Ignore entry. Skip it.
从上面代码注释可以知道:更新系统内置应用时,如果新的versionCode没有大于当前安装的版本,更新将被忽略。
1、Android系统应用更新机制
系统为每个应用在AndroidMainfest.xml提供了versionName、versionCode两个属性。
versionName:String类型,用来给应用的使用者来查看版本.
versionCode:Integer类型,作为系统判断应用是否能升级的依据。
2、Android系统内置应用更新判断代码
代码来自frameworks/base/services/java/com/android/server/PackageManagerService.java 中 scanPackageLI函数的package更新判断条件(约第2580-2621行附近)
// First check if this is a system package that may involve an update
if (updatedPkg
!= null &&
(parseFlags&PackageParser.PARSE_IS_SYSTEM)
!= 0)
{
if (!ps.codePath.equals(scanFile))
{
// The path has changed from what was last scanned... check the
// version of the new path against what we have stored to determine
// what to do.
if (pkg.mVersionCode
< ps.versionCode)
{
// The system package has been updated and the code path does not match
// Ignore entry. Skip it.
从上面代码注释可以知道:更新系统内置应用时,如果新的versionCode没有大于当前安装的版本,更新将被忽略。
相关文章推荐
- Android系统内置应用更新或升级后被还原的原因
- Android系统内置应用更新或升级后被还原的原因
- Android系统内置应用更新或升级后被还原的原因
- Android系统内置应用更新或升级后被还原的原因
- Android系统内置应用更新或升级后被还原的原因
- Android系统内置应用更新或升级后被还原的原因
- 获得Android系统所有已安装的应用并联网自动检测升级更新
- 获得Android系统所有已安装的应用并联网自动检测升级更新
- Android系统内置应用更新被还原
- 获得Android系统所有已安装的应用并联网自动检测升级更新
- android 系统内置应用升级
- 获得Android系统所有已安装的应用并联网自动检测升级更新
- 获得Android系统所有已安装的应用并联网自动检测升级更新
- 对“Android应用的自动升级、更新模块的实现”的一些改进
- Android应用的自动升级、更新模块的实现完整方案+参考程序
- 在Eclipse+ADT中开发Android系统的内置应用
- Android应用的自动升级、更新模块的实现
- Android应用的自动升级、更新模块的实现
- Android应用的自动升级、更新模块的实现
- Android应用的自动升级、更新模块的实现