adb 打印终端中内存使用情况的方法

来源:互联网 发布:还珠格格小燕子知乎 编辑:程序博客网 时间:2024/05/21 06:55

在调试一些内存相关的问题时,我们通常需要实时打印出当前系统中所使用的内存信息。

下面提供两种方法来查看这些信息。

方式一,使用 adb shell dumpsys meminfo

使用示例:

C:\Users\Administrator>adb shell dumpsys meminfoApplications Memory Usage (kB):Uptime: 14868066 Realtime: 21560285Total PSS by process:    35958 kB: system (pid 463)    30518 kB: com.bbk.launcher2 (pid 824)    26253 kB: com.android.systemui (pid 630)    20983 kB: com.android.settings (pid 7366)    10239 kB: com.android.phone (pid 706)     9986 kB: com.tencent.qqpimsecure (pid 893)     9326 kB: com.iqoo.ime.service (pid 685)     8962 kB: android.process.media (pid 796)     7418 kB: com.sohu.sohuvideo:log_service (pid 6695)     7140 kB: com.ting.mp3.oemc.android:pushservice_v1 (pid 6502)     7074 kB: com.mediatek.bluetooth (pid 716)     7062 kB: com.sina.weibo (pid 2429)     7033 kB: android.process.acore (pid 1150)     6288 kB: com.sina.weibo.servant (pid 5979)     5898 kB: com.eg.android.AlipayGphone (pid 3473)     5435 kB: com.android.ActivityNetwork (pid 6621)     5327 kB: com.tencent.mm (pid 6553)     5281 kB: com.android.bbkmusic (pid 1322)     4559 kB: com.netease.pris:push (pid 7126)     4445 kB: com.android.mms (pid 6463)     4392 kB: com.mediatek.mdlogger (pid 725)     4347 kB: com.baidu.map.location:remote (pid 843)     4275 kB: com.mediatek.mobilelog (pid 7063)     4254 kB: com.android.contacts (pid 857)     3993 kB: com.bbk.appstore (pid 7262)     3854 kB: com.mediatek.MediatekDM (pid 6281)     3667 kB: com.android.keychain (pid 7276)     3623 kB: com.baidu.map.location (pid 784)     3387 kB: com.mediatek.atci.service (pid 7110)     3359 kB: com.android.bbksoundrecorder (pid 746)     3265 kB: com.svox.pico (pid 7332)     3261 kB: com.android.defcontainer (pid 6448)Total PSS by OOM adjustment:    35958 kB: System               35958 kB: system (pid 463)    63631 kB: Persistent               26253 kB: com.android.systemui (pid 630)               10239 kB: com.android.phone (pid 706)                7074 kB: com.mediatek.bluetooth (pid 716)                7033 kB: android.process.acore (pid 1150)                5281 kB: com.android.bbkmusic (pid 1322)                4392 kB: com.mediatek.mdlogger (pid 725)                3359 kB: com.android.bbksoundrecorder (pid 746)    29945 kB: Foreground               20983 kB: com.android.settings (pid 7366)                8962 kB: android.process.media (pid 796)    27841 kB: Perceptible                9986 kB: com.tencent.qqpimsecure (pid 893)                9326 kB: com.iqoo.ime.service (pid 685)                4275 kB: com.mediatek.mobilelog (pid 7063)                4254 kB: com.android.contacts (pid 857)    14255 kB: A Services                7140 kB: com.ting.mp3.oemc.android:pushservice_v1 (pid 6502)                3854 kB: com.mediatek.MediatekDM (pid 6281)                3261 kB: com.android.defcontainer (pid 6448)    30518 kB: Home               30518 kB: com.bbk.launcher2 (pid 824)    27087 kB: B Services                7418 kB: com.sohu.sohuvideo:log_service (pid 6695)                6288 kB: com.sina.weibo.servant (pid 5979)                5435 kB: com.android.ActivityNetwork (pid 6621)                4559 kB: com.netease.pris:push (pid 7126)                3387 kB: com.mediatek.atci.service (pid 7110)    41627 kB: Background                7062 kB: com.sina.weibo (pid 2429)                5898 kB: com.eg.android.AlipayGphone (pid 3473)                5327 kB: com.tencent.mm (pid 6553)                4445 kB: com.android.mms (pid 6463)                4347 kB: com.baidu.map.location:remote (pid 843)                3993 kB: com.bbk.appstore (pid 7262)                3667 kB: com.android.keychain (pid 7276)                3623 kB: com.baidu.map.location (pid 784)                3265 kB: com.svox.pico (pid 7332)Total PSS by category:   145990 kB: Dalvik    44471 kB: Unknown    35557 kB: Other dev    24404 kB: .so mmap    14348 kB: .dex mmap     3830 kB: Other mmap     1214 kB: .apk mmap      524 kB: Native      424 kB: .ttf mmap       68 kB: Ashmem       32 kB: Cursor        0 kB: .jar mmapTotal PSS: 270862 kB      KSM: 0 kB saved from shared 0 kB           0 kB unshared; 0 kB volatile

