设为首页 收藏本站 662p开源网
开启辅助访问 切换到宽版

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

切换风格 立即注册 找回密码

安卓教程网

发表于 2017-12-4 15:32:00 | 显示全部楼层 |阅读模式
更多

最近一直在研究monkey测试。网上资料很多,但都是一个抄一个的。原创的很少

我把检查app内存泄漏的情况梳理一下:

参考资料:

首先基础的monkey测试,之前讲过。参照以前文档

在monkey测试的同时我们需要关注的一个点。

内存检测

内存检测用批处理脚本记录,约5秒记录一次:

脚本如下,保存为bat文件

  1. @echo off &color 0a&setlocal enabledelayedexpansion&title %~n0
  2. ::@mode con lines=18 cols=50

  3. set package1=com.xxxx.xxxxx


  4. adb shell dumpsys meminfo %package1% | findstr "Pss" > ./info_1.txt

  5. :start
  6. adb shell dumpsys meminfo %package1% | findstr "TOTAL" >> ./info_1.txt


  7. echo.
  8. echo.
  9. ping -n 5 127.1>nul
  10. goto start
复制代码

我们先可以看一下基础的命令,查看应用内存的命令:adb shell dumpsys meminfo (进程名)

这里得到的信息非常多,重点关注如下几个字段:

(1) Native/Dalvik 的 Heap 信息

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

(2) Total 的 PSS 信息

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

所以我们运行上面的bat文件。得到的数据是这样的:

右边三列,如果执行了用户事件流10万次后,发现数值一直在增长,那么很有可能是内存泄漏了。

左边第一列,表示app占据内存的大小,比如开四个app程序同时,我们可以比较哪个程序最占用内存,就是通过这个数据!


cpu检查:

bat脚本为

  1. @echo off &color 0a&setlocal enabledelayedexpansion&title %~n0
  2. ::@mode con lines=18 cols=50

  3. set package1=com.xxxx.xxxxx


  4. adb shell top -n 1 | findstr "PID" > ./cupInfo_1.txt

  5. :start
  6. adb shell top -n 1 | findstr %package1% >> ./cupInfo_1.txt


  7. echo.
  8. echo.
  9. ping -n 5 127.1>nul
  10. goto start
复制代码

用到的是adb shell top 命令参考文档:http://blog.csdn.net/kittyboy0001/article/details/38562515


  1. PID   进程id
  2. PR    优先级
  3. CPU%  当前瞬时CPU占用率
  4. S     进程状态:D=不可中断的睡眠状态, R=运行, S=睡眠, T=跟踪/停止, Z=僵尸进程
  5. #THR  程序当前所用的线程数
  6. VSS   Virtual Set Size  虚拟耗用内存(包含共享库占用的内存)
  7. RSS   Resident Set Size 实际使用物理内存(包含共享库占用的内存)
  8. PCY   调度策略优先级,SP_BACKGROUND/SP_FOREGROUND
  9. UID   进程所有者的用户id
  10. Name  进程的名称
复制代码
*最好的办法是做一个Excel图表,把对比数据列出来



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Archiver|手机版|小黑屋|安卓教程网 ( 粤ICP备12089784号  

GMT+8, 2017-12-17 00:55 , Processed in 0.398264 second(s), 48 queries .

Powered by Discuz X3.1

© 2001-2013 IOS教程网

快速回复 返回顶部 返回列表