谷歌发布安卓折叠屏手机应用设计规范( 六 )

△ 获取折叠的位置信息
测试如果您的应用存在与折叠状态相关的特殊行为,您需要为此编写单元测试。Jetpack Window Manager 里面有一条测试规则,支持在插桩测试期间模拟 FoldingFeature。由于测试需用到视图,我们添加了 WindowLayoutInfoPublisherRule,以及 ActivityScenarioRule,两者一起组成了一个测试规则链。在该测试方法中,我们通过 activityRule 获取 Activity,然后创建窗口特性来模拟桌面模式,构建 WindowLayoutInfo 对象并使用 publisherRule 发布该对象。之后,我们可以使用 Espresso 和 JUnit 断言来检查 Activity 在桌面模式下能否正常运行。
private val publisherRule = WindowLayoutInfoPublisherRule()private val activityRule = ActivityScenarioRule (MyActivity: :class.java)@get :Ruleval testRule = RuleChain.outerRule (publisherRule) .around(activityRule)@Testfun testDeviceOpen_TableTop(): Unit = testScope.runBlockingTest {activityRule.scenario.onActivity { activity ->val feature = FoldingFeature (activity, HALF_OPENED, HORIZONTAL)val testWindowInfo = WindowLayoutInfo.Builder( ).setDisplayFeatures (listOf (feature)).build()publisherRule.overrideWindowLayoutInfo(testWindowInfo)}// 编写基于桌面模式的断言}△ 测试折叠状态
界面测试存在一定难度,因为有些测试须在特定设备上进行。为此,Android Studio 正在增加对 Gradle 托管的虚拟设备的支持。您可以使用 7.1 及以上版本的 Android Gradle 插件来体验该功能。
在应用级的 build.gradle 文件中的 testOptions 模块下,指定虚拟设备配置文件,就像您平时在 Android Studio 管理和运行虚拟设备那样。例如,这里使用的是 Pixel C 平板电脑镜像,接下来 Gradle 会创建能够在指定设备上执行测试的目标,甚至还能根据需要下载设备镜像。
android {testoptions {devices {pixelCapi30 (ManagedVirtualDevice) {device = "Pixel C" // 平板电脑设备apilevel = 30systemImageSource = "aosp" // 如需 GooglePlay 服务,使用“google”abi = "x86”}}}}#Gradle target = {device name} + {build variant} + "AndroidTest"./gradlew pixelCapi30debugAndroidTest△ 虚拟设备配置
为便于区分哪些测试是针对哪些设备的,我们将创建自定义注解 LargeScreenTest,并用该注解来标记测试函数。运行前面的 Gradle 命令时,我们会为 AndroidTestRunner 添加一项参数,确保只运行具有此注释的测试。若您不使用注释,也可以使用 TestRunner 的其他过滤选项,比如运行特定类中的测试。将这些特性加以组合,我们可以为测试设置一致运行配置。
annotation class LargeScreenTest@RunWith(AndroidJUnit4: :class)class MyActivityTest {@Test @LargeScreenTestfun largeScreenDeviceTest() {// 在平板电脑设备上测试界面}}# 只运行带有指定注解的测试. /gradlew pixelCapi30debugAndroidTest \-Pandroid.testInstrumentationRunnerArguments.annotation=com.mypkg.LargeScreenTest△ 使用自定义注解为指定设备编写测试
更多信息除了让屏幕上的内容看起来更大之外,大屏幕还带来了一些其他机会,帮助您的应用大放异彩。在多窗口模式下,您的应用可以与其他应用并排使用,除了响应式调整之外,还可以考虑如何让应用在这种模式下发挥更大作用,比如支持拖拽等。这种小功能可以提高用户的工作效率,用户便更乐意使用您的应用。
谷歌发布安卓折叠屏手机应用设计规范
文章插图

△ 多窗口模式效果
多窗口模式
https://developer.android.google.cn/guide/topics/ui/multi-window
除了通过触摸进行交互外,大屏幕设备还支持其他交互形式。设备的屏幕尺寸越大,用户就越有可能使用键盘、手写笔、鼠标、游戏手柄或其他外接设备。如果您想提高应用在这些情况下的易用性,可以计划支持其中一些输入方式,如需了解更多详情,请参阅文章《是时候为各式设备适配完善的输入支持了》。

推荐阅读