dumpsys使用详解

Dumpsys结构图:

 

实现方式:

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://blog.csdn.net/windskier/article/details/7030732 )

 

通过dumpsys SurfaceFlinger,除了可以看到显示设备的一些参数开关之外,还能能到如下,360手机卫士主界面是硬件方式绘制的。

 

 

         另外,还能看到命令行运行时候,手机系统上所有layer信息,如下所示:

 

  • 0
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值