adb检测启动耗时
前置条件:相同竞品,相同操作情况下,检测耗时
测试步骤
1.找到应用对应的包名:
查看当前手机内所有应用包名:adb shell pm list packages
2.查询app启动的主activity
查询各个页面对应的activity路径:adb shell dumpsys activity top,找到主activity
3.启动耗时
启动应用到达主界面的耗时:adb shell am start -W 包名/activity路径
扩展知识:
冷启动:指app被后台杀死后,在这个状态打开app,这种启动方式叫做冷启动。
热启动:指app没有被后台杀死,仍然在后台运行。
结果
测试结果(示例):
可优化空间:启动耗时对比竞品出现时间较长,则让开发进一步排查各个耗时数据占比如下图
可优化空间:
1.非首页的在线配置数据(广告、消息等)可在进入程序主页后再进行静默初始化
内存检测
前置条件:相同竞品,相同操作情况下,检测内存占比
A:自动检测内存
工具:LeakCannary,在测试过程中出现内容溢出时,自动报错提示
B:检测应用程序内存分配
测试方法
1.检测当前应用所占用的内存分配
指令:adb shell dumpsys meminfo 包名
2.对比竞品相同操作下所占用的内存
3.查看当前手机设备最大的限制内容
指令:adb shell getgrop|grep heapgrowthlimit
知识扩展:
android程序内存被分为2部分:native和dalvik,dalvik就是java堆,普通java对象是在java堆分配,而bitmap是直接在native上分配,对于内存的限制是 native+dalvik 不能超过最大限制
测试结果
当前应用所占用内存:
对比竞品:
取20次获取结果的平均值进行对比
检测安卓应用的各个保活服务所占用内存
指令:adb shell ps |grep 包名
可优化空间:移除内存占比较大的保活服务