1. 程式人生 > >Android 分析Android單個程序記憶體資訊

Android 分析Android單個程序記憶體資訊

dumpsys 經常用的幾個命令:

adb dumpsys cpuinfo 查詢cpu資訊
adb dumpsys cpuinfo packageName 查詢單個程式CPU使用資訊資訊
adb shell dumpsys meminfo packageName 查詢單個程式記憶體使用情況

記憶體使用情況分析:
這裡寫圖片描述

Naitve Heap Size: 從mallinfo usmblks獲得,代表最大總共分配空間

Native Heap Alloc: 從mallinfo uorblks獲得,總共分配空間

Native Heap Free: 從mallinfo fordblks獲得,代表總共剩餘空間

Native Heap Size 約等於Native Heap Alloc + Native Heap Free

mallinfo是一個C庫, mallinfo 函式提供了各種各樣的通過C的malloc()函式分配的記憶體的統計資訊。

Dalvik Heap Size:從Runtime totalMemory()獲得,Dalvik Heap總共的記憶體大小。

Dalvik Heap Alloc: Runtime totalMemory()-freeMemory() ,Dalvik Heap分配的記憶體大小。

Dalvik Heap Free:從Runtime freeMemory()獲得,Dalvik Heap剩餘的記憶體大小。

Dalvik Heap Size 約等於Dalvik Heap Alloc + Dalvik Heap Free

OtherPss, include Cursor,Ashmem, Other Dev, .so mmap, .jar mmap, .apk mmap, .ttf mmap, .dex mmap, Other mmap, Unkown統計資訊都可以在process的smap檔案看到。

Objects and SQL 資訊都是從Android Debug資訊中獲得。

其他型別 smap 路徑名稱 描述

Cursor /dev/ashmem/Cursor Cursor消耗的記憶體(KB)

Ashmem /dev/ashmem 匿名共享記憶體用來提供共享記憶體通過分配一個多個程序

                                                     可以共享的帶名稱的記憶體塊

Other dev /dev/ 內部driver佔用的在 “Other dev”

.so mmap .so C 庫程式碼佔用的記憶體

.jar mmap .jar Java 檔案程式碼佔用的記憶體

.apk mmap .apk apk程式碼佔用的記憶體

.ttf mmap .ttf ttf 檔案程式碼佔用的記憶體

.dex mmap .dex Dex 檔案程式碼佔用的記憶體

Other mmap 其他檔案佔用的記憶體

參考: