查看当前正在运行的 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(同步事件)等。
待续…