Android 分析内存情况

本贴最后更新于 1976 天前,其中的信息可能已经沧海桑田

首先都要先通过 adb 连接到安卓设备,adb shell 进入系统

方法一:procrank 命令

 PID       Vss      Rss      Pss      Uss  cmdline
955   807836K   57864K   36529K   33872K  com.gitvdemo.video
606   691244K   43668K   26172K   25188K  com.android.systemui
435   774656K   47488K   24661K   21728K  system_server
12484   735784K   42804K   21658K   19704K  com.xhc.xhcsmarthomemetv
 1448   702640K   31748K   12624K   11764K  com.lz.smart.music
 92   680604K   42212K   12601K    6640K  zygote
 1243   749056K   33024K   12277K   10452K  com.iflytek.xiri
 4900   711984K   28460K    9254K    7952K  com.xhc.gateway
 94    58968K   12816K    7823K    4948K  /system/bin/mediaserver
620   707292K   27180K    7734K    6400K  com.android.inputmethod.latin
1362   790960K   24460K    6870K    6112K  com.xhc.comm
633   709560K   25292K    6542K    5384K  com.android.phone
925   705876K   26740K    6223K    4856K  com.dangbeimarket:bdservice_v1
1713   701716K   25672K    6049K    4624K  com.dangbeimarket
647   699276K   24096K    5927K    5148K  xhc.smarthome.business
776   693756K   24180K    5808K    4888K  android.process.media
1021   700848K   22992K    5596K    4828K  com.xiaobaifile.tv
713   693608K   23452K    5481K    4660K  android.process.acore
 1197   704732K   24352K    4982K    2272K  .pushdaemonservice
 1865   707024K   24956K    4863K    3464K  com.dangbeimarket:appuninstallMonitor
 1746   700580K   24084K    4471K    3224K  com.dangbeimarket:dangbei_web
939   702048K   19916K    3784K    3148K  com.me.mediaplay

执行完命令之后,系统会打印上面的这些信息

PID :表示进程 id 号
VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)是单个进程全部可访问的地址空间
RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)是单个进程实际占用的内存大小,对于单个共享库, 尽管无论多少个进程使用,实际该共享库只会被装入内存一次。
PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)USS 是一个非常非常有用的数字, 因为它揭示了运行一个特定进程的真实的内存增量大小。如果进程被终止, USS 就是实际被返还给系统的内存大小。
USS 是针对某个进程开始有可疑内存泄露的情况,进行检测的最佳数字。怀疑某个程序有内存泄露可以查看这个值是否一直有增加

方法二:dumpsys meminfo 命令

root@rksdknew:/ # dumpsys meminfo
dumpsys meminfo
Applications Memory Usage (kB):
Uptime: 11090780 Realtime: 11090767

Total PSS by process:
36454 kB: com.gitvdemo.video (pid 955)
26061 kB: com.android.systemui (pid 606)
24545 kB: system (pid 435)
21550 kB: com.xhc.xhcsmarthomemetv (pid 12484 / activities)
12522 kB: com.lz.smart.music (pid 1448)
12453 kB: zygote (pid 92)
12158 kB: com.iflytek.xiri (pid 1243)
 9187 kB: com.xhc.gateway (pid 4900)
 7798 kB: mediaserver (pid 94)
 7617 kB: com.android.inputmethod.latin (pid 620)
 6793 kB: com.xhc.comm (pid 1362)
 6439 kB: com.android.phone (pid 633)
 6120 kB: com.dangbeimarket:bdservice_v1 (pid 925)
 5942 kB: com.dangbeimarket (pid 1713)
 5827 kB: xhc.smarthome.business (pid 647)
 5702 kB: android.process.media (pid 776)
 5511 kB: com.xiaobaifile.tv (pid 1021)
 5375 kB: android.process.acore (pid 713)
 4881 kB: .pushdaemonservice (pid 1197)
 4741 kB: com.dangbeimarket:appuninstallMonitor (pid 1865)
 4415 kB: com.dangbeimarket:dangbei_web (pid 1746)

