在硬件设备上运行应用

在向用户发布 Android 应用之前,务必在真实设备上对其进行测试。本页介绍了如何设置开发环境和 Android 设备,以便通过 Android 调试桥 (ADB) 连接进行测试和调试。

设置开发设备

在设备上开始调试之前,请先确定是要使用 USB 线缆还是 Wi-Fi 连接到设备。然后执行以下操作:

  1. 在设备上,打开设置应用,选择开发者选项,然后启用USB 调试(如果适用)。

  2. 设置系统以检测您的设备。

    • ChromeOS:无需额外配置。
    • macOS:无需额外配置。
    • Windows:为 ADB 安装 USB 驱动程序(如果适用)。有关安装指南和 OEM 驱动程序的链接,请参阅安装 OEM USB 驱动程序
    • Ubuntu Linux:设置以下内容:

      • 每个想要使用 ADB 的用户都需要属于 plugdev 组。如果您看到错误消息,指出您不属于 plugdev 组,请使用以下命令将自己添加到该组:
      sudo usermod -aG plugdev $LOGNAME
      

      群组只会在登录时更新,因此您必须注销才能使此更改生效。重新登录后,您可以使用 id 命令检查您是否属于 plugdev 组。

      • 系统需要安装涵盖该设备的 udev 规则。android-sdk-platform-tools-common 软件包包含一套社区维护的适用于 Android 设备的默认 udev 规则。要安装它,请使用以下命令:
      apt-get install android-sdk-platform-tools-common
      

使用 USB 连接到设备

设置完成并通过 USB 连接后,在 Android Studio 中点击运行 以在设备上构建并运行您的应用

您也可以使用 adb 发出命令,如下所示:

  • 通过从 android_sdk/platform-tools/ 目录运行 adb devices 命令来验证您的设备是否已连接。如果已连接,您将看到设备列表。
  • 使用 -d 标志发出任何 adb 命令以定位您的设备。

使用 Wi-Fi 连接到设备

Android 11 及更高版本支持通过 Android 调试桥 (ADB) 从工作站无线部署和调试您的应用。例如,您可以将可调试的应用部署到多个远程设备,而无需通过 USB 物理连接您的设备,也无需处理常见的 USB 连接问题,例如驱动程序安装。

要使用无线调试,您需要使用配对码将设备与工作站配对。首先,请完成以下步骤:

  1. 确保您的工作站和设备连接到同一个无线网络。
  2. 确保您的设备运行的是 Android 11 或更高版本。如需了解详情,请参阅检查和更新您的 Android 版本
  3. 确保您已安装最新版本的 Android Studio。在此处下载
  4. 在您的工作站上,更新到最新版本的 SDK Platform Tools

要连接到您的设备,请按照以下步骤操作:

  1. 打开 Android Studio,然后从运行配置菜单中选择通过 Wi-Fi 配对设备
    Run configurations drop-down
    图 1. 运行配置菜单。

    此时会出现通过 Wi-Fi 配对设备对话框,如图 2 所示。
    Screenshot of the pair devices over Wi-Fi popup window
    图 2. 使用 QR 码或配对码配对设备的对话框。
  2. 在您的设备上启用开发者选项
  3. 在您的设备上启用通过 Wi-Fi 调试
    Screenshot of a pixel phone showing the Wireless debugging
      systems setting.
    图 3. Google Pixel 手机上的无线调试设置。
  4. 轻触无线调试并配对您的设备
    1. 要使用 QR 码配对设备,请选择使用 QR 码配对设备,然后扫描图 2 中所示的 QR 码。
    2. 要使用配对码配对设备,请从通过 Wi-Fi 配对新设备对话框中选择使用配对码配对设备。在您的设备上,选择使用配对码配对。此时会显示一个六位数代码。当您的设备出现在通过 Wi-Fi 配对设备窗口中时,输入您设备上显示的六位数代码,然后选择配对
      Screenshot of example pairing code entry
      图 4. 六位数配对码输入示例。
  5. 配对后,您可以尝试将您的应用部署到您的设备。

要配对其他设备或在您的工作站上忘记此设备

  1. 在您的设备上导航到无线调试
  2. 已配对设备下轻触您的工作站名称。
  3. 选择忘记

设备镜像

您可以在 Android Studio 的运行设备窗口中镜像您的实体设备。通过将设备的显示内容直接流式传输到 Android Studio,您可以使用 Studio IDE 本身执行常见操作,例如启动应用并与之互动、旋转屏幕、折叠和展开手机以及更改音量。

当有设备连接到计算机并启用了 USB 或无线调试时,设备镜像始终可用。您可以使用运行设备窗口或设备管理器视图 > 工具窗口 > 设备管理器)启动和停止镜像。您还可以通过其设置(设置 > 工具 > 设备镜像)自定义设备镜像何时激活。

Running Devices UI

重定向音频

使用设备镜像时,您可以将连接的实体设备中的音频重定向到您的电脑扬声器或耳机。借助音频重定向功能,您可以让耳机连接到电脑,同时收听电脑和连接的手机,而无需手动重新连接到一台设备再连接到另一台设备。要启用音频重定向,请依次前往文件(macOS 上的 Android Studio)> 设置 > 工具 > 设备镜像,然后选择从本地设备重定向音频。请注意,对于运行 Android 12 或更高版本的 Firebase Test Lab 设备,无论设置如何,音频始终会被重定向。

