android性能测试工具dumpsys命令的用法
来源:互联网 发布:自学python 好的书籍 编辑:程序博客网 时间:2024/05/29 11:29
- android性能测试工具之dumpsys
-
补记: MAT(memory analyzer tool )是google 推荐的进行内存使用量分析的工具.功能全面而强大!!!
首先看一下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的管理和它的活动周期的管理问题。值得深入理解。
摘自Melody_lu123
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这是一个很好用的工具,在adbshell下可以使用,主要用来获取一些系统service的信息,也可以对这些服务做一些简单的控制。
首先是获得哪些service信息可以dump
- $ adb shell dumpsys | grepDUMP
- DUMP OF SERVICE AtCmdFwd:
DUMP OF SERVICE SurfaceFlinger:
DUMP OF SERVICE accessibility:
DUMP OF SERVICE account:
DUMP OF SERVICE activity:
DUMP OF SERVICE alarm:
DUMP OF SERVICE appwidget:
DUMP OF SERVICE audio:
DUMP OF SERVICE backup:
DUMP OF SERVICE battery:
DUMP OF SERVICE batteryinfo:
DUMP OF SERVICE bluetooth:
DUMP OF SERVICE bluetooth_a2dp:
DUMP OF SERVICE clipboard:
....
然后就是具体获取某个服务的信息,比如电池使用信息:
- $ adb shell dumpsysbatteryinfo
比如抓某个package的进程的memory使用情况:
- $ adb shell dumpsys meminfoYourPkg
再比如测试wifi功能,写个script脚本:
- $ adb shell svc wifienable
# disable对应禁用wifi - $ adb shell sleep 4
- $ adb shell dumpsys wifi >wifiEnable.txt
如果dumpsys不能用,检查你的manifest.xml是不是加了这个permission:
- android.permission.DUMP
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)
- android性能测试工具dumpsys命令的用法
- android性能测试工具之dumpsys
- android性能测试工具之dumpsys
- android性能测试工具之dumpsys
- android性能测试工具之dumpsys
- android性能测试工具之dumpsys
- android性能测试调试工具之dumpsys
- android性能测试工具之dumpsys
- android性能测试工具之dumpsys
- android性能测试工具之dumpsys
- Android 性能分析工具dumpsys的使用
- Android 性能分析工具dumpsys的使用
- Android 性能分析工具dumpsys的使用
- Android 性能分析工具dumpsys的使用
- dumpsys命令的用法
- dumpsys命令的用法
- dumpsys命令的用法
- Android 性能优化 五 性能分析工具dumpsys的使用
- Java并发Lock接口
- ajax技术详解基础部分(一)
- Windows控制台cmd常用命令摘录
- SQL连表查询
- POJ 2104:K-th Number (划分树)
- android性能测试工具dumpsys命令的用法
- 基于unique与primary约束的区别分析
- iTween基础之Value(数值过度)
- [绍棠_Swift] Swift3.0中使用CocoaPods导入的第三方库
- 不知道该干嘛。。。。。。。。。。感觉特别压抑
- Linux学习之路(4)
- CSS3 display值含义
- C#邮件发送工具类
- iTween基础之Look(使对象面朝指定位置)