ADB,全称Android Debug Bridge,即安卓调试桥,是一个通用的命令行工具,其允许你与模拟器实例或连接的安卓设备进行通信。它可为各种设备操作提供便利,如安装和调试应用,并提供对Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问。
以下是一些ADB的主要操作命令及详解:
- 连接设备:
adb devices
:列出当前连接的所有设备和虚拟机。adb connect <device_ip>:<device_port>
:通过设备的IP地址和端口号连接到Android设备。
- 安装应用:
adb install <path_to_apk>
:将APK文件安装到设备上。其中,<path_to_apk>
是APK文件的路径。
- 卸载应用:
adb uninstall <package_name>
:从设备卸载应用程序。其中,<package_name>
是应用的包名。
- 导出和恢复应用数据:
adb backup
:将应用程序数据导出到文件中。adb restore
:将应用程序数据从备份文件中恢复。
- 设备操作:
adb reboot
:重启设备。adb reboot bootloader
:将设备重启到bootloader模式,即刷机模式。adb reboot recovery
:将设备重启到recovery模式,即恢复模式。
- 文件操作:
adb push <local_file> <remote_path>
:将文件从计算机复制到设备。adb pull <remote_file> <local_path>
:将设备上的文件复制到计算机。
- 查看日志:
adb logcat
:查看设备上的日志信息。可结合其他参数进行更详细或特定内容的查看,如adb logcat -v time
用于打印时间戳,adb logcat | grep xxx
用于抓取包含特定内容(xxx)的日志信息。
- 运行shell命令:
adb shell <command>
:在设备上运行shell命令。例如,adb shell
命令本身会在连接的设备上打开一个命令行界面。
此外,ADB还有其他一些功能强大的命令,如adb get-serialno
用于获取设备的序列号,adb devices -l
用于列出连接到计算机的所有Android设备并显示设备的详细信息等。
下面是一些更高级和特定的ADB命令用法:
1. 查看设备和应用信息
adb get-state
:获取设备的连接状态(device, offline, unknown)。adb shell dumpsys package <package_name>
:查看指定应用的包信息。adb shell pm list packages
:列出设备上所有已安装应用的包名。
2. 模拟输入和事件
adb shell input text <text>
:在设备上模拟文本输入。adb shell input keyevent <key_code>
:模拟按键事件,如返回键、菜单键等。adb shell input tap <x> <y>
:模拟屏幕点击事件。adb shell input swipe <x1> <y1> <x2> <y2>
:模拟屏幕滑动事件。
3. 调试和性能分析
adb shell am start -a android.intent.action.VIEW -d <url>
:在设备上启动一个指定的URL。adb shell dumpsys meminfo <package_name>
:查看指定应用的内存使用情况。adb shell dumpsys gfxinfo <package_name>
:获取指定应用的图形性能信息。
4. 网络操作
adb forward <local_port> <remote_port>
:将本地计算机的端口转发到设备的端口。adb reverse <remote_port> <local_port>
:将设备的端口转发到本地计算机的端口。
5. 备份和恢复
adb backup -apk -shared -all -f <backup_file> <package_name>
:备份指定应用及其数据到文件。adb restore <backup_file>
:从备份文件中恢复应用和数据。
6. 日志和调试输出
adb logcat -b <buffer>
:查看特定缓冲区的日志,如radio、events等。adb bugreport
:生成并保存设备的bug报告,包括系统日志、堆栈跟踪等信息。
7. 设备截图和录屏
adb exec-out screencap -p > screenshot.png
:捕获设备屏幕并保存为图片文件。adb shell screenrecord /sdcard/video.mp4
:录制设备屏幕并保存为视频文件。
8. 设备时间设置
adb shell date -s "yyyy-MM-dd HH:mm:ss"
:设置设备的日期和时间。
下面是一些额外的ADB操作命令和用法:
1. 安装和调试第三方应用
- adb install -r <path_to_apk>:重新安装应用,保留数据和缓存。
- adb install -t <path_to_apk>:允许测试APK的安装。
- adb install -s <path_to_split_apk>:安装APK的分割部分。
- adb install -d <path_to_apk>:允许降级安装(即安装旧版本的应用)。
2. 与设备上的服务交互
- adb shell am:用于启动Activity,发送广播,或强制停止进程等。
- adb shell wm:用于管理窗口管理器,如调整屏幕大小、密度等。
- adb shell pm:用于管理包(应用),如列出包、清除数据等。
3. 获取系统属性
- adb shell getprop:获取设备的系统属性。
4. 执行shell脚本
- 你可以将一系列的ADB shell命令写入一个脚本文件,然后通过
adb shell < /path/to/script.sh
来执行这个脚本。
5. 使用ADB Shell进行更复杂的操作
- adb shell ifconfig:查看设备的网络接口信息。
- adb shell netstat:查看设备的网络连接状态。
- adb shell top:查看设备的进程状态。
6. 设置环境变量
- 你可以在ADB Shell中设置环境变量,这些变量将影响在该Shell会话中运行的所有命令。
7. 与特定用户或应用交互
- 使用
adb shell run-as <package_name>
命令可以以特定应用的身份运行命令,这对于访问应用的私有文件和目录非常有用。
8. 自定义ADB Server端口
- 默认情况下,ADB Server监听TCP端口5037。你可以通过设置
ADB_SERVER_PORT
环境变量来更改这个端口。
9. 使用ADB进行文件传输
- 除了
adb push
和adb pull
命令外,你还可以使用adb sync
命令来同步本地目录和设备目录。
10. 使用ADB进行网络调试
adb tcpip <port>
命令允许你通过TCP/IP连接ADB Server,这在无法通过USB连接设备时非常有用。
11. ADB的其他工具
- adb logcat -v time:以时间戳的形式输出日志,方便查看。
- adb jdwp:用于调试Java应用,可以与Java调试器一起使用。
请注意,为了使用ADB命令,需要确保ADB环境已经正确配置,并且计算机与Android设备已经通过USB或网络进行了连接。同时,对于某些高级操作,如修改系统文件或执行特殊命令,可能需要设备的root权限或特定的开发者选项设置。