无编辑摘要 |
无编辑摘要 |
||
第3行: | 第3行: | ||
列出所有连接设备及其序列号: | 列出所有连接设备及其序列号: | ||
adb devices | <code>adb devices</code> | ||
如果有多个连接设备,则需要使用序列号来区分: | 如果有多个连接设备,则需要使用序列号来区分: | ||
export ANDROID_SERIAL=<设备序列号> | <code>export ANDROID_SERIAL=<设备序列号></code> | ||
adb shell ls | <code>adb shell ls</code> | ||
多设备下连接指定设备 | 多设备下连接指定设备 | ||
adb -s 序列号 shell | <code>adb -s 序列号 shell</code> | ||
可以通过网络来连接 ADB: | 可以通过网络来连接 ADB: | ||
第19行: | 第19行: | ||
<nowiki>#</nowiki> 让设备端的 adbd 重启,并在 TCP 端口 5555 处监听 | <nowiki>#</nowiki> 让设备端的 adbd 重启,并在 TCP 端口 5555 处监听 | ||
adb tcpip 5555 | <code>adb tcpip 5555</code> | ||
<nowiki>#</nowiki> 此时可以断开 USB 连接 | <nowiki>#</nowiki> 此时可以断开 USB 连接 | ||
第25行: | 第25行: | ||
<nowiki>#</nowiki> 远程连接设备,设备的 IP 地址是 192.168.1.100 | <nowiki>#</nowiki> 远程连接设备,设备的 IP 地址是 192.168.1.100 | ||
adb connect 192.168.1.100:5555 | <code>adb connect 192.168.1.100:5555</code> | ||
<nowiki>#</nowiki> 断开连接 | <nowiki>#</nowiki> 断开连接 | ||
adb disconnect 192.168.1.100:5555 | <code>adb disconnect 192.168.1.100:5555</code> | ||
调试 | 调试 | ||
获取系统日志 adb logcat | 获取系统日志 <code>adb logcat</code> | ||
用法 | 用法 | ||
adb logcat [选项] [应用标签] | <code>adb logcat [选项] [应用标签]</code> | ||
示例 | 示例 | ||
第43行: | 第43行: | ||
<nowiki>#</nowiki> 查看全部日志 | <nowiki>#</nowiki> 查看全部日志 | ||
adb logcat | <code>adb logcat</code> | ||
<nowiki>#</nowiki> 仅查看部分日志 | <nowiki>#</nowiki> 仅查看部分日志 | ||
adb logcat -s WifiStateMachine StateMachine | <code>adb logcat -s WifiStateMachine StateMachine</code> | ||
运行命令 adb shell | 运行命令 adb shell | ||
获取详细运行信息 adb bugreport | 获取详细运行信息 <code>adb bugreport</code> | ||
adb bugreport 用于错误报告,里面包含大量有用的信息。 | <code>adb bugreport</code> 用于错误报告,里面包含大量有用的信息。 | ||
示例 | 示例 | ||
adb bugreport | <code>adb bugreport</code> | ||
<nowiki>#</nowiki> 保存到本地,方便用编辑器查看 | <nowiki>#</nowiki> 保存到本地,方便用编辑器查看 | ||
adb bugreport >bugreport.txt | <code>adb bugreport >bugreport.txt</code> | ||
root 权限 | root 权限 | ||
第67行: | 第67行: | ||
如果 TARGET_BUILD_VARIANT 使用的是 userdebug 模式,要获得 root 权限,需要先运行: | 如果 TARGET_BUILD_VARIANT 使用的是 userdebug 模式,要获得 root 权限,需要先运行: | ||
adb root | <code>adb root</code> | ||
让 ADB 的设备端切换到 root 权限模式,这样 adb remount 等需要 root 权限的命令才会成功。 | 让 ADB 的设备端切换到 root 权限模式,这样 adb remount 等需要 root 权限的命令才会成功。 | ||
第73行: | 第73行: | ||
应用管理 | 应用管理 | ||
安装应用 adb install | 安装应用 <code>adb install</code> | ||
用法: | 用法: | ||
adb install [选项] 应用包.apk | <code>adb install [选项] 应用包.apk</code> | ||
选项包括: | 选项包括: | ||
第91行: | 第91行: | ||
<nowiki>#</nowiki> 安装 facebook.apk | <nowiki>#</nowiki> 安装 facebook.apk | ||
adb install facebook.apk | <code>adb install facebook.apk</code> | ||
<nowiki>#</nowiki> 升级 twitter.apk | <nowiki>#</nowiki> 升级 twitter.apk | ||
adb install -r twitter.apk | <code>adb install -r twitter.apk</code> | ||
如果安装成功,工具会返回成功提示 Success;失败的话,一般是以下几种情况: | 如果安装成功,工具会返回成功提示 Success;失败的话,一般是以下几种情况: | ||
第105行: | 第105行: | ||
INSTALL_FAILED_INSUFFICIENT_STORAGE: 存储空间不足,需要检查设备存储情况。 | INSTALL_FAILED_INSUFFICIENT_STORAGE: 存储空间不足,需要检查设备存储情况。 | ||
卸载应用 adb uninstall | 卸载应用 <code>adb uninstall</code> | ||
用法: | 用法: | ||
adb uninstall 应用包名称 | <code>adb uninstall</code> 应用包名称 | ||
示例: | 示例: | ||
第117行: | 第117行: | ||
应用包名称可以用以下命令列出: | 应用包名称可以用以下命令列出: | ||
adb shell pm list packages -f | <code>adb shell pm list packages -f</code> | ||
运行结果是: | 运行结果是: |
2024年2月15日 (四) 02:22的版本
连接管理
列出所有连接设备及其序列号:
adb devices
如果有多个连接设备,则需要使用序列号来区分:
export ANDROID_SERIAL=<设备序列号>
adb shell ls
多设备下连接指定设备
adb -s 序列号 shell
可以通过网络来连接 ADB:
# 让设备端的 adbd 重启,并在 TCP 端口 5555 处监听
adb tcpip 5555
# 此时可以断开 USB 连接
# 远程连接设备,设备的 IP 地址是 192.168.1.100
adb connect 192.168.1.100:5555
# 断开连接
adb disconnect 192.168.1.100:5555
调试
获取系统日志 adb logcat
用法
adb logcat [选项] [应用标签]
示例
# 查看全部日志
adb logcat
# 仅查看部分日志
adb logcat -s WifiStateMachine StateMachine
运行命令 adb shell
获取详细运行信息 adb bugreport
adb bugreport
用于错误报告,里面包含大量有用的信息。
示例
adb bugreport
# 保存到本地,方便用编辑器查看
adb bugreport >bugreport.txt
root 权限
如果 TARGET_BUILD_VARIANT 使用的是 userdebug 模式,要获得 root 权限,需要先运行:
adb root
让 ADB 的设备端切换到 root 权限模式,这样 adb remount 等需要 root 权限的命令才会成功。
应用管理
安装应用 adb install
用法:
adb install [选项] 应用包.apk
选项包括:
-l forward-lock
-r 重新安装应用,保留原先数据
-s 安装到 SD 卡上,而不是内部存储
示例:
# 安装 facebook.apk
adb install facebook.apk
# 升级 twitter.apk
adb install -r twitter.apk
如果安装成功,工具会返回成功提示 Success;失败的话,一般是以下几种情况:
INSTALL_FAILED_ALREADY_EXISTS: 此时需要用 -r 参数来重新安装。
INSTALL_FAILED_SIGNATURE_ERROR: 应用的签名不一致,可能是发布版和调试版签名不同所致。如果确认 APK 文件签名正常,可以用 adb uninstall 命令先卸载旧的应用,然后再安装。
INSTALL_FAILED_INSUFFICIENT_STORAGE: 存储空间不足,需要检查设备存储情况。
卸载应用 adb uninstall
用法:
adb uninstall
应用包名称
示例:
adb uninstall com.android.chrome
应用包名称可以用以下命令列出:
adb shell pm list packages -f
运行结果是:
package:/system/app/Bluetooth.apk=com.android.bluetooth
前面是 apk 文件,后面则是对应的包名称。