dumpsys
【用途】Android系统提供的dumpsys工具可以用来查看系统服务信息与状态。
【使用说明】
adb shell dumpsys
【常用服务解释】
编号
服务名称
功能
1
account
显示accounts信息
2
activity
显示所有的activities信息,包括activity栈,栈顶activity等
3
cpuinfo
显示CPU信息,系统各进程的CPU使用率
4
window
显示键盘、窗口和他们的关系。获取当前应用的component
5
wifi
显示wifi信息
7
package
获取安装包信息 package $package_name
8
usagestats
每个界面的启动时间
9
statusbar
显示状态栏相关的信息
10
meminfo
显示内存信息。meminfo $package_name or $pid显示指定程序内存信息
11
diskstats
显示磁盘相关信息
12
battery
显示电池信息
13
alarm
显示应用持锁情况,可用于分析系统无法待机的问题以及应用层死锁问题
14
input
显示InputReader和InputDispatcher消息队列,底层事件一般通过inputevent的方式上报,通过查看消息队列,可以判断冻屏时内核是否正常(adb shell setprop sys.input.debug 1打开debug信息)
【代码实现】
dumpsys代码在frameworks/base/cmds/dumpsys/dumpsys.cpp
所有dump信息都是由重载了Binder的dump函数的类来完成:
protected void dump(FileDescriptor fd, PrintWriter pw, String[] args){
//TODO: xxxx
}
所有dump信息都是由ServiceManager注册的services提供的,以meminfo为例:
frameworks/base/services/java/com/android/server/am/ActivityManagerService.java中的setSystemProcess函数中注册meminfo服务:
ServiceManager.addService(“activity”, m);
ServiceManager.addService(“meminfo”,new MemBinder(m));
MemBinder->ProcessRecord->各个正在运行状态的ApplicationThread的状态(frameworks/base/core/java/android/app/ActivityThread.java),从中得到需要的meminfo的信息。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章