安卓app測試以內存監控

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! 

注:設備的不同 最大內存限制也可能不同

相關文章
相關標籤/搜索