`

android性能测试工具之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

    不需要打trace了,实时监控关心的关键信息的值...Android的服务基本都有dump信息,debug的利器,效率极高(相比trace和断点调试) 开发、维护人员需要经常使用并熟悉相关的表示 适时扩展dump的输出及格式,方便适时调试。

    Android中dumpsys命令用法简单介绍

    在Android手机上, 通过使用adb shell命令可以进入android系统的shell, 该shell除支持一些常用的标准命令之外,还支持一些和android系统相关的其他命令, 这些命令可以打印出系统当前的状态信息。 dumpsys就是这样...

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

    android帧率可以通过adb shell dumpsys gfxinfo packages来查看,但是需要分析log,这种特别麻烦,分享一个免root获取帧率工具。注意:.jar文件在PC上运行。

    Tencent_apt:【腾讯开源】Android性能测试工具APT

    另外还支持自动获取内存快照、PMAP文件分析等,方便开发人员自测或者测试人员完成性能测试,快速发现产品问题。功能摘要1.支持多进程的CPU测试,并提供top和dumpsys cpuinfo两种方式.2.支持多进程的内存测试,并支持...

    华为手机P30的Input 的Dumpsys信息详解.txt

    本资源以华为P30为例,详解地分析dumpsys input 的信息:1 帮助用户了解dumpsys 命令; 2 分析华为P30 的输入设备以及配置文件; 3. 针对input 的参数详解;

    monkey_android自动化工具

    android monkey python3 统计性能信息cpu,men,fps,battery,flow 支持wifi,gprs统计 统计crash信息 fps统计:需要打开开发者里面的GPU呈现模式分析-在adb shell dumpsys gfxinfo中

    Android系统添加自己写的工具

    在android系统的源码有很多工具的源码。存放路径如下 android/system 底层文件系统库、应用及组件,linux自带的 android/external android 使用的一些开源的模组 android/frameworks/base/cmds 一些android重要...

    Android测试常用命令.chm格式文档

    Android测试中常用的命令,以及常用命令的常用选项解释和实例。adb、logcat、monkey、getprop、setprop、dumpsys、am、pm、aapt...

    android启动相机三种方式

    基于android 2.3.3 三种调用相机的方式 分别为使用android自带的照相功能 指定存储目录 使用SurfaceHolder预览相机的图片

    android群雄传

    第2章 Android开发工具新接触 13 2.1 Android开发IDE介绍 14 2.1.1 Android Studio初体验 14 2.1.2 Android Studio配置 15 2.2 Android Studio高级使用技巧 19 2.2.1 更新SDK 20 2.2.2 Android Studio常用界面...

    安卓性能监控V1.1.8.exe

    监控Android的CPU、内存、电量、流量、FPS与CPU温度等性能指标 具体步骤如下: 1、勾选对应的指标:cpu(%)、流量(k)、fps(ms)、电量(%)、内存(k)、温度(℃)、占用总内存(k)、占用总cpu(%)、导出...

    android audio 音频调试技巧

    android audio 音频调试技巧,pcm 声卡使用情况查看。dumpsys *audio*等

    Android脚本中写服务应用中启动服务

    Android脚本init.rc中写service,应用中启动该service

    cepheus_input.txt(dumpsys input信息)

    dumpsys input信息 cepheus_input.txt(小米9机器)

    android9.0ble补丁蓝牙语音遥控器支持补丁.rar

    ble audio补丁原理是利用hidraw节点捕捉协议栈发送的语音数据,目前Android Blueroid将ble语音数据和按键信息通过hid发送出去,通过建立hidraw节点,可以从中捕捉到语音数据。目前通过ble hal实现从hidraw中读取遥控...

    dumpsys命令1

    dumpsys命令这是安卓提供的调试命令.和名字的翻译一样,倾倒系统信息.主要用来查询系统服务的运行状态.列出所有的系统服务:adb shell dumpsys

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

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

    Android代码-XiaomiPJ

    categories: android tags: 小米手机悬浮窗权限 辅助功能 之 小米手机悬浮窗权限 最近做项目遇到小米手机比较人(zhuang)性(bi)化的悬浮窗权限,当在小米手机上安装完应用后默认是关闭这个权限的,需要用户手动到应用...

Global site tag (gtag.js) - Google Analytics