企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] ## adb Android 调试桥 (`adb`) 是一种功能多样的命令行工具,可让您与设备进行通信。`adb`命令可用于执行各种设备操作,它是一种客户端-服务器程序,包括以下三个组件: * **客户端**:用于发送命令。客户端在开发机器上运行。您可以通过发出`adb`命令从命令行终端调用客户端。 * **守护程序 (adbd)**:用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。 * **服务器**:用于管理客户端与守护程序之间的通信。服务器在开发机器上作为后台进程运行。 ## 命令 ### connect 0. 手机和电脑要在一个网端 1. 手机先用数据线链接电脑 2. 设置目标设备以监听端口 5555 上的 TCP/IP 连接 ``` adb tcpip 5555 ``` 3. 拔掉连接目标设备的 USB 线。 4. 通过 IP 地址连接到设备: ``` adb connect device_ip_address:5555 ``` 5. 确认您的主机已连接到目标设备: ``` $ adb devices List of devices attached device_ip_address:5555 device ``` 如何重新链接出现问题可使用以下命令进行重置 ``` adb kill-server ``` ### devices 查询设备 ``` > adb devices -l List of devices attached 192.168.31.52:5555 device product:darwin device:darwin transport_id:5 ``` ### shell 执行mining ``` adb [-d |-e | -s serial_number] shell [shell_command ] ``` 如 1. 传递命令 ``` adb [ -s 192.168.31.52:5555] shell ls -l ``` - 如何只有一个设备,者可忽略 -s 2. 直接进入shell ``` adb [ -s 192.168.31.52:5555] shell ``` #### screencap 截图/录制视频 截图 ``` adb shell screencap /sdcard/screen.png // 下载 adb pull /sdcard/demo.png . ``` 录制视频 ``` adb shell screenrecord [--size 1280x720] [--bit-rate 6000000] [--time-limit 180] /sdcard/demo.mp4 ``` - `--size` 设置分辨率,默认值为设备的本机显示屏分辨率 - `--bit-rate `设置视频的视频比特率(以 MB/秒为单位)。默认值为 20Mbps,当前设置为6Mbps - `--time-limit` 设置最长录制时间(以秒为单位)。默认情况下,最大值为 180(3 分钟) #### cmd testharness enable 重置测试设备 如果您在多个测试设备上测试应用,则在两次测试之间重置设备可能很有用,例如,可以移除用户数据并重置测试环境 ``` adb shell cmd testharness enable ``` ### install/uninstall 安装/卸载apk 安装 ``` adb [-s emulator-5555] install path/to/your_app.apk ``` - 当有多个设置时,`-s` 可以指定设置 卸载 ``` adb uninstall <package_name> ``` ### forward 设置端口转发 將 本级电脑的 6100 端口转发到7100上 ``` adb forward tcp:6100 tcp:7100 ``` ### push/pull 上传与下载 上传 ``` adb push local remote ``` 下载 ``` adb pull remote local ``` 如 ``` adb push myfile.txt /sdcard/myfile.txt ``` ### activity 调用 activity 管理器 使用 activity 管理器 (am) 工具发出命令以执行各种系统操作,如启动 activity、强行停止进程、广播 intent、修改设备屏幕属性 ``` am command ``` 如 ``` adb shell am start -a android.intent.action.VIEW ``` > 更多详情参考 [官方教程](https://developer.android.com/tools/adb?hl=zh-cn#am) ### pm 调用软件包管理器 ``` pm command ``` ``` list packages [options] filter 列出软件包 输出所有软件包,或者视需要仅输出软件包名称包含 filter 中文字的软件包。 具体选项: -f:查看关联文件。 -d:进行过滤以仅显示已停用的软件包。 -e:进行过滤以仅显示已启用的软件包。 -s:进行过滤以仅显示系统软件包。 -3:进行过滤以仅显示第三方软件包。 -i:查看软件包的安装程序。 -u:包括已卸载的软件包。 install [options] path 将软件包(通过 path 指定)安装到系统。 具体选项: -r:重新安装现有应用,并保留其数据。 -t:允许安装测试 APK。仅当您运行或调试了应用或者使用了 Android Studio 的 Build > Build APK 命令时,Gradle 才会生成测试 APK。如果是使用开发者预览版 SDK 构建的 APK,那么安装测试 APK 时必须在 install 命令中包含 -t 选项。 -i installer_package_name:指定安装程序软件包名称。 --install-location location:使用以下某个值设置安装位置: 0:使用默认安装位置。 1:在设备内部存储空间中安装。 2:在外部介质上安装。 -f:在内部系统内存上安装软件包。 -d:允许版本代码降级。 -g:授予应用清单中列出的所有权限。 --fastdeploy:通过仅更新已更改的 APK 部分来快速更新安装的软件包。 --incremental:仅安装 APK 中启动应用所需的部分,同时在后台流式传输剩余数据。如要使用此功能,您必须为 APK 签名,创建一个 APK 签名方案 v4 文件,并将此文件放在 APK 所在的目录中。只有部分设备支持此功能。此选项会强制 adb 使用该功能,如果该功能不受支持,则会失败,并提供有关失败原因的详细信息。附加 --wait 选项,可等到 APK 完全安装完毕后再授予对 APK 的访问权限。 --no-incremental 可阻止 adb 使用此功能 uninstall [options] package 从系统中移除软件包 list permission-groups 输出所有已知的权限组。 list features 输出系统的所有功能。 list libraries 输出当前设备支持的所有库。 clear package 删除与软件包关联的所有数据。 ``` #### list packages 列出安装的设置 ``` > adb shell pm list packages package:com.weico.international package:com.smartisanos.fakecall package:com.android.cts.priv.ctsshim package:com.qualcomm.qti.qms.service.telemetry package:com.hpbr.bosszhipin package:com.qualcomm.qti.qcolor ... ``` ### 读取应用的 ART 配置文件 Android 运行时 (ART) 会收集已安装应用的执行配置文件 #### 查看程序性能报告 ``` // 查找包名 adb shell pm list packages |findstr mi // 打印报告 adb shell cmd package dump-profiles com.xiaomi.youpin // 下载报告 adb pull /data/misc/profman/com.xiaomi.youpin-primary.prof.txt . ```