1、dumpsys简介

    Android提供的dumpsys工具可以用于查看感兴趣的系统服务信息与状态,ADB或者串口连接设备后可以直接命令行执行adb shell dumpsys 查看系统信息。

2、dumpsys使用

$ dumpsys | grep "DUMP OF SERVICE"

安卓debug工具---dumpsys安卓debug工具---dumpsys

由此可知,该命令打印出的是系统当前的所有正在运行的服务的信息。

从上面可以看出Service非常多,“DUMP OF SERVICE”关键字后面的单词都可以直接通过 “dumpsys + 单词 ”查看相关信息,具体每一个如何使用有一种通用的查看帮助的办法。

查看每一个命令的使用帮助,以下以meminfo 为例演示:

安卓debug工具---dumpsys

安卓debug工具---dumpsys

每个服务信息之间使用横线间隔。

在开发过程中, 使用dumpsys一个常用的用途是查看ActivityManagerService服务的信息。 下面分析ActivityManagerService。 该服务的信息从下面一行开始:

安卓debug工具---dumpsys

整个ActivityManagerService分为如下部分进行统计显示。不同Android版本会有所差异。

安卓debug工具---dumpsys

$ dumpsys activity intents

安卓debug工具---dumpsys

每个待处理的intent在ActivityManagerService内部使用一个PendingIntentRecord对象表示,并且会显示出所在应用的包名,并且会指定该intent是用来发送广播,启动activity或是启动service。

$ dumpsys activity broadcasts

首先会列出系统中所有注册的广播接收者

安卓debug工具---dumpsys

$ dumpsys activity broadcasts

安卓debug工具---dumpsys

$ dumpsys activity broadcasts

之后列出的是位于后台的历史广播:

安卓debug工具---dumpsys

$ dumpsys activity providers

provider相关的信息。由输出信息可知, 在ActivityManagerService中,一个provider组件使用一个ContentProviderRecord对象表示。

安卓debug工具---dumpsys

dumpsys activity services 是显示每个service的信息:

安卓debug工具---dumpsys

ACTIVITY MANAGER RECENT TASKS列出了最近打开的Task的信息,最上面的Recent #0是最新打开的Task信息,下面依次为更早时候打开的Task的信息(这里仅仅是粗略的activity task信息,详细信息通过tid在后面显示 )

安卓debug工具---dumpsys

安卓debug工具---dumpsys

ACTIVITY MANAGER ACTIVITIES列出了每个task的详细信息,即这个Task包含哪些Activity,他们的显示顺序是什么样的等等。上图中,id为269的task只包含1个Activity:StickySiloStubActivity

示例:如何通过dumpsys看广播是否发出和是否处理过

dumpsys window查看当前界面所在应用

安卓debug工具---dumpsys

mCurrentFocus是当前可以获得焦点的window,mFocusedApp是可以拿到焦点的app,这两个不一定是在一个包内

安卓debug工具---dumpsys

查看电视当前所包含的window

安卓debug工具---dumpsys

从下往上是window层级由高到低

安卓debug工具---dumpsys

window层级数值在/framwworks/base/core/java/android/view/WindowManager.java中定义

安卓debug工具---dumpsys

dumpsys package + 包名,查看应用相关信息:

activity信息、注册广播信息、权限、版本、ContentProvider信息、apk包的信息

例如:

安卓debug工具---dumpsys

dumpsys meminfo + 包名,查看应用占用内存情况

安卓debug工具---dumpsys

  dumpsys meminfo --oom,查看应用内存层级

安卓debug工具---dumpsys

dumpsys gfxinfo + 包名,查看应用丢帧情况

安卓debug工具---dumpsys

dumpsys cpuinfo,查看电视当前cpu使用情况,也可以直接用top命令查看当前cpu的使用情况。

安卓debug工具---dumpsys

dumpsys activity activities,可以查看电视当前activity stack 情况。也可以使用am stack list查看stack信息

安卓debug工具---dumpsys

相关文章:

  • 2021-11-27
  • 2021-06-25
  • 2022-12-23
  • 2022-12-23
  • 2021-11-02
  • 2021-08-22
  • 2022-01-29
  • 2021-11-29
猜你喜欢
  • 2021-10-29
  • 2021-12-09
  • 2021-08-26
  • 2021-12-08
  • 2022-12-23
  • 2021-07-30
  • 2021-04-04
相关资源
相似解决方案