Android性能测试之内存

内存使用情况的获取,当前主要有如下三种方案:

1.dumpsys meminfo  或dumpsys meminfo

2.AndroidStudio 自带 CPU 和内存检测功能

3.使用Android自身提供的ActivityManager.MemoryInfo()方法获得

dumpsys meminfo 或dumpsys meminfo


参数含义:

l   Naitve Heap Size: 从mallinfo usmblks获得,代表最大总共分配空间

l   Native Heap Alloc: 从mallinfo uorblks获得,总共分配空间

l   Native Heap Free: 从mallinfo fordblks获得,代表总共剩余空间

l   Native Heap Size 约等于Native Heap Alloc + Native Heap Free

l   mallinfo是一个C库, mallinfo 函数提供了各种各样的通过C的malloc()函数分配的内存的统计信息。

l   Dalvik Heap Size:从Runtime totalMemory()获得,Dalvik Heap总共的内存大小。

l   Dalvik Heap Alloc: Runtime totalMemory()-freeMemory() ,Dalvik Heap分配的内存大小。

l   Dalvik Heap Free:从Runtime freeMemory()获得,Dalvik Heap剩余的内存大小。

l   Dalvik Heap Size 约等于Dalvik  HeapAlloc + Dalvik  Heap Free

重点关注如下几个字段:

(1) Native/Dalvik 的 Heap 信息中的alloc

具体在上面的第一行和第二行,它分别给出的是JNI层和Java层的内存分配情况,如果发现这个值一直增长,则代表程序可能出现了内存泄漏。

(2) Total 的 PSS 信息

这个值就是你的应用真正占据的内存大小,通过这个信息,你可以轻松判别手机中哪些程序占内存比较大了。

AndroidStudio 自带 CPU 和内存检测功能

测试方法

手机连接电脑,在标1中选择要调试的手机,标注2中选择要检测的应用进程,memory是内存监控,cpu是cpu监控。


测试时,重点关注两点:

1)退出某个页面后,内存是否回落。如果没有及时回落,也不一定就是问题,可能程序还没有自动GC,故一般情况下,需要手动GC,如果手动GC后,仍无法回落,此时可以确定有问题。

2)进行某个操作后,内存增长的过快,也可能存在风险,此时可反复操作进行确认。

使用Android自身提供的ActivityManager.MemoryInfo()方法获得

通过该方法获取某应用的内存信息。目前网易的Emmagee工具就是通过该方法实现某应用内存和cpu数据的获取,测试简单方便,安装app以后选中被测应用即可开始测试,界面会展示内存、CPU和流量等数据。完成测试后,可在本地SD卡种保存一份性能测试数据,可以从里面获取内存信息。


你可能感兴趣的:(Android性能测试之内存)