Android 分析内存情况

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

首先都要先通过 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 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    334 引用 • 323 回帖 • 1 关注

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 384 关注
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    53 引用 • 40 回帖
  • 链滴

    链滴是一个记录生活的地方。

    记录生活,连接点滴

    153 引用 • 3783 回帖 • 1 关注
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    543 引用 • 672 回帖 • 1 关注
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    58 引用 • 22 回帖
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    47 引用 • 25 回帖
  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 629 关注
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    943 引用 • 943 回帖
  • DNSPod

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

    6 引用 • 26 回帖 • 510 关注
  • 互联网

    互联网(Internet),又称网际网络,或音译因特网、英特网。互联网始于 1969 年美国的阿帕网,是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。

    98 引用 • 344 回帖
  • Kafka

    Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是现代系统中许多功能的基础。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。

    36 引用 • 35 回帖
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 71 关注
  • GitBook

    GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。

    3 引用 • 8 回帖 • 4 关注
  • IDEA

    IDEA 全称 IntelliJ IDEA,是一款 Java 语言开发的集成环境,在业界被公认为最好的 Java 开发工具之一。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。

    180 引用 • 400 回帖
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    117 引用 • 99 回帖 • 211 关注
  • 尊园地产

    昆明尊园房地产经纪有限公司,即:Kunming Zunyuan Property Agency Company Limited(简称“尊园地产”)于 2007 年 6 月开始筹备,2007 年 8 月 18 日正式成立,注册资本 200 万元,公司性质为股份经纪有限公司,主营业务为:代租、代售、代办产权过户、办理银行按揭、担保、抵押、评估等。

    1 引用 • 22 回帖 • 762 关注
  • 数据库

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

    340 引用 • 708 回帖
  • 博客

    记录并分享人生的经历。

    273 引用 • 2388 回帖
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 680 关注
  • AngularJS

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

    12 引用 • 50 回帖 • 474 关注
  • 音乐

    你听到信仰的声音了么?

    60 引用 • 511 回帖
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    247 引用 • 1348 回帖
  • Tomcat

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

    162 引用 • 529 回帖
  • ZooKeeper

    ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 HBase 的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

    59 引用 • 29 回帖 • 5 关注
  • Ant-Design

    Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。

    17 引用 • 23 回帖
  • 强迫症

    强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。

    15 引用 • 161 回帖
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