方式二:使用 adb shell procrank 命令

使用示例:

C:\Users\Administrator>adb shell procrank  PID      Vss      Rss      Pss      Uss  cmdline  463   61772K   61704K   36103K   32180K  system_server  824   55208K   55112K   30643K   29204K  com.bbk.launcher2  630   54492K   54376K   26423K   21896K  com.android.systemui 7366   48596K   48492K   20979K   17016K  com.android.settings  112   32696K   29692K   20346K   12720K  /system/bin/surfaceflinger  706   32244K   32192K   10338K    9560K  com.android.phone  893   32108K   32084K   10126K    9324K  com.tencent.qqpimsecure  117   10984K   10952K    9742K    9512K  /system/bin/mediaserver  685   31004K   30952K    9420K    8704K  com.iqoo.ime.service  796   31516K   31456K    9057K    8224K  android.process.media 6695   30332K   30304K    7490K    6488K  com.sohu.sohuvideo:log_service 6502   29896K   29868K    7215K    6232K  com.ting.mp3.oemc.android:pushservice_v1  716   29564K   29508K    7174K    6332K  com.mediatek.bluetooth 2429   29612K   29584K    7157K    6352K  com.sina.weibo 1150   29404K   29352K    7127K    6380K  android.process.acore 5979   29196K   29168K    6380K    5548K  com.sina.weibo.servant 3473   28424K   28396K    5992K    5208K  com.eg.android.AlipayGphone 6553   28108K   28068K    5396K    4480K  com.tencent.mm 1322   27544K   27488K    5375K    4624K  com.android.bbkmusic 6621   27204K   27172K    4781K    3996K  com.android.ActivityNetwork  725   26372K   26308K    4620K    3920K  com.mediatek.mdlogger 7126   26968K   26912K    4605K    3868K  com.netease.pris:push 6463   26996K   26944K    4534K    3788K  com.android.mms  843   26172K   26120K    4441K    3648K  com.baidu.map.location:remote  857   26024K   25972K    4349K    3648K  com.android.contacts 7063   26664K   26600K    4347K    3636K  com.mediatek.mobilelog 7262   26988K   26928K    4043K    3296K  com.bbk.appstore 6281   26432K   26368K    3948K    3192K  com.mediatek.MediatekDM  784   25524K   25460K    3718K    2988K  com.baidu.map.location 7276   26624K   26556K    3716K    2960K  com.android.keychain  746   25268K   25200K    3450K    2720K  com.android.bbksoundrecorder 7110   25944K   25876K    3438K    2720K  com.mediatek.atci.service 6448   25772K   25708K    3354K    2596K  com.android.defcontainer 7332   25812K   25748K    3311K    2600K  com.svox.pico  113   24144K   24064K    3116K    2308K  zygote 8327    2544K    2544K    2244K    2224K  procrank  116    2932K    2932K    2136K    2112K  /system/bin/drmserver 1491    1968K    1968K    1354K    1328K  /system/bin/bbk_em_svr  134    1996K    1996K    1278K    1264K  /system/bin/em_svr  128    1848K    1844K    1266K    1252K  /system/bin/atcid 1813    1468K    1468K    1177K    1172K  logcat 7084    1836K    1836K    1090K    1012K  /system/bin/atci_service  130    1336K    1336K     845K     828K  /system/bin/mtkbt 3399    1020K    1020K     722K     716K  logcat  421    1008K    1008K     559K     552K  /system/bin/rild  118    1100K    1100K     522K     452K  /system/bin/mdpserver 6970     896K     896K     477K     352K  /system/bin/netdiag 5649     768K     768K     455K     448K  logcat  109     784K     784K     435K     424K  /system/bin/netd 7079     988K     988K     425K     384K  /system/bin/mobile_log_d  131     868K     868K     402K     392K  /system/bin/mdpd  124     760K     760K     397K     392K  /system/bin/mtk_agpsd    1     492K     492K     386K     320K  /init  101     672K     672K     352K     344K  /system/bin/vold  401    1272K     708K     306K     300K  /system/bin/mdlogger  106     716K     716K     278K     272K  /system/bin/vivo_daemon  123     536K     536K     271K     268K  /system/bin/keystore  400     528K     528K     251K     248K  /system/bin/gsm0710muxd 8209     288K     288K     248K     248K  /sbin/adbd  129     676K     676K     242K     236K  /system/bin/dm_agent_binder  105     612K     612K     233K     228K  /system/bin/debuggerd 8326     488K     484K     223K     204K  /system/bin/sh  136     648K     648K     222K     216K  /system/bin/nvram_agent_binder  114     440K     440K     181K     176K  /system/bin/hald 7081     748K     748K     177K     136K  /system/bin/mobile_log_d  110     592K     592K     177K      52K  /system/bin/netdiag  102     524K     432K     171K     168K  /system/bin/ccci_fsd 7080     728K     728K     165K     124K  /system/bin/mobile_log_d 7083     700K     700K     152K     112K  /system/bin/mobile_log_d 7082     708K     708K     151K     108K  /system/bin/mobile_log_d  119     416K     416K     151K     148K  /system/bin/mtkGD   65     220K     220K     150K      84K  /sbin/ueventd 7179     460K     460K     147K     140K  logcat  125     400K     400K     143K     140K  /system/bin/stp_dump3  120     372K     368K     139K     136K  /system/bin/dbus-daemon  122     424K     420K     131K     128K  /system/bin/installd  100     324K     324K     118K     116K  /system/bin/servicemanager  140     336K     332K     110K     108K  /system/bin/sh  103     332K     332K     106K     104K  /system/bin/ccci_mdinit 1222     356K     356K     103K     100K  /data/data/com.tencent.qqpimsecure/files/athena_v2.dat  104     324K     324K     102K     100K  /system/bin/6620_launcher  107     680K     680K      94K      52K  /system/bin/mobile_log_d 1238     320K     316K      90K      88K  sh 1229     316K     312K      90K      88K  sh 1219     316K     312K      90K      88K  sh                          ------   ------  ------                         328033K  282552K  TOTALRAM: 482092K total, 3732K free, 4052K buffers, 110608K cached, 476K shmem, 24624K slab
方式二中能看出当前系统总共有多少内存,有多少空闲,有多少buffer,缓存等信息

