区分几种内存
VSS- Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
RSS- Resident Set Size 实际使用物理内存(包含共享库占用的内存)
PSS- Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
SS- Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS
监控-内存
一、通过Dumpsys 来取值
1、adb shell dumpsys meminfo
2、详细信息:adb shell dumpsys meminfo tv.danmaku.bili or Pid
二、用/system/xbin/procrank工具 来取值很直观
1、adb shell procrank
三、top
1、top -d 1 | grep packageName
adb shell "top -d 1 | grep packageName"
关于单个应用内存占用量问题
#查看单个应用程序最大内存限制
adb shell getprop|grep heapgrowthlimit
? #应用启动后分配的初始内存
adb shell getprop|grep dalvik.vm.heapstartsize
? #单个java虚拟机最大的内存限制
adb shell getprop|grep dalvik.vm.heapsize
? 应用如果不想在 dalvik heap达到heapgrowthlimit限制的时候出现OOM,需要在
Manifest中的application标签中声明 android:largeHeap=“true”,声明后应用
dalvik heap 达到heapsize的时候才会出现OOM!
? 注:设备的不一样 最大内存限制也可能不一样监控-CPU
监控-CPU
一、通过Dumpsys 来取值
1、adb shell dumpsys cpuinfo
二、top
1、top -d 1 | grep packageName
通过ps命令查看
ps | grep packageName
查看UID
一、通过查看packages.list
adb shell "cat /data/system/packages.list | grep tv.danmaku.bili"
二、查看status文件
adb shell cat /proc//status
此处的需要替换成自己的pid的值
监控-流量_需要查看 pid或者uid
一、通过查看对应uid目录下的tcp_rcv和tcp_snd两个人文件
1、adb shell cat /proc/uid_stat/uid/tcp_snd
2、adb shell cat /proc/uid_stat/uid/tcp_rcv
3、命令中的要替换成自己的uid
二、通过proc/net/xt_qtaguid/stats
1、adb shell cat /proc/net/xt_qtaguid/stats | grep
2、命令中的要替换成自己的uid
三、通过PID下面的net/dev
1、adb shell cat /proc//net/dev
2、命令中的要替换成自己的uid