安卓framework常用调试指令汇总

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

一、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℃


      

开发板推荐:天空星STM32F407VET6开发板

超高性价比 STM32主控 | 超高主频 | 一板兼容百芯 | 比赛神器 | 沉金彩色丝印

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值