Android Studio 应用运行到真机设备

虽然使用 Android 虚拟设备(AVD)可以完成大部分应用测试工作,但真实环境下的应用测试仍需依赖物理 Android 设备 ------ 并且没有任何替代方案能完全模拟物理设备的实际表现,而且部分 Android 功能仅在物理设备上可用。

Android 调试桥(ADB)负责处理与 AVD 实例及已连接物理 Android 设备的通信。本章将介绍如何在 macOS、Windows 和 Linux 系统中配置 ADB 环境,以实现物理 Android 设备上的应用测试。

Android 调试桥(ADB)概述

ADB 的主要作用是开发环境(此处指 Android Studio)与 AVD 模拟器、Android 设备之间的交互,以便运行和调试应用。

ADB 由三部分组成:客户端、在开发系统后台运行的服务器进程,以及在 AVD 或真实 Android 设备(如手机、平板)中运行的后台守护进程。

ADB 客户端有多种形式。例如,Android SDK 的platform-tools子目录中提供了一个名为 adb 的命令行工具客户端;同样,Android Studio 也内置了客户端。

使用 adb 命令行工具可以执行多种任务。例如,通过devices命令参数可列出当前活跃的虚拟设备或物理设备。以下命令输出表明系统中存在一个 AVD,但没有物理设备:

shell 复制代码
$ adb devices 
List of devices attached 
emulator-5554 device

在 Android 设备上启用 USB 调试

要让 ADB 成功连接 Android 设备,需先对设备进行配置以允许该连接。

对于运行 Android 6.0 及更高版本的手机或平板设备,配置步骤如下:

  • 打开设备上的 "设置",选择 "关于平板" 或 "关于手机" 选项(在部分 Android 版本中,该选项位于 "设置" 中的 "系统" 界面中)。
  • 在关于手机界面向下找到 "版本号(鸿蒙手机为软件版本)" ,连续点击该字段 7 次,直至出现 "您已处于开发者模式!" 的提示。
  • 若关于界面中未列出 "版本号",可尝试通过 "软件信息" 选项查找;或者,若有 "高级" 选项,展开该部分查看。
  • 返回设置界面,会看到"开发人员选项" 的菜单(在较新版本的 Android 或鸿蒙系统中,该选项位于 "系统和更新" 界面中)。
  • 选择该选项,在打开的页面中找到 "USB 调试" 选项。

启用 "USB 调试" 选项,出现确认提示时点击 "允许" 按钮。

至此设备已配置完成,可通过 USB 连接开发环境上 ADB 的调试连接。接下来只需配置开发环境使其在设备连接时能够检测到设备即可。这一过程相对简单,但步骤会因开发系统是 Windows、macOS 还是 Linux 而有所不同。

请注意,以下步骤假设 Android SDK 的platform-tools目录已添加到操作系统的 PATH 环境变量中。

macOS 系统的 ADB 配置

要在 macOS 系统中配置 ADB 环境,需按以下步骤操作:用 USB 数据线将设备连接到电脑,打开终端窗口,执行以下命令重启 ADB 服务器。

bash 复制代码
$ adb kill-server 
$ adb start-server 
* daemon not running. starting it now on port 5037 * 
* daemon started successfully * 

服务器成功启动后,执行以下命令验证设备是否被检测到。

bash 复制代码
$ adb devices 
List of devices attached 
74CE000600000001 offline 

如果设备显示为 "offline(离线)",请在设备上查看是否出现下图所示 "允许 USB 调试" 对话框。勾选 "始终允许从此计算机调试" 选项后点击确定。

再次执行 adb devices 命令,设备应显示为可用状态:

bash 复制代码
List of devices attached 
015d41d4454bf80c device 

如果设备未被列出,可尝试注销并重新登录 macOS 桌面;若问题仍存在,建议重启系统。

Windows 系统的 ADB 配置

要在基于 Windows 的开发环境中配置 ADB 以连接 Android 设备,第一步是在系统上安装合适的 USB 驱动程序。需安装的 USB 驱动程序取决于 Android 设备的型号。

如果使用的是 Pixel 手机等谷歌设备,需在 Windows 系统上安装并配置 Google USB 驱动程序包。

参考地址:https://developer.android.com/sdk/win-usb.html

对于不支持 Google USB 驱动的 Android 设备,则需下载设备制造商提供的驱动程序。

驱动程序列表及下载安装说明可通过以下网址获取:https://developer.android.com/tools/extras/oem-usb.html

安装驱动程序后,若设备已被正确识别,打开命令提示符窗口并执行以下命令:

bash 复制代码
adb devices 

该命令应输出类似以下的已连接设备信息:

bash 复制代码
List of devices attached 
HT4CTJT01906 offline 

如果设备显示为 "offline(离线)" 或 "unauthorized(未授权)",请查看设备屏幕,确认是否出现 "允许 USB 调试" 对话框。勾选始终允许从此计算机调试" 选项并点击 "确定"。再次执行 adb devices 命令,设备应显示为就绪状态:

bash 复制代码
List of devices attached 
HT4CTJT01906 device 

若设备未被列出,执行以下命令重启 ADB 服务器:

bash 复制代码
adb kill-server 
adb start-server 

如果设备仍未被列出,可尝试执行以下命令,请注意,此时可能需要重启系统。

bash 复制代码
android update adb 

