windows下使用adb工具檢視android程式cpu和記憶體消耗情況
阿新 • • 發佈:2019-01-26
今天在除錯android程式時,發現程式有點卡,覺得應該看看程式的cpu和記憶體消耗,一直以來都在windows下程式設計,已經習慣了windows工作管理員或者資源監視器,此時猛然發現在android環境下自己還真不知道如何檢視當前程式的cpu和記憶體消耗。於是查了一些資料,發現這篇文章講的還算詳細,本文對其進行了整理,並做了一點補充。先簡單介紹下我的android安裝目錄,現在悔不該把android安裝在C盤,太佔地方了,搞的現在C盤剩餘空間大小已經是個位數了。好了,拿出資料線先把手機和電腦連上吧。
1. 開啟終端,進入上述目錄,如下圖所示:
2. 輸入adb shell,開啟adb命令列,如下圖所示:
3. 檢視cpu使用情況: 輸入命令:top -m 10 -s cpu(-m顯示最大數量,-s 按指定行排序),如下圖所示:
1. 開啟終端,進入上述目錄,如下圖所示:
2. 輸入adb shell,開啟adb命令列,如下圖所示:
3. 檢視cpu使用情況: 輸入命令:top -m 10 -s cpu(-m顯示最大數量,-s 按指定行排序),如下圖所示:
(注意第一列的pid,使用pid值可以檢視當前程式的記憶體使用情況。) 4. 檢視指定程式記憶體使用情況: 輸入命令:dumpsys meminfo pid,比如檢視手機安裝的360安全衛士,那麼實際命令應該為:dumpsys meminfo 3253,如下圖所示:引數含義: PID : progress identification,應用程式ID S : 程序的狀態,其中S表示休眠,R表示正在執行,Z表示僵死狀態,N表示該程序優先值是負數 #THR : 程式當前所用的執行緒數 VSS : Virtual Set Size虛擬耗用記憶體(包含共享庫佔用的記憶體) RSS : Resident Set Size實際使用實體記憶體(包含共享庫佔用的記憶體) PCY : 前臺(fg)和後臺(bg)程序 UID : User Identification,使用者身份ID Name : 應用程式名稱
5. 使用ctrl + c,退出adb命令列。引數含義: dalvik : dalvik使用的記憶體 native : native堆上的記憶體,指C\C++堆的記憶體(android 3.0以後bitmap就是放在這兒) other : 除了dalvik和native的記憶體,包含C\C++非堆記憶體······ Pss : 該記憶體指將共享記憶體按比例分配到使用了共享記憶體的程序 heap alloc : 已使用的記憶體 heap free : 空閒的記憶體 share dirty : 共享,但有不能被換頁出去的記憶體 private dirty : 非共享,又不能被換頁出去的記憶體(比如linux系統中為了提高分配記憶體速度而緩衝的小物件,即使你的程序已經退出,該記憶體也不會被釋放)