内存测试:
1.使用数据线将手机与电脑连接;
2.手机打开待测APP,即打开进程;
3.打开cmd命令,获取设备列表:输入adb devices;
4.进入该设备的shell环境,输入:adb -s 设备ID shell(多个),单个设备的话就直接输入:adb shell;
5.查找进程;
1)输入ps(模糊查找),寻找对应待测应用的包名,并记录其pid
2)若知道明确的包名,可直接准确查找 ps | grep 包名
6.查询内存信息,可通过两种方式获取
1)通过 dumpsys meminfo 包名/pid 获取;
Pss Total:实际使用的物理内存;
Private dirty:私有驻留内存;
Heap Size:占用总内存(Heap堆)(扩展:进程内存空间是虚拟内存,区分于物理内存,进程无法直接操作物理内存RAM。必要时,操作系统对其进行映射,使进程能应用到物理内存);
Heap Alloc:分配内存;
Heap Free:空闲内存
native process:内存大小
查看单个应用最大内存限制,输入命令:getprop | grep heapgrowthlimit
2)可直接通过procrank
手机中的sh是经过精简过的,有些手机可能没有procrank命令,可以使用genymotion模拟器,或是自己安装procrank命令。
VSS—Virtual Set Size(虚拟耗用内存包括共享库占用的内存):是单个进程全部可访问的地址空间。
RSS—Resident Set Size(实际使用物理内存包括共享库占用的内存):单个进程实际占用的内存大小,不是精确描述。
PSS—Proportional Set Size(实际使用的物理内存,比例分配共享库占用的内存):对于系统中的整体内存使用是一个很好的描述。
USS—Unique Set Size(进程独自占用的物理内存,不包含共享库占用的内存):单个进程的全部私有内存大小,即全部被该进程独占的内存大小。
一般来说内存占用的大小有如下规律:VSS>=RSS>=PSS>=USS
USS是针对某个进程开始有可疑内存泄漏的情况,进行检测的最佳数字。