Android 手机OAT升级后应用没有更新问题解析

介绍:

最近遇到OTA版本手机升级完成后有些应用没有更新问题

遇到这种问题通常情况下按照以下几步:

1.排除ota升级失败(通过设置查看手机最新版本)

2.查看应用版本(版本是否升级到最新)

3.对比桌面应用图标和设置中应用图标是否相同(如果厂商没有定制应用图标,桌面和设置里面查看到的图标是一致)

遇到了两个ota升级的问题:

问题一.OTA升级后发现有一个应用最新版本应该是更换了图标,但升级后发现应用图标在桌面上没有刷新

分析:(1)ota升级成功了 (2)应用版本没有更新还是老版本

第二步就可以确定是应用本身没有升级,应用是否要升级主要通过版本后对比versionCode(如果新apk版本好大于现有版本号则走安装流程),通过查看该应用编译版本号确定是因为没有更新版本号导致。

修改版本号后再次编译版本OTA再次升级遇到了新的问题。

描述:OAT升级成功后查看该应用版本和功能确实是最新但桌面上没有更新该应用图标(应用有图标更新)

分析:同样经过(1)(2)两步都没问题,(3)对比桌面图标和设置中查看到的应用图标不一致(厂商没有定制图标)

结论:可以确认是桌面应用有问题。

分析桌面为什么没有更新图标:桌面显示的应用图标会存储到桌面数据库中,如果数据库中没有查询到则通过系统接口获取。先排除正常情况下应用更新后桌面是否会更新应用信息(1)正常清楚升级应用时发现图标会自动更新,查看源码可以看到应用更新会通知桌面更新应用信息包括应用图标。(2)ota升级时需要重启手机,并且是在revovery模式下,这时桌面进程是没有启动所以不会有应用更新事件通知桌面。正常情况下桌面在重启时会做一次后台对数据库对比更新操作,更新完成后桌面再刷一次UI,但现在的桌面应用没有做数据库更新操作,最后分析发现这个更新代码被前任屏蔽了。以下是OTA升级流程借用网上图片具体可以参考https://blog.csdn.net/dingfengnupt88/article/details/52875228/

问题二.OTA升级后发现有一个应用版本是最新的但分析发现应用是没有更新

分析:同样确定ota升级成功,应用版本号是最新,但功能没有更新,问题很明确是ota编译代码里面应用代码有问题,查看编译代码很遗憾代码很正常,直接通过整包刷机一切都没问题。

经过一次次排除发现代码ota包都没问题,最后发现是那台ota升级手机之前安装了一个版本号最新但是代码很老的apk,这个问题排除了很久才确定。

总结:

以上两个问题第一个通过正常流程我们可以确定问题。但第二个问题很难定位虽然可以排除是代码ota包的问题,但我们明确问题问题原因,因为ota升级也不是我们自己升的很多东西也不知道,只是知道最终现象。如果下次遇到这种情况可以提前想到是否有人提前安装过高版本号旧代码的apk。

发布了92 篇原创文章 · 获赞 27 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/zhuxingchong/article/details/102708858