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 层来适配不同内存配置的机型。
- adb 打印终端中内存使用情况的方法
- adb 打印终端中内存使用情况的方法
- adb命令查看Android中内存使用情况
- Android 中查看内存的使用情况集常用adb命令
- Android 中查看内存的使用情况集常用adb命令
- Android 中查看内存的使用情况集常用adb命令
- Android 中查看内存的使用情况集常用adb命令
- Android 中查看内存的使用情况集常用adb命令
- Android 中查看内存的使用情况集常用adb命令
- Android 中查看内存的使用情况集常用adb命令
- Android 中查看内存的使用情况集常用adb命令
- 循环不断打印出Android系统中某个进程的内存使用情况
- 使用adb查看app占用内存情况
- 查看Android内存情况的adb命令
- 打印IOS设备内存使用情况
- Android使用adb查看当前设备运行进程CPU内存等资源的使用情况
- Android使用adb查看当前设备运行进程CPU内存等资源的使用情况
- android开发中查看NDK中的内存使用情况方法
- Android网络连接判断与处理
- 引用类型与基本类型的区别
- php初级面试题
- HDFS 拷贝本地文件至HDFS时的异常[INFO fs.FSInputChecker: Found checksum error]处理方法
- 【spoj1693】【最小割】Coconuts
- adb 打印终端中内存使用情况的方法
- BigDecimal
- Windows Server 2012启用自动登录方法
- 用户注册——关键字过滤
- BigInteger
- matlab startup.m文件
- 软件工程导论第一次作业
- PLL和DLL:都是锁相环,区别在哪里?
- CentOS 安装mysql