将 Android 应用引入 Surface Duo
在本部分中,我们将讨论一些方法,这些方法用于在双屏上测试应用,并增强该应用以充分利用 Surface Duo 提供的屏幕和姿势。
默认情况下,Android 应用将在 Surface Duo 的单个屏幕上运行,就像它在任何 Android 设备上运行一样。 然而,双屏和灵活的姿势为应用脱颖而出创造了新的机会。它们还使你的客户能够以你意想不到的新方式使用你的应用。
要将应用引入 Surface Duo 中,需要遵循三个主要步骤:
- 测试应用 - 使用 Duo 仿真器来确保其正常运行。
- 进行增量更改 - 使用 Android 本机 API 和库,这样即使在单屏幕模式下并行运行,你的应用也能更好地在双屏设备上运行。
- 新功能 - 使用 Surface Duo 预览版 SDK 和双屏应用模式,利用 Surface Duo 提供的新功能。
步骤 1:测试应用
使用 Surface Duo 仿真器测试应用。 默认情况下,它将作为单屏幕体验运行。
在仿真器中,在“设置”中启用自动旋转。 在仿真器中旋转设备时,将应用从左屏幕移动到右屏幕,继续测试应用。
如果遇到任何问题,请确保遵循可调整大小屏幕上的 Android 指南,并确保已设置 android:resizeableActivity="true"
。 有关详细信息,请参阅 developer.android.com 上的为可折叠设备生成应用。
步骤 2:进行增量更改
当应用在双屏设备上运行时,以下一些更改可增加它的价值。 由于这些更改使用 Android 本机 API 和库,因此在其他外形规格的设备上,它们也对你的应用有好处。
如果应用中尚没有这些功能,请考虑将它们添加到应用中。
处理所有设备方向和姿势
移除特定的 UX 方向“锁定”并支持所有设备姿势。
添加拖放支持
拖放允许用户在应用的各个部分之间或在两个屏幕上的不同应用之间轻松共享数据。
按照 develop.android.com 上的拖放指南,在应用中实现拖放。 使用拖放示例,了解其工作原理。
添加多实例支持
添加多实例支持,使用户可以使用两个实例运行应用,每个屏幕上一个实例。
添加画中画支持
按照 develop.android.com 上的指南,在应用中实现画中画支持。
在另一个窗口中启动新活动
在双屏设备上,在第二个屏幕上启动新活动是很自然的事情。 使用意向标志 FLAG_ACTIVITY_LAUNCH_ADJACENT
向系统提供执行此操作的提示。
有关该标志的详细信息,请参阅 developer.android.com 上的以多窗口模式启动新活动。 使用第二个屏幕的启动意向示例,了解其工作原理。
步骤 3:采用新功能
这就是神奇的地方;你现在有更多的屏幕空间来展示你的应用。 双屏 API 内置在仿真器的 Surface Duo 映像中,因此你可以使用自己的应用或我们的一个示例来试用它们。
在应用中,首先确定应用是否正在双屏设备上运行。 这允许你跨不同的设备使用相同的代码 - Surface Duo 没有单独的应用版本。 当应用在双屏设备上运行时,你可使用 SDK 中的双屏 API 来增强应用。
扩展应用
跨两个屏幕扩展应用,检查端到端用户体验。
- 接缝是否覆盖关键应用内容?
- 中间是否有按钮?
- 是否需要重新定位布局中的内容?
考虑铰链角度
可使用铰链角度传感器获取有关铰链角度的信息。 考虑应用(可能是一款游戏或一个实用工具/电源应用)是否可使用该铰链角度为用户提供价值。
使用双屏应用模式
我们已经确定了多个双屏应用模式,你可以通过它们使用两个屏幕。 想想哪种应用模式适合你的应用和用户。 我们提供了示例以演示每种模式。 在仿真器中试用这些模式,并使用代码了解如何实现每种模式。
下面是适用于这些应用模式的一些设计注意事项和提示。
- 确保应用工具栏可识别掩码。
- 扩展画布示例
- 提供默认选定项,否则右侧屏幕将显示为空。
- 还要考虑在将设备旋转为横向双屏时会发生什么情况。 它是否将大纲-细节流保留在上下屏幕上? 建议两个屏幕都用于细节视图,因为有更多的屏幕空间可以读取内容。
- 列表 - 细节示例
- 考虑如何针对分页配置轻扫操作。 你是像看幻灯片一样从第 1-2 页移到第 2-3 页,还是像看书一样从第 1-2 页翻到第 3-4 页?
- 双页示例
- 此模式使用两个不同的视图显示相同的数据,因此确保在一个屏幕上更改项目时,另一个屏幕反映该更改并保持内容同步。
- 双视图示例
- 你可根据设备方向更改控件的布局,并且对于控件以纵向双屏姿势显示在右屏幕上与以横向双屏姿势显示在底屏幕上的情况,你可拥有不同的视图。
- 伴侣窗格示例
突显你的工作
你希望让客户知道,你的应用针对双屏设备进行了增强。 下面这些想法值得考虑。
- 更新网站或在线商店页面以反映双屏体验。
- 提供应用中的首次运行体验以及针对双屏功能的探索 UX。
- 考虑连接到 Microsoft 服务(例如 Microsoft Graph)以获得用户见解。