Total PSS by OOM adjustment:
37085 kB: Native
           12453 kB: zygote (pid 92)
            7798 kB: mediaserver (pid 94)
            2193 kB: .pushdaemonservice (pid 1218)
            2179 kB: drmserver (pid 93)
            1647 kB: smbd (pid 1925)
            1435 kB: surfaceflinger (pid 91)
            1339 kB: nmbd (pid 1930)
             979 kB: wpa_supplicant (pid 921)
             770 kB: netd (pid 88)
             597 kB: vold (pid 86)
             527 kB: smbd (pid 1927)
             441 kB: /init (pid 1)
             433 kB: keystore (pid 96)
             430 kB: rild (pid 90)
             355 kB: uSDKServer_2.0.0_2014051415 (pid 1482)
             336 kB: xirisvc2.3.0 (pid 98)
             299 kB: displayd (pid 87)
             276 kB: adbd (pid 105)
             275 kB: adb (pid 14894)
             248 kB: ueventd (pid 60)
             236 kB: dhcpcd (pid 1059)
	
  24545 kB: System
           24545 kB: system (pid 435)
43293 kB: Persistent
           26061 kB: com.android.systemui (pid 606)
            6439 kB: com.android.phone (pid 633)
            5827 kB: xhc.smarthome.business (pid 647)
            3251 kB: com.iflytek.xiri2.system (pid 659)
            1715 kB: com.iflytek.showcomesettings (pid 666)
21550 kB: Foreground
           21550 kB: com.xhc.xhcsmarthomemetv (pid 12484 / activities)
 1637 kB: Visible
            1637 kB: com.android.smspush (pid 732)
26394 kB: Perceptible
            7617 kB: com.android.inputmethod.latin (pid 620)
            6793 kB: com.xhc.comm (pid 1362)
            5511 kB: com.xiaobaifile.tv (pid 1021)
            4741 kB: com.dangbeimarket:appuninstallMonitor (pid 1865)
            1732 kB: com.ehome.mp (pid 1378)
 6120 kB: A Services
            6120 kB: com.dangbeimarket:bdservice_v1 (pid 925)
97301 kB: B Services
           36454 kB: com.gitvdemo.video (pid 955)
           12522 kB: com.lz.smart.music (pid 1448)
           12158 kB: com.iflytek.xiri (pid 1243)
            9187 kB: com.xhc.gateway (pid 4900)
            5942 kB: com.dangbeimarket (pid 1713)
            4881 kB: .pushdaemonservice (pid 1197)
            4415 kB: com.dangbeimarket:dangbei_web (pid 1746)
            3682 kB: com.me.mediaplay (pid 939)
            2866 kB: android.rockchip.update.service (pid 843)
            2637 kB: android:userExpericenceService (pid 1511)
            2557 kB: com.dangbeimarket:MonitorService (pid 1780)
    28861 kB: Cached
            5702 kB: android.process.media (pid 776)
            5375 kB: android.process.acore (pid 713)
            3535 kB: com.android.gallery3d (pid 12071)
            3443 kB: com.android.deskclock (pid 1649)
            3287 kB: com.android.launcher3 (pid 12104)
            2082 kB: com.android.keychain (pid 12089)
            1941 kB: com.android.musicfx (pid 12056)
            1759 kB: com.bc.InitApp (pid 881)
            1737 kB: com.svox.pico (pid 12500)

Total PSS by category:
87196 kB: Dalvik
59666 kB: .so mmap
41691 kB: .dex mmap
39804 kB: Dalvik Other
38077 kB: Unknown
 8012 kB: .apk mmap
 7235 kB: Other mmap
 2268 kB: Native
 1356 kB: .ttf mmap
  964 kB: Stack
  273 kB: Other dev
  156 kB: .jar mmap
   84 kB: Ashmem
    4 kB: Cursor
    0 kB: code mmap
    0 kB: image mmap
    0 kB: Graphics
    0 kB: GL
    0 kB: Memtrack

Total RAM: 1048576 kB
 Free RAM: 575109 kB (28861 cached pss + 271964 cached + 274284 free)
 Used RAM: 293193 kB (257925 used pss + 12784 buffers + 284 shmem + 22200 slab)
 Lost RAM: 180274 kB
 Tuning: 64 (large 384), oom 122880 kB, restore limit 40960 kB (high-end-gfx)

打印出以上信息

如果需要查看某个进程的内存情况,可以加入程序的包名或者是进程 id 号
dumpsys meminfo com.xhc.xhcsmarthomemetv

