安卓app測試之內存監控


一、通過Dumpsys 來取值

1、adb shell dumpsys meminfo

獲取的所有進程的內存信息,以及總內存,剩余內存,使用的內存等信息。

2、想獲得某一進程內存的詳細信息,在后面加上包名或者pid.

adb shell dumpsys meminfo pakagename or Pid

3、重點關注字段

(1) Native/Dalvik 的 Heap 信息

它分別給出的是JNI層和Java層的內存分配情況,如果發現這個值一直增長,則代表程序可能出現了內存泄漏。

Dalvik Heap就是常說的堆內存,Dalvik Heap不能超過最大限制;超過單個程序內存的最大限制時,就可能出現OOM(內存溢出)。

(2)Total 的 PSS 信息

PSS- Proportional Set Size 實際使用的物理內存(比例分配共享庫占用的內存),這個值就是你的應用真正占據的內存大小,通過這個信息,你可以輕松判別手機中哪些程序占內存比較大。

二、用/system/xbin/procrank工具 來取值很直觀

1、adb shell procrank

三、top

1、top -d 1 | grep packageName

方法一:adb shell "top -d 1|grep packageName"

方法二:adb shell 進入到linux命令下,執行該命令

四、關於單個應用內存占用量問題

#查看單個應用程序最大內存限制

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! 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM