dumpsys工具的使用

297 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第9天,点击查看活动详情 

沉淀、分享、成长,让自己和他人都能有所收获!😄

一、dumpsys


Android使用ServiceManager服务进程来管理系统所有的服务,在系统启动时,每个服务必须注册到ServiceManager进程中,那如何查看系统运行了那些服务呢?ServiceManager提供了listServices接口来罗列出系统注册的所有服务, dumpsys工具比较简单,就是调用ServiceManager服务的listServices来查询系统注册的所有服务,并且通过checkService接口来获取服务的Binder远程代理对象,使用每个服务的dump()函数来打印该服务的相关信息。

dumpsys源码在 frameworks\native\cmds\dumpsys\dumpsys.cpp

二、获取dumpsys支持的命令


执行

$ dumpsys

在输出的信息的开头, 列出了系统中正在运行的service,但是这样输出太多了, 因此, 可以使用如下命令来进行过滤

$ dumpsys | grep “DUMP OF SERVICE”  

三、支持dumpsys的service


  • acount 显示设备上所有用户的信息

  • Cpuinfo 可以显示每个进程在内核空间和用户空间的cpu占用率

  • Activity 用于查看 activity组件的信息,详细信息使用如下命令获取帮助

$ dumpsys activity -h
  • appwidget android窗口小部件的信息

  • audio android音频组件信息

  • battery android电池设备信息

  • connectivity android网络连接状态及进程请求网络信息

  • content 查看android content provider相关的信息

  • device_policy android设备政策

  • dropbox 系统崩溃的信息

  • input_method Android输入法信息

  • iphonesubinfo 手机制式及设备id

  • location gps等位置信息

  • meminfo android进程实际物理内存占用情况

  • mount 加载的存储设备信息

  • network_management android网络流量管理信息

  • notification android通知栏广告信息

  • package 通过l、perm、perf、p等参数dump出package信息,还能够直接跟包名来dump出该包的具体信息

  • power 电源管理器的一些状态信息

  • sensorservice android传感器的一些状态信息

  • statusbar 显示状态栏相关的一些信息

  • telephony.registry 电话服务相关的信息

  • uimode ui mode service的状态信息

  • usagestats 各个app使用情况统计

  • wallpaper 壁纸信息

  • wifi wifi连接及状态信息