1、经过Dumpsys 来取值java
一、adb shell dumpsys meminfolinux
获取的全部进程的内存信息,以及总内存,剩余内存,使用的内存等信息。android
二、想得到某一进程内存的详细信息,在后面加上包名或者pid.shell
adb shell dumpsys meminfo pakagename or Pidapp
三、重点关注字段工具
(1) Native/Dalvik 的 Heap 信息3d
它分别给出的是JNI层和Java层的内存分配状况,若是发现这个值一直增加,则表明程序可能出现了内存泄漏。blog
Dalvik Heap就是常说的堆内存,Dalvik Heap不能超过最大限制;超过单个程序内存的最大限制时,就可能出现OOM(内存溢出)。进程
(2)Total 的 PSS 信息内存
PSS- Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存),这个值就是你的应用真正占据的内存大小,经过这个信息,你能够轻松判别手机中哪些程序占内存比较大。
2、用/system/xbin/procrank工具 来取值很直观
一、adb shell procrank
3、top
一、top -d 1 | grep packageName
方法一:adb shell "top -d 1|grep packageName"
方法二:adb shell 进入到linux命令下,执行该命令
4、关于单个应用内存占用量问题
#查看单个应用程序最大内存限制
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!
注:设备的不同 最大内存限制也可能不同