开发者的设计指南
image.png
image
在可折叠设备上提供出色的用户体验,首要确保您的应用程序已准备好两件事:
其一,可在两个屏幕之间无缝切换;
其二,在多窗口模式下处于活动状态。
image
可折叠设备展开时,当前应用页面必须无缝延续到另一个屏幕,并可自动调整大小匹配新的布局,反之亦然。也就是说,应用程序需要准备好在多个屏幕(不同分辨率、密度等)之间切换。
image
对于APP连续性,谷歌提供了屏幕连续性可应对这类需求。
1.1 运行时配置变更 - 系统默认
折叠/展开的操作过程将触发系统向应用发送新布局的配置更改,包括smallestScreenSize, screenSize 和 screenLayout 的配置。
image
每当发生配置更改时,Android默认情况下会重启正在运行的Activity(先后调用onDestroy()和onCreate())。目的是使用与新设备匹配的备用资源自动重新加载您的应用。 当Activity重启时,恢复之前的状态很重要。在销毁Activity之前,可以调用onSaveInstanceState()来保存应用状态的数据;之后在onCreate()或onRestoreInstanceState()中恢复Activity状态。 不要在活动的OnDestroy()中调用finish()或自行终止进程,否则将导致APP在设备折叠或展开时关闭。
1.2 运行时系统变更 - 自行处理 如果因性能限制等因素希望在不自动重启Activity的情况下处理配置更改,您需要在应用清单manifest中增加android:configChanges属性,并至少包含以下配置值:
image
当指定的属性(可折叠设备的折叠/展开时触发)发生变化时,MyActivity不会重启,而是会收到 onConfigurationChanged()的调用,在此方法中处理配置变更,更新视图布局、重新加载资源。通过此方法即能实现在系统不重启Activity的情况下重置UI。
1.3 参考资料
https://developer.android.google.cn/guide/topics/resources/runtime-changes
https://developer.samsung.com/galaxy/foldable/techdocs#app-continuity
“手机一秒变平板”,屏幕物理尺寸的变大,多窗口分屏预计将成为可折叠手机最常用的功能之一。而Multi-resume就是为了让多窗口分屏的体验更佳而出现的。
2.1 什么是Multi-resume
谷歌在Android 7.0 时代便支持了多窗口分屏功能,即多个应用可同时共享屏幕,但问题是多个应用无法同时使用,只有具有焦点的应用才能保持在活动(resume)状态,其它应用会暂停运行。
从 Android P (9.0) 开始,谷歌提供了名为Multi-resume的新功能,允许设备厂商在多窗口模式下保持所有可见应用处于活动状态,解决了分屏的多个应用仅有一个能保持活动状态的问题。
谷歌拟在下一个版本 Android Q优化该功能的兼容性,Multi-resume有望成为必选行为。
image
2.2 APP如何在Multi-resume运行
在Android P (9.0)中启用Multi-resume,请在应用清单manifest中增加如下元数据:
image
3.1 最大纵横比
三星可折叠设备外屏将具有长纵横比(21:9),请确保您的应用程序支持长纵横比。
详细适配方法请参考:
3.2 优化内外屏布局
可折叠移动设备中,应用程序可以运行在大小不同的显示屏幕中,我们首先建议添加一个单独的资源文件夹来展示更丰富更清晰的内容。
优化方法包括灵活布局、备用布局、可拉伸图片等方式:
例如:单窗格(默认)布局:res/layout/main.xml
双窗格布局:res/layout-large/main.xml (目录名称中的large为限定符)
3.3 显示屏配置参考
image
3.4 Foldable模拟器测试
FoldableEmulator_1.0.1.apk
Version:1.0.1
https://developer.samsung.com/galaxy/foldable#essentials
仿真测试方法
image
应用连续性是折叠屏手机的一大亮点,当在外屏和内屏之间切换时,应用保持运行状态,并会自动调整大小以匹配新的布局。
开发过程中可使用AVD Manager调试应用连续性,进行屏幕布局改变的测试。AVD Manager(Android Virtual Device Manager)是Android虚拟驱动管理器,主要用来创建安卓模拟器。该模拟器可在Android Studio 和 Android平板电脑里运行。
1)进入Android Studio-> AVD Manager
Google官网下载地址:
https://developer.android.google.cn/studio/install
2)创建虚拟设备
image
3)选择设备
image
4)选择系统镜像
image
image
5)配置方法
image
6)运行AVD
image
1)下载折叠屏模拟器:
FoldableEmulator_1.01.apk
可进入下面的网页进行下载:
https://developer.samsung.com/galaxy/foldable/test
2)安装折叠屏模拟器
image
3)权限授予
image
4)仿真方法
image
当手机展开时,用户可以同时运行两到三个APP,可在任意Samsung Android 9.0设备上通过元数据方式测试多活动窗口。
image
下面的测试用例包括应用程序连续性和多活动窗口的场景,可作为应用测试用例的补充。
image