复习:adb_02
- 冷启动: adb shell am start -W xxx
-
1. 热启动:
按back按键再次启动:
adb shell am start -W xxx
-
adb shell dumpsys meminfo xxx
测试关注点:
1. Native heap alloc:JIN的内存分配(代码,堆,栈);
2. Dalvik heap alloc:Java层的内存分配(虚拟机);
3. PSS:进程占用的实际物理内存;
4. Heap Alloc 是Dalvik堆和本地堆分配使用的大小,它的值比Pss Total和Private Dir
-
Monkey:
测1万,300毫秒触发一次:
adb shell monkey -p xxx -s 1000 -v -v --pct-trackball 0 --pct-motion 5 --pct-touch 65 --pct-nav 0 --pct-syskeys 5 --pct-anyevent 10 --pct-appswitch 10 --pct-majornav 5 --ignore-crashes --throttle 300 10800 > C:\Users\DELL\Desktop\monkey_log02.txt
2)可以打开前面准备的.bat文件监控应用内存情况
3)监控内存值,如果出现过大等递增异常则保存HPROF文件(hprof文件是Java 虚拟机的Heap快照)用于分析查看应用内存的命令:
adb shell dumpsys meminfo xxx (进程名)
如果发现内存过大,则保存HPROF文件:
adb shell am dumpheap xxx /data/local/tmp/test.hprof<本地路径>
4)分析hprof文件
1. 将保存好的.hprof文件pull到本地:
adb pull /data/local/tmp/test.hprof C:\Users\DELL\Desktop\test
2. 用工具MAT来查看,首先还要这个HPROF文件转换成MAT可读的文件
test目录:
hprof-conv <原HPROF文件路径> <转换后的HPROF路径>
hprof-conv test.hprof test02.hprof
5)用MAT工具打开转换后的HPROF文件
选择Leak Suspects Report(通过SQL语句来查询对象有没有被释放掉,有多个相同的对象,则会存在内存泄露的问题)
-
CPU
1. adb shell “dumpsys cpuinfo | grep xxx”
2. top命令
adb shell top -m 10 -s cpu
查看占用cpu最高的前10个程序(-t 显示进程名称,-s 按指定行排序,-n 在退出前刷新几次,-d 刷新间隔,-m 显示最大数量)
adb shell “top | grep xxx”
查询某个应用的CPU占用率(如果反复进行某个操作,cpu占用过高且一直无法释放,那便可能存在风险)
- CPU占用
- 应用按Home键退到后台,不再占用系统的状态:
- 用户正常使用app监测CPU占用率: 长时间运行监测CPU占用率
-
长时间运行监测CPU占用率
- 其他工具检测fps
-
GPU
测试方法:打开设置->开发者选项->调试GPU过度绘制
1. GPU过渡渲染不同的颜色代表不同的绘制程度:
1. 原色:无过渡绘制
2. 蓝色:绘制一次 (理想状态)
3. 绿 色:绘制二次
4. 浅红:绘制三次 (可以优化)
5. 深红:绘制四次 (必须优化)
应用所有界面以及分支界面下,3X过度绘制总面积(浅红色区域)不超过屏幕可视区域的1/4。
-
电量
adb shell dumpsys battery
重置电池数据收集数据
adb shell dumpsys batterystats --enable full-wake-history
adb shell dumpsys batterystats --reset
获取整个设备的电量消耗信息:
adb shell dumpsys batterystats | more
获取某个apk的电量消耗信息:
adb shell dumpsys batterystats xxx | more
手机的电池信息:
adb shell dumpsys battery
- 关注点:
字段值:
Current Battery Service state
AC powered: false
USB powered: true
Wireless powered: false
statuS:24电池状态:2:充电状态,其他数字为非充电状态
health:24电池健康状态:只有数字2表示qod
present:true电池是否安装在机身
leve1:88电量:百分比
scale: 100
voltage:4225电池电压
current now: 350
temperature:340#电池温度,单位是0.1摄氏度
amoient-temperature 0
technology::L1-po1y#电池种类
- CPU占用