和你一起终身学习
本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:

一、安装whatsapp app后冷启动
二、手机重启后冷启动whatsapp
三、分析总结

一、安装whatsapp app后冷启动

1.1 高速相机测试数据

安装后就登录账号冷启数据:
4658 4108 4025 平均值4263
备注:两次测试都是保持后台清空的

1.2 log中 displayed 的时间

 Line 12770: M1A4089  05-25 13:45:32.359   859   886 I ActivityTaskManager: Displayed com.whatsapp/.HomeActivity: +3s30ms
    Line 14453: M1A471C  05-25 13:45:44.821   859   886 I ActivityTaskManager: Displayed com.whatsapp/.HomeActivity: +3s16ms
    Line 16598: M1A4F7D  05-25 13:45:59.195   859   886 I ActivityTaskManager: Displayed com.whatsapp/.HomeActivity: +3s78ms

1.3 Systrace 分析截图
Systrace 分析之 Whatsapp冷启动差异分析_第1张图片
安装whatsapp app后冷启动 一
Systrace 分析之 Whatsapp冷启动差异分析_第2张图片
安装whatsapp app后冷启动 二Systrace 分析之 Whatsapp冷启动差异分析_第3张图片
安装whatsapp app后冷启动 三

二、手机重启后冷启动whatsapp

2.1 高速相机测试数据

安装后登录账号重启手机冷启数据:

1458 1383 1258 平均值1366

备注:两次测试都是保持后台清空的

2.2 log中 displayed 的时间

Line 14083: M00F3AE  05-25 14:00:16.589   841   868 I ActivityTaskManager: Displayed com.whatsapp/.HomeActivity: +884ms
    Line 15850: M00FA7D  05-25 14:00:25.559   841   868 I ActivityTaskManager: Displayed com.whatsapp/.HomeActivity: +852ms
    Line 17555: M01011A  05-25 14:00:33.112   841   868 I ActivityTaskManager: Displayed com.whatsapp/.HomeActivity: +864ms

2.3 Systrace 分析截图
Systrace 分析之 Whatsapp冷启动差异分析_第4张图片
重启后whatsapp 冷启动 一
Systrace 分析之 Whatsapp冷启动差异分析_第5张图片
重启后whatsapp 冷启动 二

三、分析总结

通过对比 两种测试模式下的Systrace 我们可以发现,安装后冷启动 Whatapp 耗时的主要原因是 apk 内部抽取 odex,verify 等方法导致的冷启动耗时,这种情况是因为apk 刚刚安装,内部apk 并没有完全抽取出来,apk 方法的抽取会在系统空闲时候进行或者开机预加载apk时候也会进行抽取odex等。

详细耗时请查看如下对比机信息:

3.1 app 安装后 冷启动 dex + verify 耗时 2674ms
Systrace 分析之 Whatsapp冷启动差异分析_第6张图片
3.2 重启后冷启app ,odex 已经抽取完毕,耗时549ms
Systrace 分析之 Whatsapp冷启动差异分析_第7张图片
3.3 log 与Systrace 下载地址
链接:https://pan.baidu.com/s/1K_pI9KCfbbSuNOuUAX8l7Q
提取码:Iw45
3.4 后台命令抽取odex 方法

adb shell cmd package compile --secondary-dex -r bg-dexopt -f com.whatsapp
或者
adb shell cmd package compile -m speed-profile -f "package name"

至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!
原文:程序员Android