Android 分析内存情况

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

首先都要先通过 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 回帖 • 67 关注

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • GraphQL

    GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

    4 引用 • 3 回帖 • 20 关注
  • DNSPod

    DNSPod 建立于 2006 年 3 月份,是一款免费智能 DNS 产品。 DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。

    6 引用 • 26 回帖 • 521 关注
  • VirtualBox

    VirtualBox 是一款开源虚拟机软件,最早由德国 Innotek 公司开发,由 Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。

    10 引用 • 2 回帖 • 6 关注
  • 电影

    这是一个不能说的秘密。

    120 引用 • 597 回帖 • 2 关注
  • Bootstrap

    Bootstrap 是 Twitter 推出的一个用于前端开发的开源工具包。它由 Twitter 的设计师 Mark Otto 和 Jacob Thornton 合作开发,是一个 CSS / HTML 框架。

    18 引用 • 33 回帖 • 684 关注
  • PWL

    组织简介

    用爱发电 (Programming With Love) 是一个以开源精神为核心的民间开源爱好者技术组织,“用爱发电”象征开源与贡献精神,加入组织,代表你将遵守组织的“个人开源爱好者”的各项条款。申请加入:用爱发电组织邀请帖
    用爱发电组织官网:https://programmingwithlove.stackoverflow.wiki/

    用爱发电组织的核心驱动力:

    • 遵守开源守则,体现开源&贡献精神:以分享为目的,拒绝非法牟利。
    • 自我保护:使用适当的 License 保护自己的原创作品。
    • 尊重他人:不以各种理由、各种漏洞进行未经允许的抄袭、散播、洩露;以礼相待,尊重所有对社区做出贡献的开发者;通过他人的分享习得知识,要留下足迹,表示感谢。
    • 热爱编程、热爱学习:加入组织,热爱编程是首当其要的。我们欢迎热爱讨论、分享、提问的朋友,也同样欢迎默默成就的朋友。
    • 倾听:正确并恳切对待、处理问题与建议,及时修复开源项目的 Bug ,及时与反馈者沟通。不抬杠、不无视、不辱骂。
    • 平视:不诋毁、轻视、嘲讽其他开发者,主动提出建议、施以帮助,以和谐为本。只要他人肯努力,你也可能会被昔日小看的人所超越,所以请保持谦虚。
    • 乐观且活跃:你的努力决定了你的高度。不要放弃,多年后回头俯瞰,才会发现自己已经成就往日所仰望的水平。积极地将项目开源,帮助他人学习、改进,自己也会获得相应的提升、成就与成就感。
    1 引用 • 487 回帖 • 5 关注
  • Latke

    Latke 是一款以 JSON 为主的 Java Web 框架。

    70 引用 • 532 回帖 • 712 关注
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    476 引用 • 899 回帖
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    19 引用 • 23 回帖 • 686 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3168 引用 • 8207 回帖
  • Sillot

    Sillot (汐洛)孵化自思源笔记,致力于服务智慧新彖乄,具有彖乄驱动、极致优雅、开发者友好的特点
    Github 地址:https://github.com/Hi-Windom/Sillot

    16 引用 • 6 回帖 • 28 关注
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖 • 6 关注
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    330 引用 • 614 回帖
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    122 引用 • 73 回帖
  • Sphinx

    Sphinx 是一个基于 SQL 的全文检索引擎,可以结合 MySQL、PostgreSQL 做全文搜索,它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。

    1 引用 • 181 关注
  • 外包

    有空闲时间是接外包好呢还是学习好呢?

    26 引用 • 232 回帖 • 7 关注
  • Vditor

    Vditor 是一款浏览器端的 Markdown 编辑器,支持所见即所得、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现,支持原生 JavaScript、Vue、React 和 Angular。

    314 引用 • 1667 回帖 • 2 关注
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    11 引用 • 5 回帖 • 565 关注
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖 • 1 关注
  • Android

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

    333 引用 • 323 回帖 • 67 关注
  • 大数据

    大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    89 引用 • 113 回帖
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 48 关注
  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    18722 引用 • 69932 回帖
  • IBM

    IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。

    16 引用 • 53 回帖 • 123 关注
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖
  • WordPress

    WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。

    45 引用 • 113 回帖 • 313 关注
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 71 关注