dumpsys的使用笔记
概述
Android系统中有很多服务,不同版本的Android系统,服务不尽相同,并且不同ROM厂商也提供了其定制的服务,为了方便查看这些服务的信息与状态,Android提供了dumpsys工具。
手机连接电脑后可以执行adb shell dumpsys -l,即可查看当前所有的系统服务名称。
|
|
接着就可以通过dumpsys + name
查看某个服务的具体信息。
|
|
常用的指令
列举一些常用的dump指令
1. 获取包信息
|
|
2. 获取窗口信息
|
|
3. 四大组件相关信息
|
|
4. 手机信息相关信息
|
|
注:大部分母指令后加-h可以获取帮助信息,如adb shell dumpsys package -h
实现原理
简单的介绍下实现原理
找到其对应Android的配置文件,位于frameworks/native/cmds/dumpsys目录下,其配置如下。
|
|
可以看到配置文件很简单,最重要的是dumpsys.cpp文件,定位到位置frameworks/native/cmds/dumpsys/dumpsys.cpp,查看其main方法。
|
|
从上述的代码里,可以看出,dump的大致逻辑为:
- 通过defaultServiceManager获取SystemServiceManager的对象(SystemServiceManager顾名思义就是用来管理所有的服务);
- 通过SystemServiceManager获取系统所有服务,并排序;
- 解析接收的参数,根据参数的不同设置后续的执行指令序列;
- 从SystemServiceManager中找到需要输出的服务对象,执行该服务的dump方法
- 完成所有dump信息打印。
版权声明:本文为博主原创文章,转载请注明出处KidSea