Android Studio 创建 Android 模拟器

尽管 Android Studio 的预览面板能让我们看到正在设计的布局,但要全面测试应用是否正常运行,仍需编译并运行完整的应用。

Android 应用可通过在物理设备上安装运行,或在 Android Virtual Devices(AVD)模拟器环境中进行测试。

在使用 AVD 之前,必须先创建并将其配置为匹配特定设备型号的规格。本章中,我们将以 Pixel 9 手机为例,逐步讲解如何创建这样的虚拟设备。

关于 Android 模拟器

AVD 是一种模拟器,无需将应用安装到物理 Android 设备上,就能对 Android 应用进行测试。AVD 可配置为模拟多种硬件特性,包括屏幕尺寸、内存容量,以及是否具备摄像头、GPS 导航、加速度传感器等功能。

Android Studio 标准安装包中包含多个模拟器模板,可用于配置适配不同设备的 AVD。此外,还可通过指定处理器类型、内存容量、屏幕尺寸和像素密度等属性,创建自定义配置以匹配任何物理 Android 设备。

AVD 会话既可以在独立窗口中显示,也可以嵌入到 Android Studio 窗口内。

新 AVD 的创建和管理通过 Android 虚拟设备管理器(AVD Manager)完成,该工具支持命令行模式和更易用的图形用户界面。创建新 AVD 的第一步是启动 AVD 管理器,具体操作是在 Android Studio 环境中,点击右侧工具窗口栏中的 "Device Manager" 按钮,如下图所示。

打开后,管理器会以工具窗口的形式显示。

如果系统中已存在该 AVD,你可以直接用它测试应用。若没有创建 AVD,或需要为不同设备类型创建 AVD,请按照本章剩余步骤操作。

添加新 AVD 的步骤如下:点击+图标,然后点击 "Create Vritual device" 按钮,打开 "Virtual Device Configuration" 对话框。

在对话框中,按以下步骤创建兼容 Pixel 9 的模拟器:

  • 在左侧面板中选择 "Phone" 选项,显示可用的 Android 手机 AVD 模板。
  • 选择 "Pixel 9" 设备选项,然后点击 "Next"
  • 在配置界面中,从 API 下拉框中(A 处)选择最新的 Android 版本
  • 通过 "Services" 下拉框中(B 处)选择要在模拟器中包含的服务。如果计划学习应用内费用相关章节,请勾选 "Google Play Store" 服务选项。
  • 在下方 "Select System Image" 页面,选择最新版本的 Android 系统镜像。如果该系统镜像尚未安装会显示下载按钮,点击该链接下载并安装镜像后再选择它。
  • 在 Name 输入框中(D 处)填写名称(例如 "Pixel 9"),或接受默认名称。
  • 选择 "Additional settings" 选项卡(E 处)查看其他配置选项,包括设备方向、摄像头模拟选项、模拟网络速度和延迟属性,以及内部存储。
  • 点击 "Finish" 完成 AVD 创建。

启动模拟器

要测试新创建的 AVD 模拟器,可从设备管理器中选中该模拟器,然后点击 Start 按钮。模拟器会嵌入到 Android Studio 主窗口中,并开始启动流程。模拟器的启动时间取决于 AVD 的配置以及运行它的系统配置。

点击 Start 如下图所示

模拟器工具窗口可容纳多个模拟器会话,每个会话对应一个选项卡。例如,下图展示了包含两个模拟器会话的工具窗口。

去除模拟器边框

如果不需要模拟器边框,可以点击 Edit,在 Additional settings 选项卡中将 Device skin 设置为 None

效果如下图所示

要隐藏和显示模拟器工具窗口,可点击 "Running Devices" 工具窗口按钮。

模拟器中运行应用

配置好 AVD 模拟器后,现在可以编译并运行前几章创建的 ComposeDemo 示例应用了。

在 Android Studio 中加载 ComposeDemo 项目后,确保新创建的 Pixel 9 AVD 显示在设备菜单中,点击三角形图标表示的运行按钮。

设备列表可用于选择其他 AVD 实例或物理设备作为运行目标,也能在多台设备上运行应用。此外,该菜单还可访问设备管理器,以及设备连接配置和故障排除选项。

应用安装并运行后应用界面会显示在模拟器中,如下图所示

运行过程开始后,运行工具窗口会自动显示。在应用包安装和启动过程中,该窗口会输出诊断信息。下图展示了应用成功启动时运行工具窗口的输出内容。

如果在启动过程中遇到问题,运行工具窗口会提供信息以帮助排查问题原因。

假设应用成功加载到模拟器中并按预期运行,这就说明我们的 Android 开发环境已正确安装和配置。

Live Edit 实现实时更新