Linux 系统的 ADB 配置

本章将以 Ubuntu Linux 为例,介绍如何在 Linux 系统中配置 ADB,以连接物理 Android 设备进行应用测试。

在 Ubuntu Linux 上进行物理设备测试,需要安装 android-tools-adb 包,而安装该包要求 Android Studio 用户属于 plugdev 用户组。大多数 Ubuntu 版本的用户账户默认已属于该组,可通过运行 id 命令验证。若未列出 plugdev 组,需执行以下命令将账户添加到该组:

bash 复制代码
sudo usermod -aG plugdev $LOGNAME 

满足组权限要求后,执行以下命令安装 android-tools-adb 包:

bash 复制代码
sudo apt-get install android-tools-adb 

完成上述操作后,重启 Ubuntu 系统。系统重启后,打开终端窗口,启动 ADB 服务器并检查已连接的设备列表:

bash 复制代码
$ adb start-server 
* daemon not running. starting it now on port 5037 * 
* daemon started successfully * 
$ adb devices 
List of devices attached 
015d41d4454bf80c offline 

如果设备显示为 "offline(离线)" 或 "unauthorized(未授权)",请在 Android 设备上查看是否出现 "允许 USB 调试" 对话框。勾选 "始终允许从此计算机调试" 选项,然后点击 "确定"。

解决 USB 连接问题

如果按照上述步骤仍无法成功连接设备,可打开运行目标菜单,选择 "Troubleshoot Device Connections(排查设备连接问题)" 选项。

此选项会扫描设备并报告问题及可能的解决方案。

无线调试

开启无线调试需要确保电脑和手机在同一网络下,并按照以下步骤进行设置

  • 确保设备在同一网络下:确保你的电脑和鸿蒙手机连接到同一个 WLAN 网络
  • 打开开发者选项,启用无线调试。

接下来,点击上述 "无线调试" 选项,会显示下图所示的界面。

如果设备配备摄像头,选择 "通过二维码配对设备";或选择 "通过配对码配对设备"。根据你的选择,设备会启动摄像头扫码模式,或显示一组配对码(如下图所示):

选择好设备上的配对方式后,返回 Android Studio,从运行目标菜单中选择 "Pair Devices Using Wi-Fi(通过 WiFi 配对设备)" 选项。

在弹出的配对对话框中,根据之前设置中选择的方式,对应选择 "通过二维码配对" 或 "通过配对码配对":

可通过以下方式完成配对过程:使用 Android 设备扫描二维码,或在 Android Studio 的对话框中输入设备屏幕上显示的配对码。

若配对失败,可尝试重启开发环境和 Android 设备后再次尝试。

测试 ADB 连接

假设你已在所选的开发平台上成功配置好 ADB,下一步是尝试在设备上运行《Compose 项目概述》一章中创建的测试应用。

启动 Android Studio,打开 ComposeDemo 项目,确认设备已出现在设备选择菜单中:

从列表中选择该设备,点击运行按钮,即可在设备上安装并运行应用。

设备镜像

设备镜像功能允许你在物理设备上运行应用的同时,在 Android Studio 的 "运行设备" 工具窗口中查看设备屏幕。也就是说,尽管应用实际运行在物理设备上,但其显示效果会像 AVD 模拟器一样呈现在 Android Studio 中。

当设备已连接到 Android Studio 时,打开 "运行设备" 工具窗口,点击 "设备镜像设置" 链接以打开设置对话框。在设置对话框中,启用 "物理 Android 设备镜像" 选项并点击 "确定"。返回主窗口后,Android Studio 会在 "运行设备" 工具窗口中同步显示物理设备的屏幕内容。

小结

虽然 Android 虚拟设备(AVD)模拟器提供了出色的测试环境,但必须记住:确保应用在物理 Android 设备上正常运行,没有任何替代方案能完全做到这一点。

不过,默认情况下,Android Studio 环境并未配置为检测 Android 设备作为目标测试设备。因此,需要执行一些步骤,才能通过 USB 数据线或 WiFi 网络,从 Android Studio 开发环境直接将应用加载到 Android 设备上,具体步骤因开发平台而异,本章已针对 Linux、macOS 和 Windows 系统分别介绍了这些配置步骤。

相关推荐
用户416596736935513 小时前
存量项目如何拥抱 KMP?从环境搭建到组件化集成的保姆级指南
android
技术摆渡人14 小时前
Android 系统技术探索(3)光影魔术(SurfaceFlinger & 图形栈)。
android
Byron Loong14 小时前
【Debug】vscode 调试python,如何配置固定调试文件
ide·vscode·python
某空m15 小时前
【Android】浅析DataBinding
android·开发语言
sky北城16 小时前
You are not able to choose some of the languages, because locales for them a
android
儿歌八万首16 小时前
Jetpack Compose 实战:打造高性能轮播图 (Carousel) 组件
android·前端·kotlin
QING61816 小时前
Kotlin Flow 防抖(Debounce)详解
android·kotlin·android jetpack
QING61817 小时前
Kotlin Flow 防抖(Debounce)、节流(Throttle)、去重(distinctUntilChanged) —— 新手指南
android·kotlin·android jetpack
AI视觉网奇17 小时前
android yolo12 android 实战笔记
android·笔记·yolo
HealthScience17 小时前
vscode通过跳板机连接到服务器
服务器·ide·vscode