Android调试桥(ADB,Android Debug Bridge)是Android开发工具包(SDK)中的一个多功能命令行工具,广泛用于与Android设备进行交互。无论是调试应用程序、管理设备状态,还是进行性能分析,ADB都提供了强大的功能。本文详细介绍常用的ADB命令,并探讨其在不同开发场景中的应用,包括测试、Python开发、Android开发等。
1. 初始化ADB环境
开始使用ADB之前,需要确保ADB工具已正确安装并配置在系统路径中。可以通过以下命令检查ADB版本:
adb version
2. 连接设备
在执行ADB命令之前,需要确保设备已正确连接到电脑。可以通过以下命令检查设备连接状态:
adb devices
如果设备已正确连接,会显示设备的序列号。
3. 安装APK
使用 adb install 命令安装APK文件,-r 参数表示覆盖安装:
adb install -r "apk路径"
4. 卸载APK
通过 adb uninstall 命令卸载指定包名的应用程序:
adb uninstall "包名"
5. 查询App包名
通过 aapt 命令查询APK文件的包名:
aapt dump badging "apk路径" | findstr package
在自动化测试中,获取包名是一个常见的需求。
6. 启动Activity
使用 adb shell am start 命令启动指定包名和Activity的App:
adb shell am start -n com.example.app/com.example.app.MainActivity
这在进行自动化测试时非常有用,可以直接启动特定的Activity。
7. 查看App的Activity值
通过 aapt 命令查询APK文件的Activity值:
aapt dump badging "apk路径" | findstr activity
8. 重启App
使用 adb shell am start 命令重启指定包名和Activity的App:
adb shell am start -W -n com.huhuo.auto(包名)/com.huohu.auto.activity.Startivity(activity值)
9. 停止App
通过 adb shell am force-stop 命令停止指定包名的应用,但不清除数据:
adb shell am force-stop com.sohu.sohuvido(包名)
10. 清除App数据
使用 adb shell pm clear 命令停止并清除指定包名的应用程序数据:
adb shell pm clear com.sohu.sohuvido(包名)
这在测试场景中非常有用,可以模拟首次启动应用程序的体验。
11. 查看设备信息
使用 adb shell getprop 命令查看设备属性信息:
adb shell getprop
12. 查看进程信息
使用 adb shell ps 命令查看设备上所有运行的进程:
adb shell ps
在性能分析时,可以通过此命令检查应用程序的资源占用情况。
13. 监听进程状态
使用 adb shell top 命令监听指定包名的进程状态:
adb shell "top -n 10 | grep com.huohu.auto(包名)"
14. 实时监听进程变化
使用 adb shell top 命令实时监听指定包名的进程变化:
adb shell "top | grep com.huhuo.asdwq(包名)"
15. 查看PID进程状态
通过 adb shell ps 命令查看指定PID的进程状态:
adb shell ps -x PID
16. 查询进程占用端口
通过 netstat 命令可以查询指定端口的进程占用情况:
netstat -ano | findstr "端口号"
17. 杀掉进程
通过 tasklist 命令杀掉指定PID的进程:
tasklist /f /pid "端口号"
18. 查询任务ID
使用 tasklist 命令查找指定端口的任务ID:
tasklist | findstr "端口号"
19. 实时查看CPU和内存使用
通过 adb shell top 命令实时查看CPU和内存使用情况:
adb shell top
可以配合 grep 命令过滤指定包名的进程信息:
adb shell "top | grep 包名"
20. 查看日志
使用 adb logcat 命令查看设备日志,支持通过标签过滤日志:
adb logcat -s TAGNAME
可以将日志保存到本地文件:
adb logcat > log.txt
21. 发送按键事件
通过 adb shell input keyevent 命令发送按键事件,例如按下Home键:
adb shell input keyevent 3
在自动化测试中,可以通过此命令模拟用户的按键操作。
22. 输入文本
使用 adb shell input text 命令在设备上输入文本:
adb shell input text "HelloWorld"
23. Top用法
通过 adb shell top 命令查看进程信息,支持多个参数:
adb shell top -m num -n num -d num -s col -t -h | grep com.huohu.auto(包名)
-m num:最多显示num个进程。-n num:刷新次数。-d num:刷新间隔时间(默认为5秒)。-s col:按哪列排序。-t:显示线程信息而不是进程。-h:显示帮助文档。
24. 截图
通过 adb shell screencap 命令截图并保存到设备,然后通过 adb pull 命令将截图传输到电脑:
adb shell screencap -p /sdcard/test.png
adb pull /sdcard/test.png C:\Users\Desktop
25. 录屏
使用 adb shell screenrecord 命令录制屏幕并保存到设备:
adb shell screenrecord /sdcard/demo.mp4
adb pull /sdcard/demo.mp4 C:\Users\Desktop
26. 查看已安装App
通过 adb shell pm list packages 命令列出设备上安装的所有应用程序:
adb shell pm list packages
可以指定过滤条件,例如列出系统应用:
adb shell pm list packages -s
27. 推送文件到设备
使用 adb push 命令将文件从电脑推送到设备:
adb push C:\Users\Desktop\file.txt /sdcard/
28. 从设备拉取文件
通过 adb pull 命令将文件从设备拉取到电脑:
adb pull /sdcard/file.txt C:\Users\Desktop\
29. 重启设备
使用 adb reboot 命令重启设备:
adb reboot
可以指定重启模式,例如恢复模式:
adb reboot recovery
应用场景
1、测试
在测试场景中,ADB提供了丰富的功能,例如:
- 安装/卸载应用程序。
- 启动/停止应用程序。
- 获取日志和截图。
- 模拟用户操作。
2. Python开发
通过Python脚本调用ADB命令,可以实现自动化测试、设备管理等功能。例如:
import os
# 安装APK
os.system('adb install -r "apk路径"')
# 获取日志
os.system('adb logcat > log.txt')
3. Android开发
在Android开发中,ADB是调试和测试的重要工具,例如:
- 查看设备信息和日志。
- 进行性能分析。
- 管理设备文件。
总结
ADB命令是Android开发和调试中不可或缺的工具,本文详细介绍了常用的ADB命令,并探讨了其在不同开发场景中的应用。无论是测试、Python开发还是Android开发,ADB都能提供强大的支持。希望本文能为您的开发工作提供帮助!