GMS包中的应用如Chrome Gmail等出现闪退

最近一个项目测试部门测试的非常仔细,包括Google GMS包中的应用。他们提了case说Chrome应用在使用过程中偶尔闪退,本来也没有太上心,因为Chrome是Google GMS包中的应用,我们没有源码,如果最终确定是Chrome本身的问题我们也没有办法解决。不久,他们又提了case说Gmail也会出现闪退。这下就引起注意了,不会这么巧Google的应用都容易出现闪退吧,肯定是有什么原因引起的。于是开始分析log。

刚开始看到log的时候根本没有头绪,在测试人员给定的时间点看log,如测试人员反馈说在10:08分出现了闪退,就重点关注这段时间的log,结果只看到这种,对问题进展没有实质性帮助,完全不知道为什么:

WindowManager: WIN DEATH: Window{b314877 u0 com.android.chrome/com.google.android.apps.chrome.Main}

后来开始慢慢梳理,时间上下移动几分钟,果然发现了问题,以下为分析思路:

1.从Log中可以看出在10:06分的时候开始下载gms:

05-10 10:06:24.495 12190 12190 I Finsky  : [2] com.google.android.finsky.download.e.a(50): Duplicate state set for 'com.google.android.gms' (0). Already in that state
05-10 10:06:24.496 12190 12190 I Finsky  : [2] com.google.android.finsky.download.n.a(27): Download com.google.android.gms added to DownloadQueue
05-10 10:06:24.498 12190 12190 I Finsky  : [2] com.google.android.finsky.download.e.a(51): com.google.android.gms from 0 to 1.
05-10 10:06:24.509 12190 12250 I Finsky  : [251] com.google.android.finsky.cu.e.a(95): Created session 954684346 for com.google.android.apps.docs
05-10 10:06:24.526 12190 12190 I Finsky  : [2] com.google.android.finsky.download.w.a(34): Download com.google.android.gms starting
05-10 10:06:24.586 12190 12190 I Finsky  : [2] com.google.android.finsky.download.u.onPostExecute(7): Enqueued com.google.android.gms as content://downloads/my_downloads/46
05-10 10:06:24.587 12190 12190 I Finsky  : [2] com.google.android.finsky.download.e.a(51): com.google.android.gms from 1 to 2.
05-10 10:06:24.588 12190 12190 I Finsky  : [2] com.google.android.finsky.download.n.g(154): com.google.android.gms: onStart

2.在10:10分的时候下载完成:

05-10 10:10:03.268 12190 12190 I Finsky : [2] com.google.android.finsky.download.n.e(143): com.google.android.gms: onComplete

3.在10:11分的时候准备安装gms:

05-10 10:11:13.999 12190 12190 I Finsky  : [2] com.google.android.finsky.installer.a.aw.c(570): Begin install of com.google.android.gms (isid: HeGkEJgeTWiSq2f2sB6uLg)

4.安装过程中需要停止安装的应用进程以及与与其相关的进程。

10:11:15.109即开始停止应用。因为GMS中的应用如Chrome、Calendar、Music等等都与gms都息息相关,所以需要被kill掉。一般来说更新gms(即gmscore,基本GMS中的应用都会使用到)或是Chrome(主要是提供webview,GMS中的应用会使用到),都会kill掉相关应用。

05-10 10:11:15.109  2446  2466 I ActivityManager: Force stopping com.google.android.gms appid=10035 user=-1: installPackageLI 

我们同时也可以在log中看到kill了YouTobe:

05-10 10:11:15.120  2446  2466 I ActivityManager: Killing 20640:com.google.android.youtube/u0a96 (adj 901): stop com.google.android.gms 
05-10 10:11:15.120  2446  2466 I am_kill : [0,20640,com.google.android.youtube,901,stop com.google.android.gms]

kill了Music:

05-10 10:11:15.659  2446  2466 I ActivityManager: Killing 14049:com.google.android.music:main/u0a80 (adj 900): stop com.google.android.gms

kill了Calendar:

扫描二维码关注公众号,回复: 13613558 查看本文章
05-10 10:11:15.669  2446  2466 I ActivityManager: Killing 14369:com.google.android.calendar/u0a64 (adj 902): stop com.google.android.gms

kill了Chrome:

05-10 10:11:15.683  2446  2466 I ActivityManager: Killing 12758:com.android.chrome:sandboxed_process0/u0a35i33 (adj 0): isolated not needed 
05-10 10:11:15.683  2446  2466 I am_kill : [0,12758,com.android.chrome:sandboxed_process0,0,isolated not needed]
05-10 10:11:15.706 2446 3122 I am_proc_died: [0,12758,com.android.chrome:sandboxed_process0,0,11]

5.由上log可以知道本次是由于Google Play更新应用gms而主动杀死应用chrome music calendar youtobe等等,导致chrome浏览器闪退,属于正常逻辑。

猜你喜欢

转载自blog.csdn.net/hanhan1016/article/details/81094897
今日推荐