再看開發過程中,經常要通過記憶體的使用量來最佳化程式。
查看應用程式的命令:adb shell procrank
顯示如下:
PID Vss Rss Pss Uss cmdline
190 79560K 74736K 49624K 43604K system_server
14335 55776K 55740K 31308K 26676K com.android.launcher2
13074 47408K 47380K 24947K 22428K com.android.settings
7626 42060K 42028K 21312K 18432K com.android.systemui
13948 32992K 32944K 11687K 9800K android.process.acore
283 25516K 25476K 8136K 7148K com.android.phone
422 24560K 24524K 7338K 6292K com.android.inputmethod.pinyin
12871 25804K 25740K 6288K 4880K com.snda.tt
454 23672K 23616K 5735K 4544K com.google.process.gapps
14723 25744K 25684K 5706K 4100K com.rili.android.client
14844 23816K 23752K 4706K 3276K com.dopid.android
14601 23980K 23920K 4686K 3432K android.process.media
13060 22892K 22828K 4570K 3428K com.tencent.WBlog
13303 22876K 22820K 4013K 2852K com.android.vending
13396 21672K 21608K 3978K 2960K com.limitfan.gojuuon
93 4132K 4112K 3322K 3164K /system/bin/mediaserver
603 18732K 18668K 3274K 2476K com.mediatek.mdlogger
420 18676K 18616K 3033K 2220K com.mediatek.bluetooth
14734 21744K 21680K 3010K 1868K com.yingyonghui.market
14829 20792K 20728K 3002K 1924K com.uucun105286.android.cms
13323 20312K 20248K 2851K 1848K com.cootek.smartinputv5
92 20008K 19932K 2680K 1556K zygote
111 2008K 2004K 1438K 1396K /system/bin/drmserver
105 1852K 1848K 1355K 1324K /system/bin/em_svr
108 1512K 1504K 1100K 1080K /system/bin/mdpd
7696 816K 812K 501K 468K /system/bin/wpa_supplicant
167 780K 776K 429K 416K /system/bin/rild
96 560K 556K 237K 228K /system/bin/mtkbt
84 484K 480K 234K 224K /system/bin/vold
85 576K 572K 229K 216K /system/bin/netd
1 284K 284K 210K 172K /init
103 424K 420K 200K 196K /system/bin/mtk_agpsd
150 420K 416K 192K 188K /system/bin/gsm0710muxd
151 1036K 508K 181K 172K /system/bin/mdlogger
91 516K 512K 173K 164K /system/bin/dm_agent_binder
110 184K 184K 164K 164K /sbin/adbd
80 388K 384K 162K 156K /system/bin/aee_aed
106 496K 492K 161K 152K /system/bin/nvram_agent_binder
14682 416K 412K 141K 132K /system/bin/dhcpcd
14873 356K 348K 139K 132K /system/bin/sh
88 372K 368K 136K 128K /system/bin/hald
100 368K 364K 129K 124K /system/bin/installd
99 340K 336K 120K 116K /system/bin/atci
87 348K 344K 116K 112K /system/bin/mobile_log_d
64 152K 152K 114K 76K /sbin/ueventd
7689 340K 336K 110K 104K /system/bin/debuggerd
86 324K 320K 109K 104K /system/bin/netdiag
353 316K 312K 96K 92K /system/xbin/mnld
94 284K 276K 92K 88K /system/bin/dbus-daemon
146 272K 268K 92K 88K /system/bin/memsicd
97 368K 276K 87K 84K /system/bin/ccci_fsd
102 268K 260K 87K 84K /system/bin/keystore
14681 312K 304K 81K 72K /system/bin/logwrapper
83 256K 248K 75K 72K /system/bin/servicemanager
95 252K 244K 75K 72K /system/bin/6620_launcher
7694 272K 264K 73K 68K /system/bin/logwrapper
109 232K 224K 66K 64K /system/bin/sh
98 236K 228K 59K 56K /system/bin/ccci_mdinit
註:
VSS - Virtual Set Size 虛擬耗用記憶體(包含共用庫佔用的記憶體)
RSS - Resident Set Size 實際使用實體記憶體(包含共用庫佔用的記憶體)
PSS - Proportional Set Size 實際使用的實體記憶體(比例分配共用庫佔用的記憶體)
USS - Unique Set Size 進程獨自佔用的實體記憶體(不包含共用庫佔用的記憶體)
查看單個應用程式記憶體佔用量的命令:adb shell dumpsys meminfo $包名 或者
$進程號 //當然你也可以adb shell進去後在輸入餘下部分。
顯示如下:
Applications Memory Usage (kB):
Uptime: 70102403 Realtime: 104776333
** MEMINFO in pid 14335 [com.android.launcher2] **
native dalvik other total
size: 27576 8455 N/A 36031
allocated: 26850 5311 N/A 32161
free: 385 3144 N/A 3529
(Pss): 13830 1134 16034 30998
(shared dirty): 2980 1932 13776 18688
(priv dirty): 13736 184 12504 26424
Objects
Views: 0 ViewRoots: 0
AppContexts: 0 Activities: 0
Assets: 3 AssetManagers: 3
Local Binders: 162 Proxy Binders: 81
Death Recipients: 1
OpenSSL Sockets: 0
SQL
heap: 3063 MEMORY_USED: 3063
PAGECACHE_OVERFLOW: 2266 MALLOC_SIZE: 50
DATABASES
pgsz dbsz Lookaside(b) Dbname
1 2544 500 launcher.db
有了這些,調試應用程式的記憶體問題容易多了