华为畅享9s 手机启动图变形问题调查结论与过程

关键字

  • layer-list
  • 启动图
  • 华为荣耀
  • windowBackground
  • 变黑

问题描述

在部分华为手机上启动,启动图会变成如下模样

c4198cabae55da33a73fed3b9dbd2a4a
而我们正常的启动图是这个模样
Screenshot_20200405-154051

有意思的地方在于,这个包对应的提交,我们同时打了一个包名不一样的包,用于mtl测试,但是那个包完全没问题。

调试过程

发现 windowBackground 的图没有问题

当我删除 LauncherActivity 所有代码,只是一个 Activity 类的时候,可以看到 CC 启动先是启动一个透明的圆形 logo

最后变黑

43b67e45ea0fe6c58521664073a530fe
最后停留在 CCLauncherwindowbackgroud

Screenshot_20200405-154051

这个操作证明了一个事情,windowbackground 的图片没有问题

猜想系统优化导致的

这个时候我开始猜想是系统认为我们应用启动慢故意给我们加一个图的,
这个时候我进行了一些以下尝试:

  • 更改包名绝对不会有问题(解释了mtl包没有问题的原因)
  • demo 更改为 cc 一样的包名没有问题(不是包名针对性)
  • start.xml 这张图不管更换为任何的图都会出现问题 (不是图片问题)
  • 增加减少图片都不会有问题 (起码我们有必胜的解决方案)
  • 几个关键文件,android_mainfest.xml,start.xmllogo.pngstyles.xml 反编译后都没问题(没有不一样的地方)
  • 两个apk进行对比,并没有关键点的差异

我目的是为找出两个包的差异点,然后避免系统这个优化在CC上出现。

变故:华为手机上安装了CC只要杀掉就再也找不到CC

经过我多次安装CC后,华为手机上安装了cc之后,如果你杀掉cc进程,就会找不到 CC 启动图标,就像CC没有安装过一样。
最后我选择只能重启,重启后发现手机一切正常,之前有问题的包安装完成就不再出现问题。

猜想是不是别的手机其实没有问题

别的手机是指,除了 QA 这两台手机(华为畅享9Plus和华为畅享9s)

我在内部的云机器平台随机找了一半的华为机器测试,并没有发现问题,但是里面并没有包括有问题的这两台,因为没有。

最后我找 QA 再次确认一下,确认QA重启后手机恢复正常。

和我借到的手机表现一致,重启就没事。

结论

系统BUG ,启动图没有问题,手机重启可破。

小结

下次诡异BUG先重启手机???