一、内存占用
对于智能手机而言,内存大小是固定的;因此,如果单个app的内存占用越小,手机上可以安装运行的app就越多;或者说app的内存占用越小,在手机上运行就会越流畅。所以说,内存占用的大小,也是考量app性能的一个重要指标。
二、测试项
- 空负荷————app已经在后台运行,但是用户没有使用;
back静置后台
home静置后台
放在应用主页面
- 中负荷————app在前台运行,用户进行了少量操作;
- 满负荷————用户持续频繁大量操作,app接近饱和状态运行。
- 应用内存峰值情况
- 应用内存泄露情况
- 应用是否常驻内存
- 压力测试后的内存使用情况
然而,除了第一种情况,其它两种的主观性很强,不是很容易区分。正常产品测试的时候,只要验证后台运行(5~10分钟为宜)和用户持续频繁大量操作(10~15分钟为宜)这两种情况下就可以了。
三、内存测试方案
【1】 手工测试---adb命令测试内存
adb shell dumpsys meminfo packagename -d(查看当前应用的变化)
(adb shell dumpsys meminfo |grep packagename >/address/mem.txt )
- Native/Dalvik 的 Heap 信息
具体在上面的第一行和第二行,它分别给出的是JNI层和Java层的内存分配情况,如果发现这个值一直增长,则代表程序可能出现了内存泄漏。
home到后台一段时间,比如10分钟,然后看数值是否有变化
- Total 的 PSS 信息
这个值就是你的应用真正占据的内存大小,通过这个信息,你可以轻松判别手机中哪些程序占内存比较大了。
- Objects的两个信息
在进入一个界面之前查看一遍Activity和View的数量,在退出这个界面之后再查看一遍Activity和View的数量,对比进入前和进入后Activity和View数量的变化情况,如果有差异,则说明存在内存泄露(在使用命令查看Activity和View的数量之前,记得手动触发GC)
【2】自动化测试---Python脚本
原理:同样使用adb命令来查询内存消耗,通过monkey自动操作,结合Python查询结果。