android系统(3)---dumpsys 知识学习
一.概述
在Android 开发过程中,为了查询当前手机运行时状态的变化值,需要通过dumpsys activity命令来完成,该方法最终是调用AMS.dump()方法。
dumpsys命令用法简要介绍过dumpsys命令 的基本用法,以及系统服务列表信息,那么本文重点介绍AMS。 根据dumpsys activity传递不同的参数, 对于AMS.dump便会输出相应的对象信息。 具体可以跟哪些参数.
1.1 命令格式
dumpsys activity [options] [WHAT]
其中options为可选项,以-开头, 主要有以下几类:
options含义
-a包括所有可用Server状态
-c包括Client状态,即App端情况
-p PACKAGE限定输出指定包名
1.2 WHAT参数
列举常见的WHAT参数:
序号WHAT解释对应源码
WHAT 解释 对应的源码
1 a[ctivities] activity状态 dumpActivitiesLocked()
2 b[roadcasts] [PACKAGE_NAME] broadcast状态 dumpBroadcastsLocked()
3 s[ervices] [COMP_SPEC …] service状态 newServiceDumperLocked().dumpLocked
4 prov[iders] [COMP_SPEC …] content provider状态 dumpProwevidersLocked()
5 p[rocesses] [PACKAGE_NAME] 进程状态 dumpProcessesLocked()
6 o[om] 内存管理 dumpOomLocked()
7 i[ntents] [PACKAGE_NAME] pending intent状态 dumpPendingIntentsLocked()
8 r[ecents] 最近 activitydumpRecentsLocked()
9 perm[issions] URI授权情况 dumpPermissionsLocked()
10 all所有 activities信息 dumpActivity()
11 top 顶部activity信息 dumpActivity()
12 package package相关信息 dump()
其中PACKAGE_NAME是指可跟包名,COMP_SPEC是指可跟具体组件信息,中括号是指缩写字母;
二. dumpsys activity
前面介绍dumpsys activity根据后面跟着的不同参数则输出相应的内容,当不跟任何参数, dumpsys activity等价于依次输出下面8条命令:
1)dumpsys activity intents
2) dumpsys activity broadcasts //广播
3) dumpsys activity providers //provider
4) dumpsys activity permissions
5) dumpsys activity services //服务
6) dumpsys activity recents
7) dumpsys activity activities //activity
8) dumpsys activity processes
依次简要说明这8条命令:
2.1 intents
输出对象:
PendingIntentRecord
2.2 broadcasts
主要输出的对象:
1)ReceiverList, BroadcastFilter,
2)IntentResolver,
3)BroadcastQueue, BroadcastRecord
4)Handler, Looper
2.3 provider
主要输出的对象:
1)ProviderMap
2)ContentProviderRecord, ContentProviderConnection
2.4 permissions
主要输出的对象:
1)UriPermission
2.5 Service
主要输出的对象:
1)ActiveServices,
2)ServiceRecord, ConnectionRecord,ProcessRecord
2.6 recents
主要输出的对象:
TaskRecord
2.7activities
主要输出的对象:
1)ActivityStackSupervisor, ActivityStack,
2)TaskRecord, ActivityRecord
3)ActivityThread, Activity
4)ViewRootImpl
5)Looper, MessageQueue
2.8 processes
主要输出的对象:
1)AMS各种进程对象
2)ProcessRecord, UidRecord
3 dumpsys 使用
adb shell dumpsys,默认打印出当前系统所有service信息,在后面可加上具体的服务名
需要列出当前运行的服务,可运行:
adb shell dumpsys | findstr DUMP
下面简单列下我用到的一些命令...(在编写脚本时需要获取一些状态值供判断用)
获取设备分辨率:
adb shell dumpsys display | findstr DisplayDeviceInfo
DisplayDeviceInfo{"内置屏幕": 1080 x 1920, 55.0 fps, density 480, 464.949 x 468.923 dpi...
获取设备电池信息:
adb shell dumpsys battery
Current Battery Service state:
AC powered: false
USB powered: true
Wireless powered: false
status: 2 #电池状态
health: 2
present: true
level: 34 #电量
scale: 100
voltage: 3848
current now: -427943
temperature: 280 #电池温度
technology: Li-ion
获取cpu信息:
adb shell dumpsys cpuinfo
获取内存信息:
adb shell dumpsys meminfo
要获取具体应用的内存信息,可加上包名
adb shell dumpsys meminfo PACKAGE_NAME
获取Activity信息:
adb shell dumpsys activity
加上-h可以获取帮助信息
获取当前界面的UI信息,可以用:
adb shell dumpsys activity top
要获取当前界面的Activity:
adb shell dumpsys activity top | findstr ACTIVITY
获取package信息:
adb shell dumpsys package
加上-h可以获取帮助信息
获取某个包的信息:
adb shell dumpsys package PACKAGE_NAME
获取通知信息:
adb shell dumpsys notification
NotificationRecord(0x44217920: pkg=com.sohu.newsclient useron=0x7f0201b5 / com.tencent.news:drawable/icon
pri=0 score=0
contentIntent=PendingIntent{4294d748: PendingIntentRecord{44088e90 com.tencent.news startActivity}}
deleteIntent=null
tickerText=null
contentView=android.widget.RemoteViews@441fc810
defaults=0x00000001 flags=0x00000010
sound=null
vibrate=null
led=0x00000000 onMs=0 offMs=0
extras={
android.title=农业部:中国超级稻亩产超1吨
android.subText=null
android.showChronometer=false
android.icon=2130837941
android.text=农业部今日通报称,经专家测产,袁隆平领衔培育的中国“超级稻”亩产过千公斤,创造1026.7公斤新纪录。详情>>
android.progress=0
android.progressMax=0
android.showWhen=true
android.infoText=null
android.progressIndeterminate=false
android.scoreModified=false
}
获取wifi信息:
adb shell dumpsys wifi
可以获取到当前连接的wifi名、搜索到的wifi列表、wifi强度等
获取电源管理信息:
adb shell dumpsys power
可以获取到是否处于锁屏状态:mWakefulness=Asleep或者mScreenOn=false
亮度值:mScreenBrightness=255
屏幕休眠时间:Screen off timeout: 60000 ms
屏幕分辨率:mDisplayWidth=1440,mDisplayHeight=2560
等
获取电话信息:
adb shell dumpsys telephony.registry
可以获取到电话状态,例如
mCallState值为0,表示待机状态、1表示来电未接听状态、2表示电话占线状态
mCallForwarding=false #是否启用呼叫转移
mDataConnectionState=2 #0:无数据连接 1:正在创建数据连接 2:已连接
mDataConnectionPossible=true #是否有数据连接
mDataConnectionApn= #APN名称
android系统(3)---dumpsys 知识学习相关推荐
- Android系统音量调节策略学习总结
二.外设类型 USB音箱底座 蓝牙音箱 3.5mm线控耳机 三.相关术语 track volume: 单个App设置音量时设置的是这个,它只影响本App的音量. stream volume: 设置某一 ...
- Android 系统 wifi基础知识
第3章 Wi-Fi基础知识 本章所涉及的源代码文件名及位置 ·wireless.h external/ kernel-headers/ original/ linux/ wireless.h ·dri ...
- Android自定义控件前导基础知识学习(一)——Canvas
概述: 我们时常会遇到一些需要利用画图来实现的功能.例如一些常见的几何图形--点.直线.弧.圆.椭圆.文字.矩形.多边形.曲线.圆角矩形,总不能遇到 一个几何图形就用图片来代替吧.这样我们的手机肯定会 ...
- Android系统源代码情景分析:基础知识
老罗(罗升阳)发表在的InfoQ上的好文,最新在学习Android,转载一下,方便学习. 老罗的CSDN blog链接:http://blog.csdn.net/Luoshengyang/ 原文链接: ...
- [附源码]Java计算机毕业设计SSM古诗词知识学习系统
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
- Android系统架构开篇
Android系统庞大且错综复杂,Gityuan带领大家初探Android系统整体架构,一窥其全貌. 一.引言 本文作为Android系统架构的开篇,起到提纲挈领的作用,从系统整体架构角度概要讲解An ...
- 嵌入式linux和嵌入式android系统有什么区别和联系?
转自:http://bbs.eeworld.com.cn/thread-430437-1-1.html 这个问题很多人问,尤其是初入嵌入式的菜鸟.其实大家都认为android是java,已经不是lin ...
- android phone驱动_一文带你掌握 Android 系统架构
引言 本文作为Android系统架构的开篇,起到提纲挈领的作用,从系统整体架构角度概要讲解Android系统的核心技术点,带领大家初探Android系统全貌以及内部运作机制.虽然Android系统非常 ...
- android ios 对比 组件_iOS系统和Android系统全面对比
摘 要 iOS和Android占据当今智能移动终端市场的半壁江山,结合<嵌入式系统>学习的软硬件协同开发等理念,从硬件.软件.用户三个角度进行iOS与Android的比较.其中,硬件选择 ...
最新文章
- windows 域环境应用---VNC远程协助工具的使用
- CSDN湘苗培优|高起点步入职场,快人一步!
- 业界 | 复杂出行场景下,滴滴如何将AI融入地图系统
- 尝试使用jBPM Console NG(测试版)
- 有关Cassandra节点之间的通信:Gossip【译】
- 怎样教育孩子,能让孩子有更好的学习?
- 读《JavaScript语言精粹(修订版)》心得
- linux运维实战案例,Linux运维实战练习案例20151220~20151231
- 资源---2020考研---英语网站---资料3(考研英语,英语学习。宣言:自从用了这个英语网站,七大姑八大姨开始担心他家孩子比不过我了~~~~~~~~~FT中文网)
- C++中vector初始化
- 简述autocad在测绘工程中的应用_AutoCAD在工程测绘制图中的应用
- 全国24省50万亿元投资在路上:后疫情时代碰撞新基建,AI难再“一招鲜”
- ttl传输种过期_Ping提示TTL传输中过期导致Web不能访问
- vscode上的git三部曲+git pull操作
- No executable file specified.Use the “file“ or “exec-file“ command.
- 【小家java】java8新特性之---全新的日期、时间API(JSR 310规范),附SpringMVC、Mybatis中使用JSR310的正确姿势
- 美团机器学习实践 密码_机器学习遇到密码学的地方
- 玩转Ubuntu(磁盘管理工具GParted)
- zeppelin 连接 spark报错
- VB.NET入门(一)
热门文章
- linux默认安装数据库密码是多少,Linux服务器上安装MySql数据库(默认安装,密码为空),首次使用需要修改密码(示例代码)...
- Spring-第2天
- Redis的SETNX
- Spark Scala当中reduceByKey的用法
- 在mac上安装python版的hanlp/JPype1
- Resource Hacker
- qrcode-php生成二维码
- Charting for WinForms控件发布v3.5版本
- Infragistics.NetAdvantage.WinForm.2012.v2 ComboBoxEditor的小Bug
- V1.8 - 2006.09.09