文档

用于自适应应用开发的模拟器控制

阅读用时:2 分钟
查看 Rob Orgiu 的个人资料
Rob Orgiu 开发者关系工程师

自适应应用开发是 Android 的基础,但要确保所有内容看起来都美观且每项功能都能正常运行,需要在多部设备上进行多次测试。或者说有可能?

嗯,可以…也不可以!虽然 Android Studio 随附了可调整大小的模拟器,可让您手动测试布局,但还有一种更快、更精简的方式可以直接从终端控制设备规格。通过使用 adb emu 快捷方式,您可以利用即发即弃控制台命令执行可立即将控制权返回给调用 shell 的命令。

如果您同时运行多个模拟器,可以通过传入快捷方式的序列号来指定特定虚拟设备:

adb -s <serial> emu <command> <parameter>

首先:折叠和展开

如需测试特定于可折叠设备的用户体验历程和布局配置,您可以以编程方式折叠和展开模拟设备。

adb emu fold

如果可折叠模拟器处于展开状态,您可以将其折叠以显示其较小的屏幕配置,从而开启(虚拟)外接显示屏。如需展开模拟器并开启内部显示屏,只需运行以下命令:

adb emu unfold

现在,您可以立即验证应用是否会保留其状态,以及布局在不同显示尺寸下是否会按预期显示。

旋转、旋转、旋转

正确处理屏幕方向变化是自适应应用开发的基础。您可以以程序化方式触发设备旋转,以测试应用处理配置变更(包括状态恢复)的能力。以下命令会将设备顺时针旋转 90&deg;:

adb emu rotate

使用传感器模拟姿势

将模拟器置于特定物理姿势(例如桌面模式)时会发生什么情况?最简单的方法是使用查询可用位置的数量。

首先,列出所有可用的传感器及其当前状态:

adb emu posture

这会返回类似于以下内容的位置列表:

Usage: "posture <posture_id>" 1: closed	2: half-opened	3: opened	…

然后,您可以使用半开 ID 调用桌面姿态:

adb emu posture 2
注意:并非所有姿势都受每个虚拟设备的支持。Pixel Fold 或可调整大小的 AVD 等标准 AVD 模板仅支持姿势 1、2 和 3。尝试将这些模板上的值设置为 4 或 5 会返回“KO: Failed to set posture”错误。

可调整大小的模拟器呢?

可调整大小的模拟器具有轻松更改自身大小的超能力。借助 adb emu 命令,您只需一条命令即可自由移动该文件。在进行任何更改之前,只需一次调用即可查询可用的调整大小预设:

adb emu resize-display

系统将返回可用礼物列表:

KO usage: "resize-display <index>" 0: phone	1: unfolded	2: tablet

现在,使用所需的 ID 调用 resize-display 参数会将模拟器调整为所需的大小:

adb emu resize-display 1

立即简化测试流程

就是这样!通过将 fire-and-forget 命令集成到命令行工作流中,与同时运行多个模拟器相比,您可以节省大量时间和资源。

现在是开始实验的好时机。如果您之前未使用过这些控制台快捷方式,请打开终端,启动模拟器,前往文档,立即开始使用!

编剧:
继续阅读