Android系統(tǒng)檢測程序內(nèi)存占用各種方法
1.檢查系統(tǒng)總內(nèi)存
liuhx@uc ~ $ adb shell cat /proc/meminfo
MemTotal: 840868 kB
MemFree: 457344 kB
Buffers: 1744 kB
Cached: 203064 kB
SwapCached: 0 kB
Active: 234932 kB
Inactive: 129644 kB
Active(anon): 170292 kB
Inactive(anon): 0 kB
Active(file): 64640 kB
Inactive(file): 129644 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 0 kB
Writeback: 0 kB
AnonPages: 159820 kB
Mapped: 97916 kB
Slab: 7808 kB
SReclaimable: 2920 kB
SUnreclaim: 4888 kB
PageTables: 3516 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 420432 kB
Committed_AS: 1295272 kB
VmallocTotal: 122880 kB
VmallocUsed: 16508 kB
VmallocChunk: 76804 kB
第一行MemTotal就是總內(nèi)存。一般并不會(huì)等于手機(jī)標(biāo)榜的數(shù)值。說是2G內(nèi)存的手機(jī),會(huì)在1.8G左右
2.檢查某個(gè)程序的各類型內(nèi)存占用
可用dumpsys meminfo 包名。不知道包名的話,可以用ps命令得到所有運(yùn)行的程序,也包括得到pid。以自帶的瀏覽器為例:
liuhx@uc ~ $ adb shell dumpsys meminfo com.android.browser
Applications Memory Usage (kB):
Uptime: 23140065 Realtime: 23140065
** MEMINFO in pid 939 [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
Other dev 4 0 0
.so mmap 5050 1728 252
.jar mmap 0 0 0
.apk mmap 418 0 0
.ttf mmap 439 0 0
.dex mmap 0 0 0
Other mmap 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
Local Binders: 15 Proxy Binders: 19
Death Recipients: 0
OpenSSL Sockets: 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
Asset Allocations
zip:/system/app/Browser.apk:/resources.arsc: 881K
dumpsys的輸出結(jié)果在不同版本的android系統(tǒng)可能不同。
其中Pss Total是程序占用的PSS。
3.檢查程序狀態(tài)
liuhx@uc ~ $ adb shell cat /proc/939/status
Name: android.browser
State: S (sleeping)
Tgid: 939
Pid: 939
PPid: 38
TracerPid: 0
Uid: 10013 10013 10013 10013
Gid: 10013 10013 10013 10013
FDSize: 256
Groups: 1015 1028 3003 50013
VmPeak: 215504 kB
VmSize: 206780 kB
VmLck: 0 kB
VmHWM: 52108 kB
VmRSS: 47748 kB
VmData: 53616 kB
VmStk: 84 kB
VmExe: 8 kB
VmLib: 29300 kB
VmPTE: 156 kB
Threads: 29
SigQ: 0/6656
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000001204
SigIgn: 0000000000000000
SigCgt: 00000002000094e8
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: fffffffffffffeff
voluntary_ctxt_switches: 451
nonvoluntary_ctxt_switches: 3563
VmRss是程序占用的RSS
4.檢查程序各部分的內(nèi)存占用。
cat /proc/939/smaps
這個(gè)命令的輸出結(jié)果很長,下面是一部分結(jié)果:
4b399000-4b39b000 r--p 0001d000 1f:00 560 /system/lib/libGLESv1_enc.so
Size: 8 kB
Rss: 8 kB
Pss: 8 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 8 kB
Referenced: 8 kB
Swap: 0 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
4b39b000-4b39c000 rw-p 0001f000 1f:00 560 /system/lib/libGLESv1_enc.so
Size: 4 kB
Rss: 4 kB
Pss: 4 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 4 kB
Referenced: 4 kB
Swap: 0 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
- android實(shí)用工具類分享(獲取內(nèi)存/檢查網(wǎng)絡(luò)/屏幕高度/手機(jī)分辨率)
- android中圖片的三級(jí)緩存cache策略(內(nèi)存/文件/網(wǎng)絡(luò))
- 解析Android開發(fā)優(yōu)化之:對(duì)Bitmap的內(nèi)存優(yōu)化詳解
- Android 中對(duì)于圖片的內(nèi)存優(yōu)化方法
- Android手機(jī)內(nèi)存中文件的讀寫方法小結(jié)
- android內(nèi)存優(yōu)化之圖片優(yōu)化
- Android編程中避免內(nèi)存泄露的方法總結(jié)
- Android圖片占用內(nèi)存全面分析
- Android開發(fā)之圖片切割工具類定義與用法示例
- Android開發(fā)實(shí)現(xiàn)的內(nèi)存管理工具類
相關(guān)文章
flutter 動(dòng)手?jǐn)]一個(gè)城市選擇citypicker功能
在一些項(xiàng)目開發(fā)中經(jīng)常會(huì)用到城市選擇器功能,今天小編動(dòng)手?jǐn)]一個(gè)基于flutter 城市選擇citypicker功能,具體實(shí)現(xiàn)過程跟隨小編一起看看吧2021-08-08Android入門之TableLayout應(yīng)用解析(二)
這篇文章主要介紹了Android入門之TableLayout應(yīng)用,需要的朋友可以參考下2014-08-08Android DrawableTextView圖片文字居中顯示實(shí)例
在我們開發(fā)中,TextView設(shè)置Android:drawableLeft一定使用的非常多,但Drawable和Text同時(shí)居中顯示可能不好控制,小編想到通過自定義TextView實(shí)現(xiàn),具體詳情大家參考下本文2017-03-03Android使用AnimationDrawable實(shí)現(xiàn)閃爍紅光動(dòng)畫效果(案例詳解)
這篇文章主要介紹了Android使用AnimationDrawable實(shí)現(xiàn)閃爍紅光動(dòng)畫效果,實(shí)現(xiàn)閃爍紅光效果可以使用Android中的Animation和Drawable資源,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06深入了解Android中GestureDetector的定義與使用
Android中的GestureDetector?可以使用?MotionEvents?檢測各種手勢和事件,非常的好用。本文將會(huì)通過幾個(gè)具體的例子來講解一下GestureDetector的具體使用方法,需要的可以參考一下2023-01-01Android PopupMenu彈出菜單的實(shí)現(xiàn)
這篇文章主要介紹了 Android PopupMenu彈出菜單的實(shí)現(xiàn)的相關(guān)資料,希望通過本文能幫助到大家,實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下2017-10-10Android中在WebView里實(shí)現(xiàn)Javascript調(diào)用Java類的方法
這篇文章主要介紹了Android中在WebView里實(shí)現(xiàn)Javascript調(diào)用Java類的方法,本文直接給出示例,需要的朋友可以參考下2015-03-03