查看Android內存,cpu


轉自https://testerhome.com/topics/2583

一、查看內存

查看Android應用內存:

adb shell dumpsys meminfo

1、查看詳細的內存:

adb shell dumpsys meminfo pakagename or Pid

看其中的Size 可以發現 Native Heap 和Dalvik Heap 占據了Heap Size
dalvik就是我們平常說的java堆,我們創建的對象是在這里面分配的。
對於內存的限制 這里糾正一下:是 dalvik heap不能超過最大限制,跟Native heap沒有關系!
最大限制查看:

#查看單個應用程序最大內存限制 adb shell getprop|grep heapgrowthlimit

得到結果:

|[dalvik.vm.heapgrowthlimit]: [96m] 

這個96M是單個程序限制最大內存,而meminfo 里面的dalvik heap size 的最大值若果超出了96m 那就很可能會發生OOM
dalvik.vm.heapgrowthlimit和dalvik.vm.heapsize都是java虛擬機的最大內存限制,應用如果不想在dalvik heap達到heapgrowthlimit限制的時候出現OOM,需要在Manifest中的application標簽中聲明android:largeHeap=“true”,聲明后應用dalvik heap 達到heapsize的時候才會出現OOM!

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

現在大多數手機 的android程序內存一般限制在96M以上甚至更高,也可能更低。

 

2,用/system/xbin/procrank工具 來取值很直觀

adb shell procrank

VSS – Virtual Set Size 虛擬耗用內存(包含共享庫占用的內存)
RSS – Resident Set Size 實際使用物理內存(包含共享庫占用的內存)
PSS – Proportional Set Size 實際使用的物理內存(比例分配共享庫占用的內存)
USS – Unique Set Size 進程獨自占用的物理內存(不包含共享庫占用的內存)

USS 是針對某個進程開始有可疑內存泄露的情況, 是一個程序啟動了會產生的虛擬內存,一旦這個程序進程殺掉就會釋放!

二、查看cpu:

1、adb shell top  -d 1 -s cpu |findstr com.golive.cinema

-d,cpu刷新時間

-s,安裝cpu排序

-t 顯示進程名稱,-s 按指定行排序,-n 在退出前刷新幾次,-d 刷新間隔,-m 顯示最大數量

 

2、adb shell dumpsys cpuinfo

0%后面跟的是pid

查看具體apk是:adb shell dumpsys cpuinfo|findstr com.golive.cinema

 


免責聲明!

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



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