root@rksdknew:/ # dumpsys meminfo com.xhc.xhcsmarthomemetv
dumpsys meminfo com.xhc.xhcsmarthomemetv
Applications Memory Usage (kB):
Uptime: 11432837 Realtime: 11432824

** MEMINFO in pid 12484 [com.xhc.xhcsmarthomemetv] **
               Pss  Private  Private  Swapped     Heap     Heap     Heap
             Total    Dirty    Clean    Dirty     Size    Alloc     Free
            ------   ------   ------   ------   ------   ------   ------
Native Heap        0        0        0        0    10644     3886      265
Dalvik Heap    12523    12468        0        0    14436    11891     2545
 Dalvik Other     1785     1676        0        0                           
    Stack       20       20        0        0                           
Other dev        4        0        4        0                           
 .so mmap     1347      584      164        0                           
.apk mmap      193        0        0        0                           
.ttf mmap      603        0      332        0                           
.dex mmap     2391       16     1828        0                           
 Other mmap       53        8        0        0                           
  Unknown     2635     2628        0        0                           
    TOTAL    21554    17400     2328        0    25080    15777     2810

 Objects
           Views:      158         ViewRootImpl:        1
     AppContexts:        4           Activities:        1
          Assets:        2        AssetManagers:        2
   Local Binders:       11        Proxy Binders:       15
Death Recipients:        0
 OpenSSL Sockets:        0

 SQL
     MEMORY_USED:        0
PAGECACHE_OVERFLOW:        0          MALLOC_SIZE:        0


 Asset Allocations
zip:/system/app/EHOMETV.apk:/resources.arsc: 250K

这个进程的内存信息就会全部打印出来

如果通过 dumpsys meminfo + 进程 id

那就需要先获取进程的 id
通过 ps 命令查看所有进程的 id
打印出来的 PID 就是进程的 id 号

安卓系统开发中,或许会出现多个应用程序协同合作的情况,出了问题,莫名系统卡死,很有可能就是某个程序出现一直占用内存不释放,
越用越多,最后导致系统自动杀死等级低的应用程序,比如软键盘,或者其他的开发程序,用来释放内存

如果出现这个情况,就可以通过以上方式,查看哪个应用程序的内存越来越大,然后找到问题。

  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    333 引用 • 323 回帖 • 66 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    10 引用 • 85 回帖 • 1 关注
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 407 关注
  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 7 关注
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    51 引用 • 226 回帖
  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖 • 1 关注
  • WebClipper

    Web Clipper 是一款浏览器剪藏扩展,它可以帮助你把网页内容剪藏到本地。

    3 引用 • 9 回帖 • 6 关注
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 290 关注
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    205 引用 • 357 回帖
  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    4 引用 • 55 回帖 • 7 关注
  • ZeroNet

    ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。

    1 引用 • 21 回帖 • 590 关注
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    85 引用 • 1201 回帖 • 450 关注
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖 • 3 关注
  • Openfire

    Openfire 是开源的、基于可拓展通讯和表示协议 (XMPP)、采用 Java 编程语言开发的实时协作服务器。Openfire 的效率很高,单台服务器可支持上万并发用户。

    6 引用 • 7 回帖 • 89 关注
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 39 关注
  • AngularJS

    AngularJS 诞生于 2009 年,由 Misko Hevery 等人创建,后为 Google 所收购。是一款优秀的前端 JS 框架,已经被用于 Google 的多款产品当中。AngularJS 有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等。2.0 版本后已经改名为 Angular。

    12 引用 • 50 回帖 • 424 关注
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    69 引用 • 190 回帖 • 493 关注
  • 机器学习

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    76 引用 • 37 回帖
  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 43 关注
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 642 关注
  • Pipe

    Pipe 是一款小而美的开源博客平台。Pipe 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    131 引用 • 1114 回帖 • 152 关注
  • frp

    frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。

    15 引用 • 7 回帖 • 11 关注
  • LeetCode

    LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!

    209 引用 • 72 回帖 • 2 关注
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 741 关注
  • Love2D

    Love2D 是一个开源的, 跨平台的 2D 游戏引擎。使用纯 Lua 脚本来进行游戏开发。目前支持的平台有 Windows, Mac OS X, Linux, Android 和 iOS。

    14 引用 • 53 回帖 • 512 关注
  • 电影

    这是一个不能说的秘密。

    120 引用 • 597 回帖 • 2 关注