Android ADB调试

54 阅读2分钟

##常规部分

搜索设备
adb devices

adb无线连接
adb connect [ip地址:5555]

进入交互窗口
adb shell
退出交互窗口
exit

安装应用
adb install patch_to_apk
-r 更新软件 adb install -r patch_to_apk
-s 安装到sdcard adb install -r patch_to_apk

卸载应用
adb uninstall [包名]
-k 卸载软件但保留配置和缓存文件 adb install -r patch_to_apk

将文件复制推到设备/从设备复制文件下来
adb push local remote
adb pull remote local

重启设备
adb reboot

重新挂载分区
adb remount

  • 重新挂载system分区,实现对system分区重新挂载,重新挂载的时候将修改分区的属性,常见的修改参数为分区的读写。
  • 使用该命令主要是因为android系统的system分区在启动之后是只读分区,但在开发过程中需要对system分区进行修改,则需重新挂载成读写模式。
  • 相当于adb shell mount -o rw,remount,rw /system

打印linux内核log信息
adb shell dmesg > D:/kernel.log
使用技巧 dmesg -C;dmesg -w > /data/kernel.txt &

显示全部prink函数打印的信息
adb shell 后执行 cat /proc/kmsg 第一次执行/proc/kmsg 打印到当前时间的所有内核信息,再次执行cat /proc/kmsg,不会再打印已经打印的信息,只打印上一次执行之后打印出来的新的信息。

获取设备ID和序列号
adb get-product
adb get-serialno

监听属性变化
adb shell watchprops

获取设备所有apk包名
adb shell pm list package -f | grep ""

通过点击应用获取包名
输入 adb shell am monitor 后,在点击需要查看包名的应用,窗口会输出对应的包名

image.png

如何获取PC端的apk的包名 aapt dump badging [apk路径] (此方法是查看PC上的apk的包名,aapt这个工具在SDK-build-tools目录下,复制粘贴platfrom-tools路径下)

通过包名查看对应apk所在的路径
adb shell pm path [包名]

通过包名获取活动名
打开应用 am start com.android.gallery3d
输入dumpsys activity | grep mFocus

模糊查找包名 进入 adb shell 输入 dumpsys activity | grep 包名

根据包名kill掉应用 进入 adb shell 输入 am force-stop 包名

image.png

截取屏幕截图
screencap命令是一个用于对设备显示屏的截图shell实用程序。
adb shell screencap /sdcard/screen.png

录制屏幕
adb shell screenrecord /sdcard/demo.mp4 按 Ctrl + C 键(在 Mac 上,按 Command + C 键)停止屏幕录制;否则,到三分钟或 --time-limit 设置的时间限制时,录制将自动停止。

image.png

am部分

查看activity的Stack情况(查看ActivityManagerService属性)
adb shell am stack list

image.png 当前显示最前端的Activity stack一般是第一个输出的Stack id=4

pm部分

dumpsys部分

dumpsys activity用法汇总-CSDN博客

获取当前具有焦点的活动(其实就是当前可操控的窗口)
dumpsys activity | grep mFocu
adb shell dumpsys window | findstr mCurrentFocus

交互窗口调试