Android性能监控
一、搭建Android性能测试环境,参见《Android性能测试之Monkey使用》中内容。
二、启动Android虚拟机,可以通过eclipse启动,也可以通过命令启动:
1、通过android list avd命令查看已创建的虚拟机;
2、通过命令emulator @name启动虚拟机;
三、内存采集
1、通过dumpsys来取值,可以看到所有进程的内存信息,命令如下:
adb shell dumpsys meminfo
2、查看详细的内存信息,命令如下:
adb shell dumpsys meminfo $pakagename or $Pid
如:adb shell dumpsys meminfo 1019
可以看到Native Heap和Dalvik Heap占用了Heap size列显示的大小,Dalvik Heap就是常说的堆内存,Dalvik Heap不能超过最大限制;超过单个程序内存的最大限制时,就可能出现OOM。
查看内存最大限制命令:
adb shell getprop|grep heapgrowthlimit
得到结果:
|[dalvik.vm.heapgrowthlimit]: [96m] 单个程序内存最大限制为96M。
3、使用/system/xbin/procrank来查看内存信息,命令如下:
adb shell procrank
VSS – Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
RSS – Resident Set Size 实际使用物理内存(包含共享库占用的内存)
PSS – Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
USS – Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
USS 是针对某个进程开始有可疑内存泄露的情况, 是一个程序启动了会产生的虚拟内存,一旦这个程序进程杀掉就会释放!
四、CPU监控
1、查看前5个进程cpu使用情况
adb shell top -m 5 -s cpu
可查看占用cpu最高的前5个进程(-t 显示进程名称,-s 按指定行排序,-n 在退出前刷新几次,-d 刷新间隔,-m 显示最大数量)
2、CPU数据采集
adb shell dumpsys cpuinfo
CPU占用率为60%,其中用户(user)占用45%,内核占用15%。
如果想筛选指定的应用,使用下面命令:
adb shell dumpsys cpuinfo |grep $packagename
五、流量监控
1、查找被测应用PID
adb shell ps
找到被测应用com.gewara的PID为1970;
使用命令:
adb shell cat /proc/$Pid/net/dev
查看流量信息;
如:adb shell cat /proc/
1970/net/dev
可以看到发送字节数,如果是联机测试,会显示wlan0列,表示WiFi上传下载标识,上传下载量单位是字节,打开/关闭手机飞行模式,可以初始化wlan0数据。
电量采集命令:
adb shell dumpsys battery
注:如果不能使用grep命令,下载安装Cygwin工具。