`
1025250620
  • 浏览: 229884 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

dumpsys工具

 
阅读更多

首先看一下dumpsys有哪些功能:
dumpsys 用来给出手机中所有应用程序的信息,并且也会给出现在手机的状态。
dumpsys [Option]
               meminfo 显示内存信息
               cpuinfo 显示CPU信息
               account 显示accounts信息
               activity 显示所有的activities的信息
               window 显示键盘,窗口和它们的关系
               wifi 显示wifi信息
 
从我的G14中可以看到它从以下service获得所有的信息
Currently running services:
  SurfaceFlinger
  accessibility
  account
  activity
  alarm
  appwidget
  assetredirection
  audio
  backup
  battery
  batteryinfo
  bluetooth
  bluetooth_a2dp
  bluetooth_hid
  bluetooth_network
  clipboard
  connectivity
  content
  cpuinfo
  device_policy
  devicestoragemonitor
  diskstats
  dropbox
  entropy
  hardware
  input_method
  iphonesubinfo
  isms
  location
  media.audio_flinger
  media.audio_policy
  media.camera
  media.player
  meminfo
  mount
  netstat
  network_management
  notification
  package

接下来,来看看Android系统是如何实现dumpsys的。
    dumpsys的代码在mydroid/frameworks/base/cmds/dumpsys/dumpsys.cpp
    所有的dump信息都是由重载了Binder中的dump函数的类来完成:
        @Override
        protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
            ...
        }
    代码很简单,发现搜有dump的信息都是由defaultServiceManager(关于Android的ServiceManager的结构分析参见我之后的一篇文章)提供的由系统注册的所有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层使用。
          总之,关键还是package的管理和它的活动周期的管理问题。值得深入理解。

分享到:
评论

相关推荐

    Android 分析工具-dumpsys

    `Android dumpsys` 是一个强大的命令行工具,用于获取Android系统的内部信息,它允许开发者无需进行繁琐的跟踪或断点调试就能实时监控关键服务的状态。这个工具是Android开发者和维护人员进行诊断和调试的重要手段,...

    dumpsys命令1

    `dumpsys`命令是Android操作系统提供的一种强大的调试工具,它允许开发者和系统管理员获取系统服务的详细信息。这个命令的名字来源于“dump system”,正如其名,它的主要功能就是输出系统服务的状态信息。通过`adb ...

    easy-dumpsys:输出以下adb命令的脚本:`adb shell dumpsys activity `以更小,更容易和用户友好的方式..

    标题中的"easy-dumpsys"是一个工具,它简化了Android开发者使用`adb shell dumpsys activity`命令的过程。在Android开发中,`dumpsys`是一个强大的命令行工具,它允许开发者获取系统服务的详细状态信息。`activity`...

    android audio 音频调试技巧

    本文将详细介绍如何利用不同的工具和技术来诊断和解决音频问题,包括查看声卡信息、PCM设备状态以及利用`dumpsys`命令进行深入分析。 #### 1. 常用命令 ##### 1.1 查看当前声卡信息 通过`cat /proc/asound/cards`...

    Android之常用命令和工具

    ### Android之常用命令和工具详解 #### 一、获取 APK 的包名方法 在 Android 开发过程中,有时候我们需要快速地获取某个 APK 文件的包名,这有助于进行更深入的应用调试和分析工作。以下将详细介绍几种获取 APK 包...

    (Mac/Linux版)Android实时显示帧率(GameBench)

    在Mac和Linux操作系统中,想要实时监控Android设备的帧率,通常需要通过ADB(Android Debug Bridge)命令行工具进行复杂的操作,例如使用`adb shell dumpsys gfxinfo packages`命令来获取信息,然后手动解析日志,这...

    Android自动化压力测试图解教程——Monkey工具

    Monkey工具就是Android提供的一款用于进行自动化压力测试的工具,它可以帮助开发者模拟用户随机操作,以此来检测应用的稳定性和性能瓶颈。这篇教程将深入探讨如何使用Monkey工具进行压力测试,并通过一个具体的例子...

    android platform tools 工具,android sdk 必备

    9. `dumpsys`、`dumpstate`和`service list`:这些命令提供了获取设备状态信息的方法,例如系统服务的状态、设备配置信息等。开发者可以利用它们诊断问题或获取系统运行时的数据。 10. `pm`(Package Manager):这...

    鸿蒙系统hdc工具的使用

    使用命令`adb shell dumpsys DdmpDeviceMonitorService`可以在鸿蒙系统中使用调试工具,这个命令可以帮助开发者快速使用调试工具。 17. 编译XTS中的acts文件 使用命令`./build.sh product_name=rk3568 system_size...

    安卓系统开发调试工具整理.docx

    "安卓系统开发调试工具整理" Android 系统开发调试工具是安卓开发者不可或缺的助手,这些工具可以帮助开发者快速高效地开发、测试和调试安卓应用程序。下面是安卓系统开发调试工具的整理,涵盖了 adb 常用命令、CPU...

    adb使用工具(安卓系统)

    此外,`adb shell dumpsys`命令可用于获取设备的各种系统服务状态,如电池、网络等。 ### 5. 传输文件 adb提供了在电脑和设备间传输文件的功能。`adb push <local_file> <remote_path>`用于将本地文件复制到设备,...

    安卓工具的基本命令

    adb shell dumpsys window windows | findstr "mCurrentFocus" ``` 此命令将返回当前活动窗口的详细信息,包括Activity名称等。 - **示例**: 假设我们正在测试一款应用,运行上述命令后可以看到当前聚焦的...

    获取android 内存占用工具

    此外,如果你需要更深入地分析内存,可以使用其他ADB命令,例如 `dumpsys meminfo`,它可以显示每个应用的内存使用详情,包括dalvik-cache、堆内存、 ashmem 和native内存等。这对于排查特定应用的内存泄漏问题非常...

    adb工具文件

    - `adb shell dumpsys`:获取系统服务的状态信息。 7. 无线调试: - 配合`adb tcpip`命令,可以在无需USB连接的情况下通过Wi-Fi进行无线调试。 在日常开发中,adb是不可或缺的工具,无论你是要快速部署应用、...

    android分析工具说明书.rar

    开发者可以使用`adb shell`命令执行各种诊断操作,如`dumpsys meminfo`来查看应用的内存使用情况。 5. **TraceView**: TraceView是一个详细的CPU使用情况分析工具,可以帮助你找到代码中的性能瓶颈。通过记录和分析...

    adb 工具,操作手机工具

    App 信息 获取当前界面元素:adb shell dumpsys activity top 获取任务列表:adb shell dumpsys activity activities App 入口 adb logcat |grep -i displayed aapt dump badging mobike.apk | grep launchable-...

    应用签名、包名

    通常,开发者会使用ADB(Android Debug Bridge)命令行工具配合"dumpsys package"命令来查看应用的签名信息。对于普通用户,他们可能需要下载第三方应用,如"Package Disabler Pro"等,这些工具提供了友好的界面来...

    Android系统添加自己写的工具

    Android系统自带的工具有很多,例如dumpsys、dumpstatus、top、pm、am、tinyalsa、settings、logcat、monkey、svc、wm、screencap、screenrecord等,这些工具可以帮助我们更好地了解和管理Android系统。这些工具都是...

Global site tag (gtag.js) - Google Analytics