Android系统检测程序内存占用各种方法
1.检查系统总内存
liuhx@uc~$adbshellcat/proc/meminfo MemTotal: 840868kB MemFree: 457344kB Buffers: 1744kB Cached: 203064kB SwapCached: 0kB Active: 234932kB Inactive: 129644kB Active(anon): 170292kB Inactive(anon): 0kB Active(file): 64640kB Inactive(file): 129644kB Unevictable: 0kB Mlocked: 0kB SwapTotal: 0kB SwapFree: 0kB Dirty: 0kB Writeback: 0kB AnonPages: 159820kB Mapped: 97916kB Slab: 7808kB SReclaimable: 2920kB SUnreclaim: 4888kB PageTables: 3516kB NFS_Unstable: 0kB Bounce: 0kB WritebackTmp: 0kB CommitLimit: 420432kB Committed_AS: 1295272kB VmallocTotal: 122880kB VmallocUsed: 16508kB VmallocChunk: 76804kB
第一行MemTotal就是总内存。一般并不会等于手机标榜的数值。说是2G内存的手机,会在1.8G左右
2.检查某个程序的各类型内存占用
可用dumpsysmeminfo包名。不知道包名的话,可以用ps命令得到所有运行的程序,也包括得到pid。以自带的浏览器为例:
liuhx@uc~$adbshelldumpsysmeminfocom.android.browser ApplicationsMemoryUsage(kB): Uptime:23140065Realtime:23140065
**MEMINFOinpid939[com.android.browser]** Shared Private Heap Heap Heap Pss Dirty Dirty Size Alloc Free ------ ------ ------ ------ ------ ------ Native 7111 748 7048 8964 8634 329 Dalvik 7338 5096 6892 7568 7041 527 Cursor 0 0 0 Ashmem 276 0 276 Otherdev 4 0 0 .sommap 5050 1728 252 .jarmmap 0 0 0 .apkmmap 418 0 0 .ttfmmap 439 0 0 .dexmmap 0 0 0 Othermmap 2320 16 24 Unknown 5173 12 5172 TOTAL 28129 7600 19664 16532 15675 856 Objects Views: 104 ViewRootImpl: 1 AppContexts: 4 Activities: 1 Assets: 2 AssetManagers: 2 LocalBinders: 15 ProxyBinders: 19 DeathRecipients: 0 OpenSSLSockets: 0 SQL MEMORY_USED: 1468 PAGECACHE_OVERFLOW: 899 MALLOC_SIZE: 168 DATABASES pgsz dbsz Lookaside(b) cache Dbname 4 1180 68 54/55/9 /data/data/com.android.browser/databases/browser2.db 4 1180 25 1/60/2 /data/data/com.android.browser/databases/browser2.db(2) 4 1180 65 90/23/7 /data/data/com.android.browser/databases/browser2.db(1) 4 40 18 0/15/1 /data/data/com.android.browser/databases/webview.db AssetAllocations zip:/system/app/Browser.apk:/resources.arsc:881K