当前使用这两种方式的前提是 adb remount 能够成功。


可以通过 adb shell kill PIDNumber 来杀死你想杀死的后台进程来模拟某种 bug 的复现条件。

譬如 adb shell kill 630 就能杀死 com.android.systemui 这个进程,有兴趣的可以尝试一下,盯住手机屏幕看下有什么反应……


adb shell ps 可以查看当前终端中的进程信息

C:\Users\Administrator>adb shell psUSER     PID   PPID  VSIZE  RSS     WCHAN    PC         NAMEroot      1     0     644    492   c0140624 0000fa38 S /initroot      2     0     0      0     c0083274 00000000 S kthreaddroot      3     2     0      0     c0069564 00000000 S ksoftirqd/0root      6     2     0      0     c00c4a58 00000000 S migration/0root      10    2     0      0     c007e778 00000000 S khelperroot      11    2     0      0     c007e778 00000000 S fs_syncroot      12    2     0      0     c007e778 00000000 S suspendroot      13    2     0      0     c0114cbc 00000000 S sync_supersroot      14    2     0      0     c0115d48 00000000 S bdi-defaultroot      15    2     0      0     c007e778 00000000 S kblockdroot      16    2     0      0     c02db5a8 00000000 S khubdroot      17    2     0      0     c007e778 00000000 S _mtkfbroot      18    2     0      0     c007e778 00000000 S cfg80211root      20    2     0      0     c010de00 00000000 S kswapd0root      21    2     0      0     c016b74c 00000000 S fsnotify_markroot      22    2     0      0     c007e778 00000000 S cryptoroot      42    2     0      0     c0071488 00000000 D binder_watchdogroot      43    2     0      0     c007e778 00000000 S binderroot      44    2     0      0     c007e778 00000000 S trace monroot      45    2     0      0     c007e778 00000000 S g2d_workqueueroot      46    2     0      0     c007e778 00000000 S mtk_vibratorroot      47    2     0      0     c03ffc84 00000000 D pmic_thread_kthroot      48    2     0      0     c0411648 00000000 D bat_thread_kthrroot      49    2     0      0     c041079c 00000000 S mtk charger_hv_root      50    2     0      0     c03ace00 00000000 S screen_update_kroot      51    2     0      0     c007e778 00000000 S non_staroot      52    2     0      0     c007e778 00000000 S accdetroot      53    2     0      0     c007e778 00000000 S accdet_eintroot      54    2     0      0     c029fccc 00000000 S kworker/u:2root      55    2     0      0     c007e778 00000000 S acc_sensor_eintroot      56    2     0      0     c03489bc 00000000 S mmcqd/0root      57    2     0      0     c03489bc 00000000 S mmcqd/0boot0root      58    2     0      0     c03489bc 00000000 S mmcqd/0boot1root      60    2     0      0     c007e778 00000000 S deferwqroot      61    2     0      0     c007e778 00000000 S f_mtproot      62    2     0      0     c0301eb0 00000000 S file-storageroot      63    2     0      0     c0071488 00000000 D wdtk-0root      64    2     0      0     c0071488 00000000 D wdtk-1root      65    2     0      0     c007e778 00000000 S 0-0038root      66    1     424    220   c0140624 0000fa38 S /sbin/ueventdroot      68    2     0      0     c020a0e0 00000000 S jbd2/mmcblk0p4-root      69    2     0      0     c007e778 00000000 S ext4-dio-unwritroot      70    2     0      0     c02a1ac8 00000000 S loop0root      71    2     0      0     c015679c 00000000 S flush-179:0root      74    2     0      0     c020a0e0 00000000 S jbd2/mmcblk0p6-root      75    2     0      0     c007e778 00000000 S ext4-dio-unwritroot      80    2     0      0     c020a0e0 00000000 S jbd2/mmcblk0p5-root      81    2     0      0     c007e778 00000000 S ext4-dio-unwritroot      84    2     0      0     c020a0e0 00000000 S jbd2/mmcblk0p2-root      85    2     0      0     c007e778 00000000 S ext4-dio-unwritroot      86    2     0      0     c007e778 00000000 S pvr_timerroot      87    2     0      0     bf141a5c 00000000 S mtk_stp_psmroot      88    2     0      0     bf141a5c 00000000 S mtk_stp_btmroot      89    2     0      0     bf141868 00000000 S mtk_wmtdroot      90    2     0      0     c007e778 00000000 S fm_timer_wqroot      91    2     0      0     c007e778 00000000 S fm_eint_wqsystem    93    1     1104   348   c0366868 400c8f74 S /system/bin/servicemanagerroot      94    1     5016   668   ffffffff 400bd700 S /system/bin/voldccci      95    1     1400   440   bf091e48 40117f74 S /system/bin/ccci_fsdsystem    96    1     1980   356   ffffffff 40128d3c S /system/bin/ccci_mdinitsystem    97    1     960    352   c0140624 400a4ec8 S /system/bin/6620_launcherroot      98    1     1792   580   c0140624 4014bec8 S /system/bin/debuggerdroot      99    1     6708   640   ffffffff 40055f74 S /system/bin/vivo_daemonshell     100   1     2696   596   ffffffff 4011b700 S /system/bin/mobile_log_droot      102   1     11892  984   ffffffff 400a3700 S /system/bin/netdradio     103   1     4536   576   ffffffff 401d9084 S /system/bin/netdiagsystem    105   1     55108  24708 ffffffff 400e0f74 S /system/bin/surfaceflingerroot      106   1     286264 23048 ffffffff 400dd098 S zygotesystem    107   1     3352   500   ffffffff 400e2700 S /system/bin/halddrm       108   1     21300  2324  ffffffff 40194f74 S /system/bin/drmservermedia     109   1     62376  8236  ffffffff 40123f74 S /system/bin/mediaserversystem    110   1     7964   1128  ffffffff 400fef74 S /system/bin/mdpserversystem    111   1     1196   460   c0444894 400d6a04 S /system/bin/mtkGDbluetooth 112   1     1644   392   c0140624 40158ec8 S /system/bin/dbus-daemonroot      114   1     1160   444   c04fd670 400edd3c S /system/bin/installdkeystore  115   1     2148   712   c0444894 40076a04 S /system/bin/keystoregps       116   1     13836  772   ffffffff 4007dec8 S /system/bin/mtk_agpsdsystem    117   1     1148   436   c0140624 400f6098 S /system/bin/stp_dump3root      119   1     17608  1476  ffffffff 4016e700 S /system/bin/atci_serviceroot      120   1     10588  1696  c0140624 40113098 S /system/bin/atcidsystem    121   1     4740   620   ffffffff 4007af74 S /system/bin/dm_agent_binderbluetooth 122   1     8224   1212  ffffffff 40234098 S /system/bin/mtkbtsystem    123   1     3864   740   c00562e8 40118f74 S /system/bin/mdpdroot      126   1     1648   560   c00881a8 4009c700 S /system/bin/hscdtd007aroot      127   1     15312  1792  ffffffff 4004d700 S /system/bin/em_svrsystem    128   1     4680   580   ffffffff 40150f74 S /system/bin/nvram_agent_binderroot      131   1     1028   352   c0288208 40086d3c S /system/bin/shroot      134   2     0      0     c007e778 00000000 S pvr_workqueueroot      328   2     0      0     c007e778 00000000 S mtklfbradio     347   1     13476  556   ffffffff 400e1700 S /system/bin/gsm0710muxdshell     348   1     5148   660   ffffffff 40144d3c S /system/bin/mdloggerradio     371   1     26488  944   ffffffff 4009a700 S /system/bin/rildsystem    398   106   445644 58800 ffffffff 400dcf74 S system_serverroot      482   2     0      0     c0344c0c 00000000 S ksdioirqd/mmc2system    489   106   371684 52680 ffffffff 400dde50 S com.android.systemuiroot      535   2     0      0     bf2124c8 00000000 S tx_threadlog       536   1     952    348   c0288208 40102d3c S /system/bin/logwrapperwifi      538   536   3108   1112  c0140624 400f5098 S /system/bin/wpa_supplicantradio     558   106   332432 33844 ffffffff 400dde50 S com.android.phoneu0_a51    564   106   299024 26940 ffffffff 400dde50 S com.vivo.motionrecognitionu0_a53    576   106   312772 29008 ffffffff 400dde50 S com.mediatek.bluetoothsystem    585   1     1152   476   c016f01c 4008ae50 S /system/xbin/mnldradio     587   106   296552 26788 ffffffff 400dde50 S com.mediatek.mdlogger


那么如何在代码中判断当前的硬件系统有多少的 RAM 呢?

使用下面代码可以奏效:

在 Framework  ProcessList.java 中有如下代码可用:

     ProcessList() {        MemInfoReader minfo = new MemInfoReader();        minfo.readMemInfo();        mTotalMemMb = minfo.getTotalSize()/(1024*1024);     }      

这个可以用于 app 层来适配不同内存配置的机型。

原创粉丝点击