一、logcat指令
logcat是Android中的一个命令行工具,可以用于得到程序的log信息。
logcat的使用方法如下所示:
logcat [<options>]…[<filter-spec>]…
[<options>]命令包括如下选项:
-s:设置输出日志的标签,只显示该标签的日志,如 我们想要输出“System.out”标签的信息,就可以使用logcat -s System.out命令;
-f:将日志输出到文件,默认输出到标准输出流中;
-r:按照每千字节输出日志,需要-f参数;
-n:设置日志输出的最大数目,需要-r参数,这跟logcat单指令不带参数的效果类似;
-v:设置日志的输出格式,注意只能设置一项;logcat -v time命令,可以看日志的输出时间;logcat -v threadtime命令,可以看日志的输出时间和线程信息;
-c:清空所有的日志缓存信息;
-d:将缓存的日志输出到屏幕上,并且不会阻塞;
-t:输出最近的几行日志,输出完退出,不阻塞;
-g:查看日志缓冲区信息;-- Android中的日志缓冲区:system缓冲区-与系统相关的日志信息、radio缓冲区-广播电话相关的日志信息、events缓冲区-事件相关的日志信息、main缓冲区-默认的缓冲区;
-b:加载一个日志缓冲区,默认是main;
-B:以二进制形式输出日志;
[<filter-spec>]的格式:<tag>[:priority]
其中表示log的component,tag(或者使用*表示所有),priority从低到高如下所示:
–V:Verbose(明细);
–D:Debug(调试);
–I:Info(信息);
–W:Warn(警告);
–E:Error(错误);
–F:Fatal(严重错误);
–S:Silent(Super all output)(最高的优先级,可能不会记载东西);
例如:logcat *:V
还可以使用管道过滤日志:logcat | grep “需要过滤的字符串”
二、dumpsys指令
dumpsys指令用法:
dumpsys [-t TIMEOUT] [--priority LEVEL] [--clients] [--dump] [--pid] [--thread] [--help | -l | --skip SERVICES | SERVICE [ARGS]]
--help:shows this help
-l:仅列出服务,勿一次性导出全部
-t TIMEOUT_SEC:超时时间(以秒为单位),而非默认的10秒
-T TIMEOUT_MS:超时时间(以毫秒为单位),而非默认的10秒
--clients:dump client的进程ID
--dump:要求服务自行dump(这是默认设置)
--pid:dump pid
--proto:支持以proto格式dump数据的过滤服务。dump将采用proto格式
--priority LEVEL:根据指定的优先级筛选服务 LEVEL 必须是CRITICAL | HIGH | NORMAL其中一种
--skip SERVICES:转储除SERVICES之外的所有服务(逗号分隔列表)
--stability: dump binder stability information
--thread: dump thread usage
SERVICE [ARGS]: 仅dump服务SERVICE,可选择将ARGS传递给它
1.dumpsys activity用于输出当前系统中与Activity相关的各种信息
命令参数及用法:
dumpsys activity [options] [WHAT]
其中options为可选项,以-开头,主要有以下几类:
-a:包括所有可用server状态
-c:包括client状态,即App端情况
-p:package限定输出指定包名
[WHAT]包括以下选项:
[activities]:显示当前系统中所有Activity的信息,包括Activity的状态、任务栈结构等;
[services]:显示当前系统中所有service的信息;
[providers]:显示当前系统中所有ContentProvider的信息,包括状态、数据类型等
[broadcasts][PACKAGE_NAME]:显示当前系统中所有的或者特定PACKAGE_NAME的BroadcastReceiver的信息,包括已注册的广播过滤条件等;例如如果广播没有发送成功,可以通过该指令查看跳过该广播的原因,即skip信息
[intents][PACKAGE_NAME]:显示当前系统中所有的或者特定PACKAGE_NAME的intent的信息,包括intent来源、目标等;
[processes][PACKAGE_NAME]:显示当前系统所有的或者特定PACKAGE_NAME的进程状态
2.dumpsys [system services]查看系统服务的状态信息
dumpsys -l 列举支持查看的所有服务,也可以使用service list查看有哪些系统服务
3.dumpsys window
dumpsys window windows 查看所有的窗口列表
dumpsys window displays 查看窗口显示信息
4.dumpsys media.*
dumpsys media.player:查看系统native播放器以及recorder创建以及使用情况
dumpsys media.audio_policy:当前系统中可用的输入/输出设备,组合的音频通路等信息,音量曲线也可以从这个指令中看到
dumpsys media.audio_flinger:当前系统中音频流信息,以及对应的处理线程的相关信息
dumpsys media.camera:查看当前系统的camera信息
5.网络信息查询
dumpsys connectivity:查看设备当前网络连接状态
dumpsys netpolicy:查看设备网络策略
dumpsys netstats:查看设备网络状态
dumpsys network_management:查看设备网络管理服务信息
6. dumpsys SurfaceFlinger
dumpsys SurfaceFlinger:查看SurfaceFlinger完整状态
dumpsys SurfaceFlinger --list:查看Layer列表
dumpsys SurfaceFlinger --vsync-info:查看Vsync信息
dumpsys SurfaceFlinger --display-id:查看Display信息
dumpsys SurfaceFlinger --frame-stats: 查看渲染统计
7.其他
dumpsys -t 60 permissionmgr(安卓16及以上 ):查看app的权限
dumpsys meminfo:查看系统各个进程(某一个进程)内存使用情况
dumpsys cpuinfo:查看系统各个进程CPU占用情况
dumpsys wifi:查看wifi网络使用情况
dumpsys audio:当前系统中各种音频流的音量信息,以及音频焦点申请记录,外设插拔记录等
三、tinyalsa相关指令
tinycap sdcard/test.pcm -D 3 -d 0 -c 1 -r 16000 -b 16 -p 240 -n 10
-D card 声卡
-d device 设备
-c channels 通道
-r rate 采样率
-b bits pcm 位宽
-p period_size 一次中断的帧数
-n n_periods 周期数
tinypcminfo 用于查看pcm通道的相关信息,如支持的采样率、通道数、位宽、Period size和Period count
如:tinypcminfo -D 3 查看声卡3 的pcm通道信息
cat /proc/asound/cards 查看当前设备具备的声卡
tinymix 获取音频通路相关的各项配置参数
如:tinymix -D 2
tinyplay用于播放测试 tinyplay只能播放wav(pcm)原始格式的音乐,不能进行Mp3等格式的解码
例如:tinyplay sdcard/test.pcm -D 1 -d 0 -c 1 -r 48000 -b 16
四、settings命令
settings用法:
settings get [--user <USER_ID> | current] NAMESPACE KEY --- 检索KEY的当前值
settings put [--user <USER_ID> | current] NAMESPACE KEY VALUE [TAG] [default] --- 将KEY的内容更改为VALUE [TAG]与设置相关联 [default]设置为默认值,仅对global/secure命名空间不区分大小写
settings delete [--user <USER_ID> | current] NAMESPACE KEY --- 删除KEY的条目
settings reset [--user <USER_ID> | current] NAMESPACE {PACKAGE_NAME | RESET_MODE}
settings list [--user <USER_ID> | current] NAMESPACE
以上NAMESPACE是system、secure、global其中一种,不区分大小写
例如:settings list global (global还可换成system secure)、settings get global bluetooth_on、settings put global bluetooth_on 1
五、I2C相关指令
i2cdetect 查看某个i2c总线上挂的所有i2c设备地址,例如:i2cdetect -a 2
i2cset 修改设备寄存器地址的值,例如:i2cset -f -y 2 0x2b 0xff 0x80 b i2c总线为2 --设备地址为0x2b--寄存器地址为0xff -- 写入的值为0x80
i2cdump 列出某个设备所有寄存器的值,例如:i2cdump -f -y 2 0x2b 将i2c总线为2 设备地址为0x2b的设备所有寄存器的值打出来 ,只能从0x00-0xff
i2cget 查看设备寄存器地址的值,例如:i2cget -f -y 2 0x2b 0xa8 i2c总线为2 --设备地址为0x2b--寄存器地址为0xa8 获取此设备寄存器地址的值
六、am指令
am 命令的基本格式为 am <subcommand> [options]
am start -n <package_name>/<activity_class_name> 启动Activity,打开应用的特定界面;
am startservice -n <package_name>/<service_class_name> 启动Service,用于启动后台服务;
am broadcast -a <broadcast_action> 发送Broadcast,用于发送广播消息,常用于测试广播接收器或模拟系统事件
am force-stop <package_name> 强制停止应用:立即终止指定应用的所有进程
在使用 am start、am startservice 和 am broadcast 等命令时,可以通过以下参数来精确控制Intent的行为:
-
-n:指定组件的完整类名(包名/类名)。 -
-a:指定Intent的动作(Action)。 -
-d:指定Intent的数据URI(Data URI)。 -
-t:指定Intent的数据类型(MIME Type)。 -
-c:指定Intent的类别(Category)。 -
--es <key> <value>:添加一个字符串类型的额外数据(Extra)。 -
--ei <key> <value>:添加一个整型类型的额外数据。 -
--ez <key> <value>:添加一个布尔类型的额外数据。 -
-f <flags>:设置Intent的标志位(Flags)。
七、其他
cat data/misc/apexdata/com.android.wifi/WifiConfigStore.xml -- 查看保存的wifi连接信息
setprop/getprop --设置/获取property属性值
tcpdump -i any -p -s 0 -w /sdcard/capture.pcap -- 将所有网络节点的tcpdump信息保存capture.pcap中
cmd service名称 -h 可以查看某个service支持的指令
pm dump packages 查看应用信息,包括签名等
cat /sys/class/thermal/thermal_zone*/temp来查看CPU温度,获取的数据如果是五位数,则是精确到小数点后3位,例如44300,则其实是44.3℃

1万+

被折叠的 条评论
为什么被折叠?



