因调试某个重大问题,怀疑到了内存,专门写了个測试脚本。记录一下。
撰写不易,转载请注明出处:http://blog.csdn.net/jscese/article/details/37928823
一.调试准备
首先须要开启android系统的adb功能。start adbd
PC端 adb connect IP ADDRESS
假设 出现adb 异常能够尝试 adb kill-server 。 adb start-server
二.adb shell指令
1.查看总体内存
连上adb之后 能够通过 adb shell procrank 来查看当前的内存情况!
- VSS - Virtual Set Size 虚拟耗用内存(包括共享库占用的内存)
- RSS - Resident Set Size 实际使用物理内存(包括共享库占用的内存)
- PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
- USS - Unique Set Size 进程独自占用的物理内存(不包括共享库占用的内存)
2.查看指定进程的内存情况
adb shell dumpsys meminfo (包名或者PID)
3.占用内存最多的进程或线程
adb shell top
显示当前占用最高内存的10个进程,adb shell top -m 10:
查看线程:adb shell top -t -m 10
三.shell 脚本
用于实时监控内存使用情况。而且保存log,我的shell script:
#!/bin/bash echo "Begain test memory">memeory_recode.txt i=0 while true; do adb shell procrank |grep 'RAM:'| tee -a memeory_record.txt memoryinfo=$(tail memeory_record.txt -n 1) #freememory=$memoryinfo | cut -d ' '-f 4 freememory=`echo "$memoryinfo"|awk -F ' ' '{print $4}'` free=${freememory%?} if [ $free -lt 8000 ];then echo -e "