dumpsys使用详解
2015-06-16 17:25
381 查看
Dumpsys结构图:
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A3%3A30.png?version=1&modificationDate=1408072159000&api=v2)
实现方式:
dumpsys的代码在mydroid/frameworks/base/cmds/dumpsys/dumpsys.cpp,所有的dump信息都是由重载了Binder中的dump函数的类来完成:
@Override
protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
...
}
代码很简单,发现所有dump的信息都是由defaultServiceManager)提供的由系统注册的所有service来提供信息。
以meminfo为例:
它是在
mydroid/frameworks/base/services/java/com/android/server/am/ActivityManagerService.java中的setSystemProcess函数处被注册的
SrviceManager.addService("activity", m);
ServiceManager.addService("meminfo", new MemBinder(m));
...
MemBinder->ProcessRecord->各个正在运行状态的ApplicationThread的状态(mydroid/frameworks/base/core/java/android/app/ActivityThread.java),从中得到需要的meminfo信息。
这其中其实牵涉到负责的Android的是如何管理Linux的进程,同时又是如何把Linux的进程管理起来提供各种信息给Java层使用。
上述信息来自网络:
https://www.google.com.hk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0CCEQFjAB&url=http%3A%2F%2Ffreshui-player.googlecode.com%2Fsvn%2Fbranches%2Fdocs%2Fandroid_tools%2FAndroid%25E7%25B3%25BB%25E7%25BB%259F%25E5%2588%2586%25E6%259E%2590%25E5%25B7%25A5%25E5%2585%25B7-dumpsys.doc&ei=XHftU5WaOIPn8AWsn4HADw&usg=AFQjCNHK3eJPxr5jB07Di96dlBqStTrtdg&bvm=bv.73231344,d.dGc
具体命令行参数:
1、 SurfaceFlinger
SurfaceFlinger是Android进行图形界面绘制的服务,根据文档显示,有硬件绘制和GPU绘制两种实现方式。
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A3%3A39.png?version=1&modificationDate=1408072159000&api=v2)
(来源:http://blog.csdn.net/windskier/article/details/7030732 )
通过dumpsys SurfaceFlinger,除了可以看到显示设备的一些参数开关之外,还能能到如下,360手机卫士主界面是硬件方式绘制的。
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A3%3A50.png?version=1&modificationDate=1408072159000&api=v2)
另外,还能看到命令行运行时候,手机系统上所有layer信息,如下所示:
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A3%3A56.png?version=1&modificationDate=1408072159000&api=v2)
关于这部分主要参考:
http://www.linuxgraphics.cn/android/graphics_system.html
http://stackoverflow.com/questions/21642734/how-to-make-sense-of-dumpsys-surfaceflinger
http://blog.csdn.net/windskier/article/details/7030732
2、 Cpuinfo
可以显示每个进程在内核空间和用户空间的cpu占用率
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A4%3A3.png?version=1&modificationDate=1408072159000&api=v2)
3、 Account
设备上所有用户信息
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A4%3A10.png?version=1&modificationDate=1408072159000&api=v2)
4、 Activity
-h:显示参数列表
A(activities)参数:查看activity组件信息,主要看从” Running activities (most recent first):”部分查看栈中的activity列表。
B(broadcasts)参数:查看所有注册的BraodcastReceiver及其filter、action等信息。
I(Intents)参数:等待的intent状态
P(processes)参数:ProcessRecord记录的进程id、进程名字和各种用于调节优先级的状态。
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A4%3A27.png?version=1&modificationDate=1408072159000&api=v2)
O(oom)参数:主要看oom_adj值,从中可以看到到内存释放的情况。
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A4%3A31.png?version=1&modificationDate=1408072159000&api=v2)
Prov(providers)参数:显示content providers信息
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A4%3A37.png?version=1&modificationDate=1408072159000&api=v2)
s(Services)参数:当前active状态的service及bindings信息。
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A4%3A42.png?version=1&modificationDate=1408072159000&api=v2)
services[]参数:跟上具体的服务名,dump出服务客户端的一些状态信息。
5、 Alarm
查看放到定时队列中的事件。
例如下面我们可以看到其intent ID。
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A4%3A48.png?version=1&modificationDate=1408072159000&api=v2)
而通过” dumpsys activity i”我们可以看到该intent所对应的详细信息。
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A4%3A54.png?version=1&modificationDate=1408072159000&api=v2)
6、 appwidget
android窗口小部件的信息。
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A4%3A59.png?version=1&modificationDate=1408072159000&api=v2)
7、 audio
android音频组件信息
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A5%3A4.png?version=1&modificationDate=1408072159000&api=v2)
8、 backup
android backup服务信息
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A5%3A10.png?version=1&modificationDate=1408072159000&api=v2)
9、 battery
android电池设备信息
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A5%3A16.png?version=1&modificationDate=1408072159000&api=v2)
10、 batteryinfo
android耗电相关的进程运行时间等信息(Android L被batterystats取代)。
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A5%3A22.png?version=1&modificationDate=1408072159000&api=v2)
refer
to : http://blog.csdn.net/oujunli/article/details/37563067
看了一下比较关注的Google I/O视频,其中在Introduction to Project Volta里面有个battery historian的工具,看着比较有意思,用Nexus
5刷了个Android L preview的版本试试。
使用battery historian步骤:
1、adb shell dumpsys batterystats --enable full-wake-history
2、adb shell dumpsys batterystats --reset
3、adb bugreport |tee bugreport.txt
4、python historian.py -a bugreport.txt | tee battery.html
用Chrome打开battery.html,可以看到:
11、 connectivity
android网络连接状态及进程请求网络信息。
12、 content
查看android content provider相关的信息
13、 device_policy
android设备政策。
14、 diskstats
手机卡剩余信息
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A5%3A28.png?version=1&modificationDate=1408072159000&api=v2)
15、 dropbox
系统崩溃的信息
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A5%3A33.png?version=1&modificationDate=1408072159000&api=v2)
16、 input_method
Android输入法信息
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A5%3A38.png?version=1&modificationDate=1408072159000&api=v2)
17、 iphonesubinfo
手机制式及设备id
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A5%3A43.png?version=1&modificationDate=1408072159000&api=v2)
18、 location
gps等位置信息
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A5%3A48.png?version=1&modificationDate=1408072159000&api=v2)
19、 media.audio_flinger、media.audio_policy、media.camera、media.player
android音视频设备有关的状态信息
20、 meminfo
android进程实际物理内存占用情况。
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A5%3A55.png?version=1&modificationDate=1408072159000&api=v2)
http://zarroboogs.org/index.php/archives/218
21、 mount
加载的存储设备信息
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A6%3A1.png?version=1&modificationDate=1408072159000&api=v2)
22、 network_management
android网络流量管理信息
23、 notification
android通知栏广告信息。
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A6%3A6.png?version=1&modificationDate=1408072160000&api=v2)
24、 package
参数:
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A6%3A11.png?version=1&modificationDate=1408072159000&api=v2)
我们主要通过l、perm、perf、p等参数dump出package信息,还能够直接跟包名来dump出该包的具体信息。
25、 power
电源管理器的一些状态信息。
26、 sensorservice
android传感器的一些状态信息。
27、 statusbar
显示状态栏相关的一些信息。
28、 telephony.registry
电话服务相关的信息。
29、 uimode
ui mode service的状态信息。
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A6%3A18.png?version=1&modificationDate=1408072160000&api=v2)
30、 usagestats
各个app使用情况统计
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A6%3A23.png?version=1&modificationDate=1408072160000&api=v2)
31、 wallpaper
壁纸信息
32、 wifi
wifi连接及状态信息
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A6%3A30.png?version=1&modificationDate=1408072160000&api=v2)
33、 window
参数:
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A3%3A30.png?version=1&modificationDate=1408072159000&api=v2)
实现方式:
dumpsys的代码在mydroid/frameworks/base/cmds/dumpsys/dumpsys.cpp,所有的dump信息都是由重载了Binder中的dump函数的类来完成:
@Override
protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
...
}
代码很简单,发现所有dump的信息都是由defaultServiceManager)提供的由系统注册的所有service来提供信息。
以meminfo为例:
它是在
mydroid/frameworks/base/services/java/com/android/server/am/ActivityManagerService.java中的setSystemProcess函数处被注册的
SrviceManager.addService("activity", m);
ServiceManager.addService("meminfo", new MemBinder(m));
...
MemBinder->ProcessRecord->各个正在运行状态的ApplicationThread的状态(mydroid/frameworks/base/core/java/android/app/ActivityThread.java),从中得到需要的meminfo信息。
这其中其实牵涉到负责的Android的是如何管理Linux的进程,同时又是如何把Linux的进程管理起来提供各种信息给Java层使用。
上述信息来自网络:
https://www.google.com.hk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cad=rja&uact=8&ved=0CCEQFjAB&url=http%3A%2F%2Ffreshui-player.googlecode.com%2Fsvn%2Fbranches%2Fdocs%2Fandroid_tools%2FAndroid%25E7%25B3%25BB%25E7%25BB%259F%25E5%2588%2586%25E6%259E%2590%25E5%25B7%25A5%25E5%2585%25B7-dumpsys.doc&ei=XHftU5WaOIPn8AWsn4HADw&usg=AFQjCNHK3eJPxr5jB07Di96dlBqStTrtdg&bvm=bv.73231344,d.dGc
具体命令行参数:
1、 SurfaceFlinger
SurfaceFlinger是Android进行图形界面绘制的服务,根据文档显示,有硬件绘制和GPU绘制两种实现方式。
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A3%3A39.png?version=1&modificationDate=1408072159000&api=v2)
(来源:http://blog.csdn.net/windskier/article/details/7030732 )
通过dumpsys SurfaceFlinger,除了可以看到显示设备的一些参数开关之外,还能能到如下,360手机卫士主界面是硬件方式绘制的。
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A3%3A50.png?version=1&modificationDate=1408072159000&api=v2)
另外,还能看到命令行运行时候,手机系统上所有layer信息,如下所示:
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A3%3A56.png?version=1&modificationDate=1408072159000&api=v2)
关于这部分主要参考:
http://www.linuxgraphics.cn/android/graphics_system.html
http://stackoverflow.com/questions/21642734/how-to-make-sense-of-dumpsys-surfaceflinger
http://blog.csdn.net/windskier/article/details/7030732
2、 Cpuinfo
可以显示每个进程在内核空间和用户空间的cpu占用率
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A4%3A3.png?version=1&modificationDate=1408072159000&api=v2)
3、 Account
设备上所有用户信息
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A4%3A10.png?version=1&modificationDate=1408072159000&api=v2)
4、 Activity
-h:显示参数列表
A(activities)参数:查看activity组件信息,主要看从” Running activities (most recent first):”部分查看栈中的activity列表。
B(broadcasts)参数:查看所有注册的BraodcastReceiver及其filter、action等信息。
I(Intents)参数:等待的intent状态
P(processes)参数:ProcessRecord记录的进程id、进程名字和各种用于调节优先级的状态。
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A4%3A27.png?version=1&modificationDate=1408072159000&api=v2)
O(oom)参数:主要看oom_adj值,从中可以看到到内存释放的情况。
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A4%3A31.png?version=1&modificationDate=1408072159000&api=v2)
Prov(providers)参数:显示content providers信息
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A4%3A37.png?version=1&modificationDate=1408072159000&api=v2)
s(Services)参数:当前active状态的service及bindings信息。
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A4%3A42.png?version=1&modificationDate=1408072159000&api=v2)
services[]参数:跟上具体的服务名,dump出服务客户端的一些状态信息。
5、 Alarm
查看放到定时队列中的事件。
例如下面我们可以看到其intent ID。
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A4%3A48.png?version=1&modificationDate=1408072159000&api=v2)
而通过” dumpsys activity i”我们可以看到该intent所对应的详细信息。
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A4%3A54.png?version=1&modificationDate=1408072159000&api=v2)
6、 appwidget
android窗口小部件的信息。
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A4%3A59.png?version=1&modificationDate=1408072159000&api=v2)
7、 audio
android音频组件信息
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A5%3A4.png?version=1&modificationDate=1408072159000&api=v2)
8、 backup
android backup服务信息
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A5%3A10.png?version=1&modificationDate=1408072159000&api=v2)
9、 battery
android电池设备信息
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A5%3A16.png?version=1&modificationDate=1408072159000&api=v2)
10、 batteryinfo
android耗电相关的进程运行时间等信息(Android L被batterystats取代)。
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A5%3A22.png?version=1&modificationDate=1408072159000&api=v2)
refer
to : http://blog.csdn.net/oujunli/article/details/37563067
看了一下比较关注的Google I/O视频,其中在Introduction to Project Volta里面有个battery historian的工具,看着比较有意思,用Nexus
5刷了个Android L preview的版本试试。
使用battery historian步骤:
1、adb shell dumpsys batterystats --enable full-wake-history
2、adb shell dumpsys batterystats --reset
3、adb bugreport |tee bugreport.txt
4、python historian.py -a bugreport.txt | tee battery.html
用Chrome打开battery.html,可以看到:
11、 connectivity
android网络连接状态及进程请求网络信息。
12、 content
查看android content provider相关的信息
13、 device_policy
android设备政策。
14、 diskstats
手机卡剩余信息
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A5%3A28.png?version=1&modificationDate=1408072159000&api=v2)
15、 dropbox
系统崩溃的信息
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A5%3A33.png?version=1&modificationDate=1408072159000&api=v2)
16、 input_method
Android输入法信息
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A5%3A38.png?version=1&modificationDate=1408072159000&api=v2)
17、 iphonesubinfo
手机制式及设备id
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A5%3A43.png?version=1&modificationDate=1408072159000&api=v2)
18、 location
gps等位置信息
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A5%3A48.png?version=1&modificationDate=1408072159000&api=v2)
19、 media.audio_flinger、media.audio_policy、media.camera、media.player
android音视频设备有关的状态信息
20、 meminfo
android进程实际物理内存占用情况。
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A5%3A55.png?version=1&modificationDate=1408072159000&api=v2)
http://zarroboogs.org/index.php/archives/218
21、 mount
加载的存储设备信息
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A6%3A1.png?version=1&modificationDate=1408072159000&api=v2)
22、 network_management
android网络流量管理信息
23、 notification
android通知栏广告信息。
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A6%3A6.png?version=1&modificationDate=1408072160000&api=v2)
24、 package
参数:
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A6%3A11.png?version=1&modificationDate=1408072159000&api=v2)
我们主要通过l、perm、perf、p等参数dump出package信息,还能够直接跟包名来dump出该包的具体信息。
25、 power
电源管理器的一些状态信息。
26、 sensorservice
android传感器的一些状态信息。
27、 statusbar
显示状态栏相关的一些信息。
28、 telephony.registry
电话服务相关的信息。
29、 uimode
ui mode service的状态信息。
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A6%3A18.png?version=1&modificationDate=1408072160000&api=v2)
30、 usagestats
各个app使用情况统计
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A6%3A23.png?version=1&modificationDate=1408072160000&api=v2)
31、 wallpaper
壁纸信息
32、 wifi
wifi连接及状态信息
![](http://10.16.57.171:8002/download/attachments/2555907/image2014-8-15%2011%3A6%3A30.png?version=1&modificationDate=1408072160000&api=v2)
33、 window
参数:
相关文章推荐
- C++中静态成员函数访问非静态成员变量
- 微积分下放高中的现实意义
- github上传与下载
- Windows Server 2012 R2搭建IIS服务器
- Exchange 日常管理六之:创建邮箱数据库
- 模拟MBR扇区故障
- windows 2003 AD升级至windows 2012 AD
- Exchange日常管理之五设置OWA的分段功能
- Exchange日常管理之四简化OWA登陆
- Exchange日常管理之四简化OWA登陆
- Exchange 日常管理之三设置邮件转发
- Exchange 日常管理之三设置邮件转发
- Exchange日常管理之二隐藏用户在通讯录中的显示
- Active Directory之强制占有操作主机
- Active Directory操作主机之转移操作主机
- Active Directory之操作主机(FSMO)
- Exchange 日常管理之一:用户邮箱完全访问权限
- Windows Server 2012如何实现双网卡绑定
- 安装Exchange 2010
- Active Directory备份与还原