Android SDK中的强大工具——Monitor(一)

Android SDK中的强大工具-Monitor(一)

前面的内容请参见Android应用自动化测试-提纲 本篇我们来看一看Android SDK中一个非常强大但是经常被大家忽视的工具或者说工具集-Monitor。

Monitor工具位于Android SDK的tools目录下,windows下,我们运行Monitor.bat即可启动Monitor工具的主界面

img

devices

工具界面的左侧的devices界面是设备及进程信息,会显示连接在当前电脑上的所有android设备信息及其中的进程信息。

设备信息的三个字段含义分别是

设备名–设备状态–平台版本

进程信息的三个字段含义分别是

进程名-进程PID–DDMS监控端口

ddms在设备端从8600开始为每一个进程分配一个单独的端口号,在PC端则自己使用8700接收所有console过来的指令

在Devices界面上排的一列工具栏,对应Monitor工具右侧界面的相应功能。下面逐一详细说明:

update Heap

update heap更新堆内存,会更新所选择进程的堆信息。执行该操作后,在右侧heap的tab页中可以查看heap信息,执行cause GC后即可看到如图界面

img

Cause GC栏的含义:

列名含义
Heap Size堆栈分配给App的内存大小
Allocated已分配使用的内存大小
Free空闲的内存大小
%UsedAllocated/Heap Size使用率
Objects对象数量

Display表中各字段含义如下:

列名含义
Type类型
Count数量
Total Size 总共占用的内存大小
Smallest将对象占用内存的大小从小往大排,排在第一个的对象占用内存大小
Largest将对象占用内存的大小从小往大排,排在最后一个的对象占用的内存大小
Median将对象占用内存的大小从小往大排,拍在中间的对象占用的内存大小
Average平均值

其中类型的主要包含:

类型含义
free空闲的对象
data object数据对象,类类型对象,最主要的观察对象
class object类类型的引用对象
1-byte array(byte[],boolean[])一个字节的数组对象
2-byte array(short[],char[])两个字节的数组对象
4-byte array(long[],double[])4个字节的数组对象
non-Java object非Java对象

下面的堆图, 横坐标是对象的内存大小,这些值随着不同对象是不同的,纵坐标是在某个内存大小上的对象的数量

heap在我们分析内存泄漏时是非常有用的,我们一般可以关注data object的total size这个数据,在用例执行后是否会增长(不管是慢还是快,都表示有可能存在内存泄漏)


版权声明:本文为weixin_45129876原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。