在应用运行状态下,非常适合介绍 Live Edit 功能。与预览面板的交互模式类似,当代码发生更改时,Live Edit 会实时更新运行在设备或模拟器上的应用的外观和行为。这一功能允许开发者实时测试代码变更,无需重新构建和运行项目。

可以通过以下方式启用 Live Edit 模式:先点击下图中 "Settings" 菜单选项。

在 "Settings" 对话框的侧边面板中,依次导航至并选择 Editor → Live Edit 选项,即可显示以下界面。

启用 "Live Edit" 选项,选择 "Push Edits Automatically" 选项,然后点击 "OK" 确认。

自动推送编辑内容的响应速度,会因电脑和 Android 设备的性能及资源情况而有所不同。如果性能慢到无法接受,可返回设置界面,切换为手动推送编辑内容。需要让运行中的应用反映代码变更时,使用指定的键盘快捷键即可。

启用 Live Edit 模式后,必须重启应用才能使更改生效。你可以在 "Running Devices" 工具窗口中,点击下图中按钮完成重启。

尝试使用 Live Edit 功能,按以下方式修改 DemoText 可组合函数显示的文本:DemoText(message = "This is Compose", fontSize = sliderPosition)

如果启用了自动推送编辑模式,运行中应用的文本会随每一次按键输入实时更新,反映出修改内容。若为手动模式,可点击上图刷新按钮,将更改推送到运行中的应用。

目前,Live Edit 仅支持对现有函数体内的代码进行修改。例如,它无法处理函数的新增、删除或重命名操作。

多个模拟器运行应用

下图所示的运行目标菜单中,点击 "Select Multiple S\Devices...",其中列出了系统中已配置的所有模拟器以及已连接的物理设备。在点击 "OK" 按钮前,勾选需要作为运行目标的模拟器或设备旁的复选框即可:

停止运行

如果要停止运行应用,点击下图红色按钮

也可通过 "run" 工具窗口终止应用。首先,使用应用运行时才会显示的窗口栏按钮打开 "run" 工具窗口。"run" 工具窗口出现后,点击下图中高亮显示的停止按钮即可。

支持深色主题

若要测试应用在深色主题启用时的表现,点击 "运行设备" 工具窗口中的 "设备 UI 快捷操作" 按钮,然后在弹出的对话框中勾选 "深色主题" 选项即可。

启用深色主题后,ComposeDemo 应用的显示效果如下图所示.

模拟器运行在独立窗口

本章中我们仅将模拟器用作为主窗口内嵌入的工具窗口来使用。不过可以通过 "设置" 对话框将模拟器配置为在独立窗口中显示。

模拟器的默认显示是内嵌在Android Studio窗口中,如果需要模拟器独立显示的窗口模式,我们可以通过在设置中进行相应的更改,取消勾选 Launch in the Running Devices tool window,重启模拟器即可看到效果。

效果如下图所示

需要注意:"Running Devices" 工具窗口也可从其选项菜单中脱离 Android Studio 主窗口。打开该选项菜单的方法是,点击下图中标记的按钮。

选择独立窗口模式还是工具窗口模式,完全取决于个人偏好。如果倾向于在工具窗口中运行模拟器,可返回设置界面,重新勾选 Launch in the Running Devices tool window" 选项。

小结

典型的应用开发流程遵循 "编码→编译→在测试环境中运行" 的循环。Android 应用可在物理 Android 设备或 Android 虚拟设备(AVD)模拟器上进行测试。

AVD 通过 Android Studio 的 "设备管理器" 工具创建和管理,该工具支持命令行模式和图形用户界面两种操作方式。若要创建模拟特定 Android 设备型号的 AVD,需将虚拟设备的硬件规格配置为与该物理设备一致。

AVD 模拟器会话既可以在独立窗口中显示,也可以嵌入到 Android Studio 主界面内。

相关推荐
明道源码5 小时前
Android Studio 使用教程
android·ide·android studio
AH_HH8 小时前
SmartCabinet:基于 Android 的智能储物柜管理系统技术解析
android·kotlin·存储柜
西部风情8 小时前
聊聊并发、在线、TPS
android·java·数据库
生莫甲鲁浪戴11 小时前
Android Studio新手开发第二十七天
前端·javascript·android studio
2501_9160088913 小时前
Web 前端开发常用工具推荐与团队实践分享
android·前端·ios·小程序·uni-app·iphone·webview
我科绝伦(Huanhuan Zhou)14 小时前
MySQL一键升级脚本(5.7-8.0)
android·mysql·adb
怪兽201415 小时前
Android View, SurfaceView, GLSurfaceView 的区别
android·面试
消失的旧时光-194316 小时前
iFlutter --> Flutter 开发者 的 IntelliJ IDEA / Android Studio 插件
flutter·android studio·intellij-idea
龚礼鹏16 小时前
android 图像显示框架二——流程分析
android