Android系统getprop、dumpsys等相关命令的理解
2018-01-07 01:38
826 查看
通过上一篇理解及使用adb知道通过adb 工具来调试android 程序。
这里讲一下,用android提供的一些命令来调试android程序。
getprop
此命令的原理很简单,就是从系统的各种配置文件中读取信息。那么这些文件在你用adb shell进入设备内部后很容易找到,它们是:
init.rc
default.prop
/system/build.prop
在android studio 中就有终端这个窗口直接执行命令就行。标注的三个文件可以通过adb pull命令拷贝到本地直接查看。
在命令行执行getprop命令,则会输出很多系统信息:
?
比如[ro.build.version.release]: [5.0.2] 系统版本,[ro.build.version.sdk]: [21] sdk版本[qemu.sf.lcd_density]: [420]设备屏幕密度
直接执行getprop输出信息太多,可以选择输出某个你需要的,例如:
?
dumpsys
用于查看系统服务信息
我们可以直接执行dumpsys命令,会将所有服务信息都列出来。但是这样得到的结果太多,不容易拿到有效的信息,可以在命令后面加上相应的参数来得到具体的服务信息。
使用下面的命令来查看可以dump出的所有service:
?
从中可以看到我们常见的一些服务。 activity表示的是ActivityManagerService,用于管理应用程序的四大组件,window表示的是WindowManagerService,用于管理系统中的窗口.
使用 dumpsys [service]这样格式,可以查看该服务的一些信息:
?
上面打印了关于ActivityManagerService的信息,比较多。
简单说明一下
我们知道android应用程序的四大组件中有三个是由intent来驱动的。所以在ActivityManagerService的信息中,专门有一部分来记录当前待处理的Intent, 称为pending intent 。每个待处理的intent在ActivityManagerService内部使用一个PendingIntentRecord对象表示, 并且会显示出所在应用的包名, 并且会指定该intent是用来发送广播, 启动activity或是启动service。直接在shell中键入dumpsys activity
intents, 会直接得到这些信息
?
下面行开始的信息是系统中的broadcast receiver的状态信息,分注册的,前台的,后台的。如果单独想看这部分信息,直接执行
dumpsys activity broadcast
?
下面行开始是provider相关的信息
?
下面行开始是服务(Service)相关的信息
?
下面行开始是Activity相关的信息
?
这部分信息平时应该有用到,用来看activity属于哪个任务栈。
Android中的task作用和Activity启动模式以及各种启动Flag的含义在讲这个的时候就是查看这个信息的。
关于其他的服务信息就没去一一查看了。这里只是演示一下该工具的使用。
logcat
用于得到log信息,查看系统日志缓冲区的内容
一般用法
logcat [
选项:
-b 指定要查看的日志缓冲区,可以是system,events,radio,main. 默认值是system和main。
-c清楚屏幕上的日志.
-d输出日志到屏幕上.
-f 指定输出日志信息的 ,默认是stdout .
-g输出指定的日志缓冲区,输出后退出.
-n 设置日志的最大数目 .,默认值是4,需要和 -r 选项一起使用。
-r 每 时输出日志,默认值为16,需要和-f 选项一起使用.
-s设置默认的过滤级别为silent.
-v 设置日志输入格式,默认的是brief 格式,要知道更多的支持的格式,参看Controlling Log Output
参数
参数用于对某类的tag的日志输出进行过滤。每一个输出的Android日志信息都有一个tag和它的优先级.
例如现在:
?
点击floatingaAtionButton ,打印的日志
?
这些工具对我们调试android 程序很有帮助,所以有必要了解怎么使用。
转载地址:https://www.2cto.com/kf/201610/554739.html
这里讲一下,用android提供的一些命令来调试android程序。
getprop
此命令的原理很简单,就是从系统的各种配置文件中读取信息。那么这些文件在你用adb shell进入设备内部后很容易找到,它们是:
init.rc
default.prop
/system/build.prop
在android studio 中就有终端这个窗口直接执行命令就行。标注的三个文件可以通过adb pull命令拷贝到本地直接查看。
在命令行执行getprop命令,则会输出很多系统信息:
?
直接执行getprop输出信息太多,可以选择输出某个你需要的,例如:
?
用于查看系统服务信息
我们可以直接执行dumpsys命令,会将所有服务信息都列出来。但是这样得到的结果太多,不容易拿到有效的信息,可以在命令后面加上相应的参数来得到具体的服务信息。
使用下面的命令来查看可以dump出的所有service:
?
使用 dumpsys [service]这样格式,可以查看该服务的一些信息:
?
简单说明一下
我们知道android应用程序的四大组件中有三个是由intent来驱动的。所以在ActivityManagerService的信息中,专门有一部分来记录当前待处理的Intent, 称为pending intent 。每个待处理的intent在ActivityManagerService内部使用一个PendingIntentRecord对象表示, 并且会显示出所在应用的包名, 并且会指定该intent是用来发送广播, 启动activity或是启动service。直接在shell中键入dumpsys activity
intents, 会直接得到这些信息
?
dumpsys activity broadcast
?
?
?
?
Android中的task作用和Activity启动模式以及各种启动Flag的含义在讲这个的时候就是查看这个信息的。
关于其他的服务信息就没去一一查看了。这里只是演示一下该工具的使用。
logcat
用于得到log信息,查看系统日志缓冲区的内容
一般用法
logcat [
选项:
-b 指定要查看的日志缓冲区,可以是system,events,radio,main. 默认值是system和main。
-c清楚屏幕上的日志.
-d输出日志到屏幕上.
-f 指定输出日志信息的 ,默认是stdout .
-g输出指定的日志缓冲区,输出后退出.
-n 设置日志的最大数目 .,默认值是4,需要和 -r 选项一起使用。
-r 每 时输出日志,默认值为16,需要和-f 选项一起使用.
-s设置默认的过滤级别为silent.
-v 设置日志输入格式,默认的是brief 格式,要知道更多的支持的格式,参看Controlling Log Output
参数
参数用于对某类的tag的日志输出进行过滤。每一个输出的Android日志信息都有一个tag和它的优先级.
例如现在:
?
?
转载地址:https://www.2cto.com/kf/201610/554739.html
相关文章推荐
- Android系统getprop、dumpsys等相关命令的理解
- Android系统中setprop,getprop,watchprops命令的使用
- Android系统中setprop,getprop,watchprops命令的使用
- Android系统中setprop,getprop,watchprops命令的使用
- Android 中使用 getprop、watchprops 和 setprop 命令查看和更改系统属性值
- Android系统中 setprop,getprop,watchprops命令的使用
- Android开发之深入理解Android 7.0系统权限更改相关文档
- Android系统中setprop,getprop,watchprops命令的使用
- Android系统中 setprop,getprop,watchprops命令的使用
- Android开发之深入理解Android 7.0系统权限更改相关文档
- Android系统的超级终端命令大全(六)--系统安全相关命令
- Android开发之深入理解Android 7.0系统权限更改相关文档
- Android系统中 setprop,getprop,watchprops命令的使用
- Android系统中 setprop,getprop,watchprops命令的使用
- init.rc 引用到的setprop意义(Android系统中setprop,getprop,watchprops命令的使用 )
- Android开发之深入理解Android 7.0系统权限更改相关文档
- Android系统中 setprop,getprop,watchprops命令的使用
- 使用 getprop 命令查看 android 系统允许进程分配的内存大小
- Android开发之深入理解Android 7.0系统权限更改相关文档
- Android系统中setprop,getprop,watchprops命令的使用(转载)