分析一次OTA App和Image导致数据库文件丢失过程

2021-11-09  本文已影响0人  仕明同学

我们App是一个LAUNCHER应用,就是一个安卓系统搭载我们APP,我们App作为启动的应用,在OTA的时候没有发现数据库丢失,但是更新系统的时候,发现所有数据丢失,这是QA反馈的情况

和供应商的聊天记录 image.png

回到问题的本身,我们数据如何处理,我们App本身内置了一个数据库文件,这个数据库文件主要是确定用户在没有网络的情况下,也能够正常的使用内置的数据,同时我们把资源文件(主要是图片)放在专门的一个分区,apd分区

apd分区

OTA 系统会改动这个分区的数据么?不会,这个可以算是用户分区,同时"/data/data/" + context.getPackageName()这个也是用户空间,OTA App或者是系统是不会丢失这里面的文件的

App的数据库加载流程

问题是数据库文件丢失?观察原始系统下的 db文件大小,和ota完成以后的大小

这个时候数据库有844k

但是当ota成功后,这个数据库变为166k,所以问题是数据库文件丢失

image.png

到这里明白数据文件的丢失了,但是为什么OTA APP正常呢?为什么呢?这个问题困扰我一直到第二天,我的理解就是两个都有问题,然后就可以去找数据库文件为什么丢失

由于系统集成的app都是system分区的,自己可以通过push模拟OTA的操作,通过模拟的结果:开始怀疑,QA的测试结果有问题,应该是OTA App 和 Image 都是有问题的,对的,这次更加的确定

放弃幻想,开始战斗,开始怀疑数据库的更新关键是有问题的,由于这块逻辑不是我写的
所以,大胆假设,小心求证

DB的更新流程如下:

第二天正式上班,第一件事情,就是让QA复现他的情况,为什么OTA App是正常的,最后看了测试视屏,终于明白,OTA App 是保持有网络的状态,所以当更新到最新版本,发现本地没有数据,就回去网络上获取,到这里终于真想大白。

解决这个问题,我的心态是变化是:迷茫--->清晰--->困惑---->怀疑--->解决--->多方求证--->验证答案,皆大欢喜

image.png

最后感谢我们公司的QA小伙伴不离不弃,哈哈

我的聊天群
上一篇 下一篇

猜你喜欢

热点阅读