Systrace 分析之 Whatsapp冷启动差异分析

程序员Android

共 1869字,需浏览 4分钟

 ·

2020-07-10 00:27

和你一起终身学习,这里是程序员Android

本篇文章主要介绍 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 分析截图

d467af759cd997b467b61fc3ddf2aa32.webp

安装whatsapp app后冷启动 一

4cc280aa5b816151f31550b688d4afd4.webp

安装whatsapp app后冷启动 二

f32ac2b9c48c50d4149a944d95717c21.webp

安装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 分析截图

f033a50689f876842b92ef415ede41cb.webp

重启后whatsapp 冷启动 一

31887979351fed5025ee724baa2cf640.webp

重启后whatsapp 冷启动 二

三、分析总结

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

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

3.1 app 安装后 冷启动 dex + verify 耗时 2674ms

b606f84c214819abc4e516ef7aec9f69.webp

app 安装后 冷启动 dex + verify 耗时 2674ms

3.2 重启后冷启app ,odex 已经抽取完毕,耗时549ms

51aee36c5e660344ac80bd0ba0fd0ed3.webp

重启后冷启app ,odex 已经抽取完毕,耗时549ms

3.3 log 与Systrace 下载地址

链接: https://pan.baidu.com/s/1YHM6Ylj5YSg0iE2WkP3ttQ 

提取码: rbzd

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"

相关文章友情推荐 

1. Android开发干货分享

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

点个在看,小编工资涨一毛

浏览 34
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报