携手创作,共同成长!这是我参与「掘金日新计划 · 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连接及状态信息