已知问题

某些设备可能无法以足以支持设备镜像的比特率进行编码。在这种情况下,您可能会在运行设备窗口中看到错误,以及类似于以下的日志。

2023-06-01 15:32:22,675 [  56094]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - Too many video encoder errors:
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - encoder: c2.android.vp8.encoder
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - mime type: video/x-vnd.on2.vp8
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max resolution: 640x640
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - min resolution: 2x2
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - alignment: 2x2
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max frame rate: 960
2023-06-01 15:32:22,676 [  56095]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max frame rate for 288x640: 960
2023-06-01 15:32:22,870 [  56289]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - max bitrate: 20000000
2023-06-01 15:32:22,871 [  56290]   WARN - ScreenSharingAgent Samsung SM-A045F API 33 - terminated with code 1

隐私声明

根据设备镜像设置,Android Studio 可以自动为任何已连接和已配对的设备启动设备镜像。这可能会导致使用 adb tcpip 命令连接的设备信息泄露,因为镜像信息和命令是通过非加密通道传递的。此外,Android Studio 使用非加密通道与 adb 服务器通信,因此镜像信息可能会被主机上的其他用户拦截。

设备连接问题排查

如果您的设备无法连接到 Android Studio,请尝试以下步骤来解决问题:

使用连接助手排查问题

连接助手提供分步说明,可帮助您通过 ADB 连接设置和使用设备。

要启动该助手,请选择工具 > 排查设备连接问题

连接助手在助手面板的一系列页面中提供说明、上下文控件和已连接设备列表。根据需要使用助手面板底部的下一步上一步按钮来浏览页面。

  • 通过 USB 连接您的设备:连接助手首先会提示您通过 USB 连接您的设备,并提供一个重新扫描 USB 设备按钮,您可以在此处开始重新扫描已连接的设备。
  • 启用 USB 调试:连接助手接着会告诉您如何在设备上的开发者选项中启用 USB 调试。
  • 重启 ADB 服务器:如果您仍然没有在可用设备列表中看到您的设备,请使用连接助手最后一页上的重启 ADB 服务器按钮。重启 ADB 服务器也会导致 ADB 再次扫描设备。如果您仍然没有在可用设备列表中看到您的设备,请尝试下一节中的问题排查步骤。

解决 USB 连接问题

如果连接助手无法通过 USB 检测到您的设备,请尝试以下问题排查步骤来解决问题:

检查 Android Studio 是否连接到 Android 模拟器

要检查问题是否由 Android Studio 与 Android 模拟器之间的连接问题引起,请按照以下步骤操作:

  1. 打开设备管理器
  2. 如果您还没有 创建新的 AVD
  3. 使用您的 AVD 运行模拟器
  4. 执行以下操作之一:
    • 如果 Android Studio 无法连接到模拟器,请下载最新版本的 SDK Platform Tools,然后重试。
    • 如果模拟器成功启动,请按照下一节中的说明检查 USB 线缆。

检查 USB 线缆

要检查问题是否由有故障的 USB 线缆引起,请按照本节中的步骤操作。

如果您有另一根 USB 线缆

  1. 使用备用线缆连接设备。
  2. 检查连接助手现在是否可以检测到设备。
  3. 如果设备未检测到,请再次尝试使用主线缆。
  4. 如果设备仍然未检测到,请假定问题出在设备上,并按照下一节中的说明检查设备是否已设置为开发用途

如果您没有其他 USB 线缆,但有另一台 Android 设备

  1. 将备用设备连接到您的计算机。
  2. 如果连接助手可以检测到备用设备,则假定问题出在主设备上,然后检查设备是否已设置为开发用途

    如果备用设备未检测到,则问题可能出在 USB 线缆上。

检查设备是否已设置为开发用途

要检查问题是否由设备上的设置引起,请按照以下步骤操作:

  1. 按照设置开发设备一节中的步骤操作。
  2. 如果这无法解决问题,请联系设备 OEM 的客户支持寻求帮助。告诉客户支持代表,设备无法使用 ADB 连接到 Android Studio。

解决无线连接问题

如果您在无线连接设备时遇到问题,可以尝试以下问题排查步骤来解决问题:

检查您的工作站和设备是否满足前提条件

为了满足无线调试的前提条件,请确保:

检查其他已知问题

以下是 Android Studio 中无线调试的当前已知问题列表以及解决方法:

  • Wi-Fi 无法连接:某些 Wi-Fi 网络(例如公司 Wi-Fi 网络)可能会阻止点对点连接,导致您无法通过 Wi-Fi 连接。请尝试使用线缆连接或使用其他 Wi-Fi 网络。
  • 通过 Wi-Fi 的 ADB 有时会自动关闭:如果设备切换 Wi-Fi 网络或断开与网络的连接,可能会发生这种情况。

RSA 安全密钥

当您将运行 Android 4.2.2(API 级别 17)或更高版本的设备连接到您的计算机时,系统会显示一个对话框,询问是否接受允许通过此计算机进行调试的 RSA 密钥。这种安全机制可以保护用户设备,因为除非您能够解锁设备并确认对话框,否则无法执行 USB 调试和其他 adb 命令。