JobPlus知识库 IT 软件开发 文章
dumpsys的使用笔记

概述

   Android系统中有很多服务,不同版本的Android系统,服务不尽相同,并且不同ROM厂商也提供了其定制的服务,为了方便查看这些服务的信息与状态,Android提供了dumpsys工具。

   手机连接电脑后可以执行adb shell dumpsys -l,即可查看当前所有的系统服务名称。

  •    接着就可以通过dumpsys + name查看某个服务的具体信息。

常用的指令

   列举一些常用的dump指令

1. 获取包信息

adb shell dumpsys package packgename 

用以获取某个应用包的信息,不加包名则会列出所有包信息

2. 获取窗口信息

adb shell dumpsys window 

用以获取窗口信息

3. 四大组件相关信息

4. 手机信息相关信息

注:大部分母指令后加-h可以获取帮助信息,如adb shell dumpsys package -h

实现原理

   简单的介绍下实现原理

   找到其对应Android的配置文件,位于frameworks/native/cmds/dumpsys目录下,其配置如下。

   可以看到配置文件很简单,最重要的是dumpsys.cpp文件,定位到位置frameworks/native/cmds/dumpsys/dumpsys.cpp,查看其main方法。

   从上述的代码里,可以看出,dump的大致逻辑为:

  1. 通过defaultServiceManager获取SystemServiceManager的对象(SystemServiceManager顾名思义就是用来管理所有的服务);
  2. 通过SystemServiceManager获取系统所有服务,并排序;
  3. 解析接收的参数,根据参数的不同设置后续的执行指令序列;
  4. 从SystemServiceManager中找到需要输出的服务对象,执行该服务的dump方法
  5. 完成所有dump信息打印。


如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

¥ 打赏支持
300人赞 举报
分享到
用户评价(0)

暂无评价,你也可以发布评价哦:)

扫码APP

扫描使用APP

扫码使用

扫描使用小程序