adb常用调试指令

查看当前正在运行的 Activity,可以使用以下指令
方法一:
adb shell dumpsys activity top | grep ACTIVITY
方法二:
adb shell dumpsys activity | grep -i “ResumedActivity”
方法三:
linux: adb shell dumpsys window | grep mCurrentFocus
windows: adb shell dumpsys window | findstr mCurrentFocus
adb shell “dumpsys window | grep Focus”
这些指令可以显示当前正在运行的 Activity,以及所在应用程序的包名,非常方便。

adb查看包名
方法一:adb shell pm list packages
方法二:adb shell dumpsys activity activities (前提条件:手机应用上只启动你要用的APP)
方法三:aapt dump badging C:\Users\mac\Desktop\655afd0440bc5c2ca24282520673a808.apk

adb查看包名对应路径,基于包名
adb shell pm path package 查看包的安装路径
adb shell pm disable-user <package_name> 禁用应用程序: (替换 <package_name> 为实际的应用程序包名)
adb shell pm clear <package_name>  清除应用程序缓存: (替换 <package_name> 为实际的应用程序包名)

mtk,sprd抓取log时的前期准备,录屏、时分秒、TP划线与触摸报点,方便问题分析
//录制屏幕
adb shell screenrecord /sdcard/demo.mp4
//时间显示时分秒
adb shell settings put secure clock_seconds 1
//打开TP划线及触摸位置报点
adb shell settings put system show_touches 1
adb shell settings put system pointer_location 1

查看输入法包名及类名,默认输入法类
adb shell service list 先看看有没有相关的service,有的话再用 adb shell dumpsys 服务名称
获取输入法列表:adb shell ime list -s 出来下面的 在这里插入图片描述

ubuntu系统下打包动画
zip -r0 bootanimation.zip part0 part1 desc.txt

adb模拟按键
adb shell input keyevent KEYCODE_BACK
此命令将模拟按下返回键(KEYCODE_BACK),您可以根据需要更改KEYCODE以测试其他按键
KEYCODE_BACK需用frameworks/base/core/java/android/view/KeyEvent.java中对应的值替换

‌安装APK绕过SDK限制‌‌
adb install --bypass-low-target-sdk-block FILENAME.apk
–bypass-low-target-sdk-block:‌此选项允许安装目标SDK版本低于当前系统版本的APK。

adb bugreport:
On the host use: adb bugreport filename.zip
On the device use: 1.adb shell 2.bugreportz
这个文件包含了各种系统日志、堆栈跟踪、内存转储、配置信息等,对于调试和诊断 Android 设备上的问题非常有用。
方便开发者或技术支持人员进行故障排查和分析(user版本发生应用闪退 ANR 报错 用户态异常导致的重启抓信息方法)
user版本发生过应用闪退 ANR 报错 用户态异常导致的重启(表现为重启到开机动画非开机logo) 可以敲这个命令生成bugreport分析
原理是因为这些问题会生成backtrace 墓碑日志 bugreport可以把这些信息抓出来生成一个zip包 并且有权限拿出来 很多时候不需要花费大量人力换成userdebug重新复现一次

蓝牙相关的一些adb操作
1.打开和关闭蓝牙,操作如下
sudo adb root
adb shell svc bluetooth enable
adb shell svc bluetooth disable
2.获取mac地址:
adb shell settings get secure bluetooth_address
3.查看蓝牙状态
sudo adb shell dumpsys bluetooth_manage

通过adb shell setprop sys.powerctl ”命令“,可以进入不同模式,如重启、关机、recovery等。
adb shell setprop sys.powerctl reboot 手机直接会重启
adb shell setprop sys.powerctl shutdown 手机执行关机
adb shell setprop sys.powerctl reboot,bootloader 手机执行重启进入fastboot模式
adb shell setprop sys.powerctl reboot,recovery 手机执行重启进入recovery模式

查看手机keypad对应使用的kl文件
在配置按键的过程中,经常会遇到按键不生效问题,尤其是当底层的键值没有上报的情况下,需要去查找对应的kl文件中的映射关系配置是否正确,但是版本中根据不同的按键硬件方式会有不同的kl文件,从代码中检索使用的对应文件比较麻烦,可以使用以下方法在手机中直接读取出来:
1.连接adb
2.adb shell dumpsys input > dumpsys.txt
3.dumpsys.txt文件信息中搜KeyLayoutFile,如则该手机使用的是文件Generic.kl
KeyLayoutFile: /system/usr/keylayout/Generic.kl
adb shell getevent -lt 中可以打印按键信息,中间有一样包含/dev/input/event7可以去上面过滤的 dumpsys.txt查找对应按键硬件方式对应的kl文件
查看设备事件:getevent 命令将显示设备上发生的输入事件的详细信息,包括时间戳、事件类型、事件代码和事件值等。您可以通过触摸屏、按键或其他输入设备来生成事件,并在终端中查看事件信息。
[ 1714.750931] /dev/input/event1: EV_KEY 00f9 DOWN
[ 1714.750931] /dev/input/event1: EV_SYN SYN_REPORT 00000000
[ 1719.920706] /dev/input/event1: EV_KEY 00f9 UP
[ 1719.920706] /dev/input/event1: EV_SYN SYN_REPORT 00000000
[事件类型]:表示事件的类型。常见的事件类型包括 EV_ABS(绝对坐标事件,如触摸屏事件)、EV_KEY(按键事件)和 EV_SYN(同步事件)等。

待续…

`getevent` 是一个用于在 Linux 系统上监视和显示输入设备事件的命令行工具。它可以用于调试和分析触摸屏、按键等输入设备的事件流。 `getevent` 命令的用法如下: ```bash getevent [选项] ``` 常用的选项包括: - `-t`:在输出中包含时间戳信息。 - `-l`:以长格式显示事件信息。 - `-c <COUNT>`:指定要显示的事件数量。 - `-p`:以可读的形式显示事件参数(十六进制值转换为人类可读的格式)。 默认情况下,`getevent` 命令会监听系统上的所有输入设备事件。当有事件发生时,它会以十六进制格式显示事件的详细信息,包括设备文件路径、事件类型、事件代码和事件值等。 以下是一个示例输出: ``` /dev/input/event0: EV_SYN SYN_REPORT 00000000 /dev/input/event0: EV_KEY BTN_TOUCH DOWN /dev/input/event0: EV_ABS ABS_MT_POSITION_X 000001ae /dev/input/event0: EV_ABS ABS_MT_POSITION_Y 000002f3 /dev/input/event0: EV_SYN SYN_REPORT 00000000 /dev/input/event0: EV_ABS ABS_MT_POSITION_X 000001b2 /dev/input/event0: EV_ABS ABS_MT_POSITION_Y 000002f4 /dev/input/event0: EV_SYN SYN_REPORT 00000000 ... ``` 这个输出表示设备文件为 `/dev/input/event0`,事件类型为 `EV_SYN`、`EV_KEY`、`EV_ABS` 等,事件代码为 `SYN_REPORT`、`BTN_TOUCH`、`ABS_MT_POSITION_X` 等,事件值以十六进制表示。 你可以使用 Ctrl + C 来停止 `getevent` 命令的执行。 需要注意的是,`getevent` 命令需要在 root 权限下运行,或者将当前用户添加到 `input` 组中。 希望以上信息对你有帮助!如有更多问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值