跳到主要内容

Android

1. ADB 简介

ADB(Android Debug Bridge,安卓调试桥)是一种命令行工具,允许用户与 Android 设备或模拟器进行交互。它是 Android 开发过程中至关重要的调试工具,开发者可以通过 ADB 实现设备管理、应用安装、日志查看、文件传输等操作。ADB 提供了一个客户端-服务器架构,用来在开发机器和 Android 设备之间进行通信。

2. 硬件连接

使用 Type-C 数据线将开发板与电脑连接(请注意:此 USB 接口非电源接口)。

3. adb 安装(Windows )

  1. 下载 ADB 安装包,解压即可使用(戳我下载)。
  2. 右键我的电脑属性 -> 高级系统设置 -> 环境变量。

  1. 系统变量 -> 编辑 -> 将 ADB 解压路径新建进去。

  1. 点击确定保存环境变量。

4. adb 安装(Ubuntu)

  1. 下载安装 ADB 工具。
sudo apt-get install android-tools-adb -y
  1. 如果不配置正确的 udev 规则,普通用户将无法访问 USB 设备,使用 adb shell 时会提示 “udev rules wrong” 或权限不足的错误。

  1. 使用 lsusb 命令查看设备 ID 号。

  1. 创建或编辑 udev 规则文件:
sudo vim /etc/udev/rules.d/51-android.rules
  1. 在文件中添加以下内容,赋予 plugdev 组的用户对 ID 为 2207:0019 的设备的读写权限:
SUBSYSTEM=="usb", ATTR{idVendor}=="2207", ATTR{idProduct}=="0019", MODE="0666", GROUP="plugdev"
  1. 保存文件后,更改规则文件的权限:
sudo chmod 644 /etc/udev/rules.d/51-android.rules
  1. 重新加载 udev 规则:
sudo udevadm control --reload-rules
sudo service udev restart
  1. 重新连接设备,拔掉设备并重新插入,以确保新的规则生效。

5. ADB 调试

  1. 按下 Win + R 快捷键输入 CMD 打开 Windows 终端,在终端输入 ADB 命令即可查看 ADB 相关信息。

  1. 仅有一个设备时,在 PowerShell 或 CMD 中执行:
adb shell
  1. 如果连接了多个设备,可通过以下命令查看当前已连接的 ADB 设备列表:
adb devices

例如:

C:\Users\cjw> adb devices

List of devices attached

103ea97dececc831 device
d48936ed7d1551fc device
  1. 确认目标设备后,通过设备序列号使用以下命令登录开发板:
adb -s d48936ed7d1551fc shell
提示

建议在插拔设备后重新执行 adb devices,确认目标设备是否成功识别。如未识别,可尝试更换 Type-C 数据线,并检查接口是否存在接触不良等问题。

6. ADB 安装和卸载应用

6.1 安装

  1. 基本语法:

    adb install [选项] <apk文件路径>
    • adb:这是 ADB 命令的前缀,用于与设备交互。
    • install:指定要执行的操作,即安装 APK 文件。
    • <apk文件路径>:要安装的 APK 文件的路径。如果在当前目录中,可以直接输入 APK 文件名,也可以提供完整路径。
  2. 常用安装选项。

    • -r:重新安装已存在的应用,并保留用户数据(更新应用而不会删除它的数据)
    • -d:允许降级安装,通常用于安装低版本的应用
    • -s:将应用安装到 SD 卡,而不是设备的内部存储
    • -g:授予应用安装时的所有运行时权限。这种方式会自动授予应用所有需要的权限,而不需要用户在运行时手动授权
    • -t:允许安装经过测试签名的应用(用于调试应用程序)
  3. 演示。

    PS D:\Download\NFCTag_CN> adb install test.apk
    3200 KB/s (17677887 bytes in 5.393s)
    Success

6.2 卸载

  1. 基本语法:

    adb uninstall <应用包名>
    • adb:Android Debug Bridge 的命令行工具
    • uninstall:指定要卸载应用的操作
    • <应用包名>:要卸载的应用程序的包名,例如 luckfox
  2. 示例:

    adb uninstall luckfox
    • Failure [DELETE_FAILED_INTERNAL_ERROR]:确保输入的包名正确。可以通过 adb shell pm list packages 获取设备上已安装应用的包名
    • Failure [DELETE_FAILED_DEVICE_POLICY_MANAGER]:个问题通常发生在尝试卸载设备管理员权限的应用。需要先禁用设备管理员权限,然后再卸载。可以进入 Android 设置中的“安全” -> “设备管理员”,取消相应应用的设备管理权限