adb命令查看手機應用內存使用情況


adb shell回車

一、procrank

VSS >= RSS >= PSS >= USS
VSS - Virtual Set Size 虛擬耗用內存(包含共享庫占用的內存)是單個進程全部可訪問的地址空間
RSS - Resident Set Size 實際使用物理內存(包含共享庫占用的內存)是單個進程實際占用的內存大小,對於單個共享庫, 盡管無論多少個進程使用,實際該共享庫只會被裝入內存一次。
PSS - Proportional Set Size 實際使用的物理內存(比例分配共享庫占用的內存)
USS - Unique Set Size 進程獨自占用的物理內存(不包含共享庫占用的內存)USS 是一個非常非常有用的數字, 因為它揭示了運行一個特定進程的真實的內存增量大小。如果進程被終止, USS 就是實際被返還給系統的內存大小。
USS 是針對某個進程開始有可疑內存泄露的情況,進行檢測的最佳數字。懷疑某個程序有內存泄露可以查看這個值是否一直有增加

二、dumpsys meminfo(或者直接讀取“/proc/meminfo”文件來獲得內存信息--Linux系統)

1、cat /proc/meminfo

MemTotal: 所有可用RAM大小(即物理內存減去一些預留位和內核的二進制代碼大小)。
MemFree:被系統留着未使用的內存。

Buffers: 用來給文件做緩沖的大小。

Cached: 被高速緩沖存儲器(cache memory)用的內存的大小(等於 diskcache minus SwapCache ).

SwapCached:swap 緩存的大小,Android很少使用swap的,經常為0。被高速緩沖存儲器(cache memory)用來交換空間的大小,用來在需要的時候很快的被替換而不需要再次打開I/O端口。

Active: 在活躍使用中的緩沖或高速緩沖存儲器頁面文件的大小,除非非常必要,否則不會被移作他用。

Inactive: 在不經常使用中的緩沖或高速緩沖存儲器頁面文件的大小,可能被用於其他途徑。

SwapTotal: 交換空間的總大小。

SwapFree: 未被使用交換空間的大小。

2、dumpsys meminfo 進程pid或程序包名
 查詢結果根據以下4類分類:

OOM(out of memory)即內存泄露。一個程序中,已經不需要使用某個對象,但是因為仍然有引用指向它垃圾回收器就無法回收它,當該對象占用的內存無法被回收時,就容易造成內存泄露。

Android的一個應用程序的內存泄露對別的應用程序影響不大,因為為了能夠使得Android應用程序安全且快速的運行,Android的每個應用程序都會使用一個專有的Dalvik虛擬機實例來運行,也就是說每個應用程序都是在屬於自己的進程中運行的。如果程序內存溢出,Android系統只會kill掉該進程,而不會影響其他進程的使用(如果是system_process等系統進程出問題的話,則會引起系統重啟)。


免責聲明!

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



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