无编辑摘要 |
无编辑摘要 |
||
(未显示2个用户的5个中间版本) | |||
第1行: | 第1行: | ||
连接管理 | <h2>连接管理</h2> | ||
列出所有连接设备及其序列号: | 列出所有连接设备及其序列号: | ||
<pre>adb devices</pre> | |||
adb devices | |||
如果有多个连接设备,则需要使用序列号来区分: | 如果有多个连接设备,则需要使用序列号来区分: | ||
<pre>export ANDROID_SERIAL=<设备序列号></pre> | |||
export ANDROID_SERIAL=< | <pre>adb shell ls</pre> | ||
adb shell ls | |||
多设备下连接指定设备 | 多设备下连接指定设备 | ||
<pre>adb -s 序列号 shell</pre> | |||
adb -s 序列号 shell | |||
可以通过网络来连接 ADB: | 可以通过网络来连接 ADB: | ||
让设备端的 adbd 重启,并在 TCP 端口 5555 处监听 | |||
<pre>adb tcpip 5555</pre> | |||
此时可以断开 USB 连接 | |||
远程连接设备,设备的 IP 地址是 192.168.1.100 | |||
<pre>adb connect 192.168.1.100:5555</pre> | |||
断开连接 | |||
<pre>adb disconnect 192.168.1.100:5555</pre> | |||
< | <p style="color: gray;">注:在安卓11及以上版本中,可以直接在开发者选项中启用无线调试</p> | ||
<h2>调试</h2> | |||
<h4>获取系统日志</h4> | |||
<pre>adb logcat</pre> | |||
用法 | 用法 | ||
<pre>adb logcat [选项] [应用标签]</pre> | |||
<h5>示例</h5> | |||
查看全部日志 | |||
<pre>adb logcat</pre> | |||
仅查看部分日志 | |||
< | <pre>adb logcat -s WifiStateMachine StateMachine</pre> | ||
adb logcat | |||
adb logcat -s WifiStateMachine StateMachine | |||
adb bugreport | <code>adb bugreport</code>用于错误报告,里面包含大量详细运行信息。 | ||
示例 | <h5>示例</h5> | ||
<pre>adb bugreport</pre> | |||
adb bugreport | 保存到本地,方便用编辑器查看 | ||
<pre>adb bugreport >bugreport.txt</pre> | |||
adb bugreport >bugreport.txt | |||
<h2>root 权限</h2> | |||
如果<code>TARGET_BUILD_VARIANT</code>使用的是 userdebug 模式,要获得 root 权限,需要先运行: | |||
<pre>adb root</pre> | |||
让 ADB 的设备端切换到 root 权限模式,这样 adb remount 等需要 root 权限的命令才会成功。 | 让 ADB 的设备端切换到 root 权限模式,这样 adb remount 等需要 root 权限的命令才会成功。 | ||
<p style="color: gray;">注:如果 TARGET_BUILD_VARIAN </code>使用的是 eng 模式,则 adb 默认为 root 权限不需要切换</p> | |||
应用管理 | <h2>应用管理</h2> | ||
<h4>安装应用</h4> | |||
安装应用 | <pre>adb install</pre> | ||
adb install | |||
<h5>用法</h5> | |||
<pre>adb install [选项] 应用包.apk</pre> | |||
选项包括: | 选项包括: | ||
-l forward-lock | <strong>-l</strong> forward-lock | ||
<strong>-r</strong> 重新安装应用,保留原先数据 | |||
< | <strong>-s</strong> 安装到 SD 卡上,而不是内部存储 | ||
adb install facebook.apk | <h5>示例</h5> | ||
安装 facebook.apk | |||
<pre>adb install facebook.apk</pre> | |||
升级 twitter.apk | |||
<pre>adb install -r twitter.apk</pre> | |||
如果安装成功,工具会返回成功提示 <strong>Success</strong>;失败的话,一般是以下几种情况: | |||
< | <strong>INSTALL_FAILED_ALREADY_EXISTS:</strong> 此时需要用 -r 参数来重新安装。 | ||
<strong>INSTALL_FAILED_SIGNATURE_ERROR:</strong> 应用的签名不一致,可能是发布版和调试版签名不同所致。 | |||
<strong>INSTALL_FAILED_INSUFFICIENT_STORAGE:</strong> 存储空间不足,需要检查设备存储情况。 | |||
<h4>卸载应用</h4> | |||
<pre>adb uninstall</pre> | |||
用法: | 用法: | ||
<pre>adb uninstall 应用包名称</pre> | |||
adb uninstall 应用包名称 | |||
示例: | 示例: | ||
<pre>adb uninstall com.android.chrome</pre> | |||
adb uninstall com.android.chrome | |||
应用包名称可以用以下命令列出: | 应用包名称可以用以下命令列出: | ||
<pre>adb shell pm list packages -f</pre> | |||
adb shell pm list packages -f | |||
运行结果是: | 运行结果是: | ||
<pre>package:/system/app/Bluetooth.apk=com.android.bluetooth</pre> | |||
前面是 apk 文件,后面则是对应的包名称。 | |||
<h2>其他</h2> | |||
<h4>多用户相关</h4> | |||
从Android 4.0开始,Google就开始在Android上布局多用户,UserManager因此而诞生,然而此时还没有对应的Binder服务。真正支持多用户是从Android 4.2 开始,即便如此,系统中也依然存在各种Bug和兼容性问题。直到Android 6.0,Android多用户才比较完善,国内外的厂家也纷纷开始针对多用户这个噱头来做各种 “花里胡哨” 的操作,“手机分身”、“分身应用”、“应用双开” 应运而生,不得不说,国内的厂家在多用户这方面定制化到如今已经非常稳定和完善了。各个用户之间的数据不互通,由各自的用户管理各自的数据。 | |||
在一些类原生ROM上,多用户会默认存在于手机的设置中,你可以通过搜索"多用户“直达设置项,当然,你也可以用adb调试桥来方便的管理手机上的多用户, | |||
例如: | |||
<pre>adb shell pm list users</pre> | |||
查看当前设备中的用户列表。 | |||
<pre>adb shell pm create-user 10 godv</pre> | |||
创建一个用户ID为10 用户名叫godv的用户。 | |||
<pre>adb shell am switch-user 10</pre> | |||
切换到用户ID为10的用户。 | |||
<pre>db shell am start-user 10</pre> | |||
启动用户ID为10的用户。 | |||
<pre>adb install –user 10 name.apk</pre> | |||
把应用程序安装在用户ID为10的用户下。 | |||
<pre>adb shell pm remove-user 10</pre> | |||
移除用户ID为10的用户。 |
2024年8月22日 (四) 22:20的最新版本
连接管理
列出所有连接设备及其序列号:
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
注:在安卓11及以上版本中,可以直接在开发者选项中启用无线调试
调试
获取系统日志
adb logcat
用法
adb logcat [选项] [应用标签]
示例
查看全部日志
adb logcat
仅查看部分日志
adb logcat -s WifiStateMachine StateMachine
adb bugreport
用于错误报告,里面包含大量详细运行信息。
示例
adb bugreport
保存到本地,方便用编辑器查看
adb bugreport >bugreport.txt
root 权限
如果TARGET_BUILD_VARIANT
使用的是 userdebug 模式,要获得 root 权限,需要先运行:
adb root
让 ADB 的设备端切换到 root 权限模式,这样 adb remount 等需要 root 权限的命令才会成功。
注:如果 TARGET_BUILD_VARIAN 使用的是 eng 模式,则 adb 默认为 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: 应用的签名不一致,可能是发布版和调试版签名不同所致。
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 文件,后面则是对应的包名称。
其他
多用户相关
从Android 4.0开始,Google就开始在Android上布局多用户,UserManager因此而诞生,然而此时还没有对应的Binder服务。真正支持多用户是从Android 4.2 开始,即便如此,系统中也依然存在各种Bug和兼容性问题。直到Android 6.0,Android多用户才比较完善,国内外的厂家也纷纷开始针对多用户这个噱头来做各种 “花里胡哨” 的操作,“手机分身”、“分身应用”、“应用双开” 应运而生,不得不说,国内的厂家在多用户这方面定制化到如今已经非常稳定和完善了。各个用户之间的数据不互通,由各自的用户管理各自的数据。 在一些类原生ROM上,多用户会默认存在于手机的设置中,你可以通过搜索"多用户“直达设置项,当然,你也可以用adb调试桥来方便的管理手机上的多用户, 例如:
adb shell pm list users
查看当前设备中的用户列表。
adb shell pm create-user 10 godv
创建一个用户ID为10 用户名叫godv的用户。
adb shell am switch-user 10
切换到用户ID为10的用户。
db shell am start-user 10
启动用户ID为10的用户。
adb install –user 10 name.apk
把应用程序安装在用户ID为10的用户下。
adb shell pm remove-user 10
移除用户ID为10的用户。