Android-世界的活点地图-dumpsys(Android-Detail-工具)

Android 进阶——Framework 核心之dumpsys命令浅析 Dumpsys是安卓系统提供用来动态查看系统内部服务运行状态的命令。了解dumpsys命令的使用方法,可以方便我们查看系统中各个进程内存使用情况,各个进程CPU占用率情况,各个应用apk运行情况,系统唤醒源情况等。 阅读详情

因为程序在计算机中运行时,在内存、CPU、I/O等设备上的数据都是动态的(或者说是易失的),也就是说数据使用完或者发生异常就会丢掉。如果我想得到某些时刻的数据(有可能是调试程序 Bug 或者收集某些信息),就要把他转储(dump)为静态(如文件)的形式。否则,这些数据你永远都拿不到。

2、dump 转储的是什么内容(dump 的对象)?

其实上边已经提到了,就是将动态(易失)的数据,保存为静态的数据(持久数据)。像程序这种本来就保存在存储介质(如硬盘)中的数据,也就没有必要dump。

现在,dump作为 名词 也很好理解了,一般就是指 dump(动词) 的结果文件。

以上来自 [知乎 Freeman 的回答](()

dumpsys 常用语法

adb shell dumpsys [-t timeout] [--help | -l | --skip services | service [arguments] | -c | -h]

下表列出了使用 dumpsys 时的可用选项。

选项说明
-t timeout指定超时期限(秒)。如果未指定,默认值为 10 秒。
–help输出 dumpsys 工具的帮助文本。
-l输出可与 dumpsys 配合使用的系统服务的完整列表。
–skip services指定您不希望包含在输出中的服务。
service [arguments]指定您希望输出的服务。某些服务可能允许您传递可选参数。您可以通过将 -h选项与服务名称一起传递来了解这些可选参数,如下所示:adb shell dumpsys procstats -h
-c指定某些服务时,附加此选项能以计算机可读的格式输出数据。
-h对于某些服务,附加此选项可查看该服务的帮助文本和其他选项。

dumpsys 原理

dumpsys 命令源码来自 [frameworks/native/cmds/dumpsys/dumpsys.cpp](()。

sm_

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yn5xwjZZ-1651728536504)(https://upload-images.jianshu.io/upload_images/22796403-d0682706c7 《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》无偿开源 徽信搜索公众号【编程进阶路】 f83554.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)]

dumpsys 主要做了以下几件事:

  • 获取 ServiceManager 对象 sm_
  • 使用 sm_ 的 listService() 获取系统所有向 ServiceManager 注册过的服务
  • 使用 sm_ 的 checkService() 获取指定服务
  • 调用 service 远程服务中的 dump() 方法输出相应的信息

简单来讲,dumpsys 通过用户输入命令中的 service 名称,使用 checkService() 获取指定 service ,并调用其远程服务中的 dump() 方法来输出相应的信息。

👆 划重点

例如 adb shell dumpsys activity activities

👆 service 名称为 activity ,输出 ActivityManagerService 相关的信息,参数 activities 表示显示 activity 状态

dumpsys 的使用技巧

常用的 service

常用的 service 名称有:

dumpsys activity //查询AMS服务相关信息
dumpsys window //查询WMS服务相关信息
dumpsys cpuinfo //查询CPU情况
dumpsys meminfo //查询内存情况

adb shell dumpsys -l 命令能够输出可与 dumpsys 配合使用的系统服务的完整列表。

adb shell dumpsys -l

详情如下:

服务名类名功能
activityActivityManagerServiceAMS相关信息
packagePackageManagerServicePMS相关信息
windowWindowManagerServiceWMS相关信息
inputInputManagerServiceIMS相关信息
powerPowerManagerServicePMS相关信息
batterystatsBatterystatsService电池统计信息
batteryBatteryService电池信息
alarmAlarmManagerService闹钟信息
dropboxDropboxManagerService调试相关
procstatsProcessStatsService进程统计
cpuinfoCpuBinderCPU
meminfoMemBinder内存
gfxinfoGraphicsBinder图像
dbinfoDbBinder数据库
服务名功能
SurfaceFlinger图像相关
appopsapp使用情况
permission权限
processinfo进程服务
batteryproperties电池相关
audio查看声音信息
permission权限
processinfo进程服务
batteryproperties电池相关
audio查看声音信息
Android-世界的活点地图-dumpsys(Android-Detail-工具),如何系统全面性学习Android语言 考虑到文章的篇幅问题,我把这些问题和答案以及我多年面试所遇到的问题和一些面试资料做成了PDF文档《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取! 阅读详情

相关推荐

电脑蓝牙与ESP32蓝牙连接,让电脑发现ESP32

让PC发现ESP32蓝牙

injre! injre~ 5446

dumpsys procstats详解

简介   procstats 工具用于分析应用内存在一段时间内的使用情况(而不像 meminfo 一样在特定时间点捕获快照)。其状态转储会显示每个应用的运行时间、比例集合大小 (PSS) 和唯一集合大小 (USS) 的统计信息–引用自官网介绍查看 RAM 使用情况数据 (procstats)   Android内部将内存状态划分为四个等级:Norm/Mod/Low/Crit,按内存的使用情况从轻度到重度的顺序排列;将屏幕状态划分为两个等级:SOff/SOn,分别表示息屏和亮屏;将进程状态划分为14个等级:P

Invoker123的博客 3348

ARM和FPGA之间的通信(硬件原理图篇)

设计该开发板的初衷是为了学习,但也希望今后能扩展其功能,看到大家都在diy示波器,自己也非常冲动的想DIY一把,于是呼选了arm+fpga的方案,fpga主要用来实现数据的高速采样,而ARM则提供数据的显示,以及一些人机交互的功能。那么该方案中最重要的地方就是ARM和FPGA之间的通信如何实现了。在网上查了很多的资料,有说将FPGA作为ARM的一个外设,可以通过DMA的方式来直接访问;也有说把FP

屌yy的博客 5万+

Android dump渲染和合成图层GraphicBuffer指南

      Android dump渲染和合成图层GraphicBuffer指南 引言   博客停更很久了,提起笔来渐感生疏啊!看来,还是得抽出时间来更新更新啊!好了,感慨也发完了,是时候切入正题了。本篇博客将主要详细介绍如何dump Android渲染和合成图层GraphicBuffer,并通过YUV软件查看流程!通过本篇博客,读者将会至少学会如下两点: 通过dump Android渲染图层GraphicBuffer,查看Android渲染结果是否正确 通过dump Android合成图层Graph

IT先森 9102

银河麒麟V10系统grub崩溃急救指南:从光盘救援到完整恢复(附常见错误排查)

本文详细介绍了银河麒麟V10系统grub崩溃的急救方法,从使用安装光盘进入救援环境到完整恢复系统的全流程。针对不同损坏程度(轻度、中度、严重)提供了分级恢复策略,包括grub2-install和grub2-mkconfig等关键命令的使用,并附有常见错误排查表,帮助用户快速解决引导问题。

weixin_30955617的博客 483

使用TMS320F28335控制四位共阳数码管

简要阐述利用F28335控制四位共阳数码管的整个过程,包括原理、思路、部分代码以及调试过程。

liujunhaozuishuai的博客 2659

android framework层dump pcm数据的方法

dump pcm数据是音频工程师经常用的的debug手段,这里总结下在framework层dump数据的位置 dump 数据的方法 FILE *fp1 = fopen("/data/audio_spk.pcm", "a+"); if (fp1) { int flen = fwrite((char *)buffer, 1, bytes, fp1); fclose(fp1); } 1.AudioTrack的write函数 应用层如果是直接write的形式...

和大伙儿去乘凉 2999

Uniapp返回上一页并刷新:亲测有效的 goBack 实现技巧!

这个技巧在实际开发中非常常用,特别适合表单提交后返回列表刷新这类场景。比起依赖onShow或复杂的vuex状态同步,这种方式更直接、好维护,也不容易出 bug。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1841

2024年安卓最新Android-世界的活点地图-dumpsys(Android-Detail-工具),小红书java面试题

架构师不是天生的,是在项目中磨练起来的,所以,我们学了技术就需要结合项目进行实战训练,那么在Android里面最常用的架构无外乎 MVC,MVP,MVVM,但是这些思想如果和模块化,层次化,组件化混和在一起,那就不是一件那么简单的事了,我们需要一个真正身经百战的架构师才能讲解透彻其中蕴含的深理。只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。dumpsys cpuinfo //查询CPU情况。

2401_84557161的博客 960

DeerFlow 系列教程 第三篇 | 核心技术深度剖析:Skills、Memory 与 Context Engineering

摘要化是 Context Engineering 中最关键的组件——它直接决定了长对话的可用性。Skills 技能系统通过渐进式加载的三层模型,在保持系统提示词轻量的同时,支持无限数量的技能扩展。从发现到执行的 10 个生命周期阶段,配合 AI 驱动的安全扫描和多层缓存,构成了一个生产级的技能管理框架。Memory 长期记忆系统通过文件系统持久化、LLM 驱动的信息提取和防抖动异步更新,实现了跨会话的认知持久化。六类事实分类体系和修正信号检测机制,让 Agent 能够从交互中持续学习和改进。

weixin_43674738的博客 280

玩转Docker小游戏项目系列: Docker部署中国象棋网页小游戏

玩转Docker小游戏项目系列: Docker部署中国象棋网页小游戏

jks212454的博客 440

Android-世界的活点地图-dumpsys(Android-Detail-工具)(1)

以上来自。

2401_84008965的博客 991

endNote X9 增加 / 删除参考文献 文献编号自动更新

EndNote X9 插入参考文献常见问题总结。增删参考文献 文献编号自动更新

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 7495
上一篇: Android 面试:事件分发8连问
下一篇: Android-开发经验分享:挺重要的网络基础
Android_1314
博客等级 码龄5年 1粉丝 70原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值