dumpsys meminfo 详解

源码基于:Android R

0. 前言

其实,很久以前在 android 查看内存使用情况 一文中已经分析过dumpsys meminfo,但最近在统计内存数据的时候发现怎么也对不上,所以重新分析了下源码,之前在 android 查看内存使用情况 一文只是讲了个大概框架或含义。本篇博文会结合代码详细分析下AMS 下meminfo service 以及dump 的过程。

1. meminfo 的起点dumpsys

AMS 下的meminfo 统计是通过dumpsys 命令进行dump 的,这个是存放在 /system/bin/下的bin 文件。源码目录位于 frameworks/native/cmds/dumpsys/下,详细的请查看 

为了获取Android设备的内存使用情况,你可以利用`dumpsys meminfo`命令,并指定相应的包名或进程ID来获取详细的内存信息。这个命令对于开发者来说非常重要,因为它可以帮助你了解应用的内存使用模式,及时发现和解决内存泄漏等问题。执行此命令后,系统会返回大量关于内存使用的统计数据,下面将详细介绍一些关键输出项的含义: 参考资源链接:[Android dumpsys命令详解:深入理解系统状态查看工具](https://wenku.csdn.net/doc/z6bk3e6j5f?spm=1055.2569.3001.10343) 1. **Dalvik Heap**:这部分数据提供了Dalvik堆的内存使用情况。Dalvik是Android平台上负责运行Android应用程序的虚拟机。此区域显示了已分配的内存大小、当前使用的内存量、最大可用内存以及空闲内存等关键信息。 2. **Native Heap**:这里指的非Java堆内存使用情况,它显示了C/C++代码在native堆上分配的内存。 3. **Graphics**:这部分涉及到图形缓冲区的内存使用情况。包括被进程使用的图形内存大小、可用图形内存、最大可用图形内存以及缓存状态等。 4. **Private Other**:这部分统计了非堆和非图形缓冲区的私有内存。例如,用于存储应用特定数据的内存。 5. **Private Cleanable**:这部分是可被系统回收的内存,但应用仍然可以访问。 6. **Swap**:交换空间的使用情况,如果设备使用了虚拟内存,这部分将会显示。 7. **Total PSS**:进程共享物理内存大小。它将内存分为每个进程实际使用的部分和共享部分。 8. **Total RAM**:总物理RAM的使用情况,包括所有进程和内核等。 9. **ZRAM**:压缩内存(也称为ZRAM)使用情况,它是内存管理中用于缓解物理内存压力的技术之一。 10. **PSS by OOM Adjustment**:此部分将内存使用按照不同的oom_adj(out of memory adjustment)值进行分类,oom_adj值越小,进程越不容易被系统终止。 当你对`dumpsys meminfo`命令进行实战应用时,可以结合《Android dumpsys命令详解:深入理解系统状态查看工具》这本书。这本书为开发者提供了`dumpsys`命令的详细解读和使用技巧,能帮助你更有效地获取、分析和利用系统内存状态数据。书中不仅涵盖了如何读取和理解这些输出,还包括了如何将这些知识应用于实际问题解决中,帮助开发者提升性能调优的实战能力。 参考资源链接:[Android dumpsys命令详解:深入理解系统状态查看工具](https://wenku.csdn.net/doc/z6bk3e6j5f?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

私房菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值