小米大屏设备适配说明4
5.4.1 如何支持分屏
支持分屏的方式非常简单,只需要声明一个属性。从 7.0 开始,Android 新增了一个 Activity 属性: resizeableActivity ,以声明该 Activity 是否支持多窗口显示。
android:resizeableActivity=["true" | "false"]
如果这个属性设为 true ,Activity 就可以在分屏模式下显示;设为 false ,Activity 则不会在分屏模式下显示,而是会占满整个屏幕。因此开发者可以根据具体场景,仅让部分 Activity 支持分屏。
若开发者没有为 Activity 声明该属性,Android 会根据应用的 targetSDKVersion 及 Activity 的 screenOrientation 属性来综合判断是否可以在分屏显示。关于判断的详细逻辑,可以参考官方文档:Configuring Your App for Multi-Window Mode。
5.4.2 如何进一步优化分屏模式
配置 resizeableActivity 的属性,是适配分屏的最简单方式,但如果想要提供更好的使用体验,需要开发者做一定优化工作。下面是我们了解到的一些案例(测试机型:Nexus 6 Andriod 7.1),开发者可以根据自己的业务需求,做不同程度的优化。
5.4.3 减少不可滑动的页面/控件
在分屏过程中,屏幕高度只有原来的一半,如果有太多的控件不响应滑动事件,那么用户将无法上下滚动应用页面,甚至无法进行下一步操作。这类页面,最常见于Splash screen、登录注册页、音乐播放页、大图区域、弹窗等。
由于用户可以自由调整分屏的窗口比例,因此开发者只要减少了不可滑动的控件,分屏的可用性就会大大提高,是性价比非常高的优化方案。
5.4.4 尽可能使用相对位置,以兼容多种窗口尺寸
分屏时,屏幕的高度和宽度会发生变化,因此在书写控件布局时,尽量使用相对位置,以避免窗口大小改变时,控件无法显示或显示不全。这也是一种性价比很高的优化方案,可以保证用户在分屏时能正常使用应用。
5.4.5注意多窗口下 Activity 的生命周期
视频、直播等类别的应用需要特别关注这一点。Android 7.0 在分屏时会同时运行两个应用,其中用户最后操作的那个应用会处于 Resumed 状态,另一个则会处于 Paused 状态。
这会带来一些问题,以视频应用为例,如果开发者在 onPaused 中处理视频的 「暂停/播放」,那在分屏时,就会因为用户操作另一个应用,导致视频停止播放。因此我们建议开发者在 onStart/onStop 中处理视频的「暂停/播放」,或者特殊处理分屏时的 Paused 状态。详见官方文档:Multi-Window Lifecycle。
5.4.6处理 Configuration Changes
由于分屏过程中,允许用户调整窗口的大小,这就会导致 Configuration 的改变。Android 的默认处理方式是 relaunch 整个 Activity,从而出现页面闪一下的问题。如果想避免闪一下的问题,建议开发者自己处理 Configuration 的变化。
5.4.7给内容更多空间
分屏后,屏幕空间变得非常小了,为了给内容让出更多空间,应尽量减少常驻控件。一种解决办法是在浏览内容时,隐藏底部tab等常驻控件,用户回滚时再出现,以展示更多的内容。
5.4.8为分屏定制新的布局(动态布局)
动态布局指根据当前的窗口大小,重新调整页面的布局。这是一项锦上添花的优化项,开发者可以酌情考虑是否添加此优化。
5.4.9 MIUI 分屏支持哪些设备
搭载 Android 7.0 或以上的 MIUI 手机均支持分屏。MIUI 也将尝试将分屏移植至 Android 6.0。因此将有数千万的新老设备支持分屏。
5.4.10 分屏如何调试
MIUI 的分屏方案完全兼容 Android 7.0,因此可以在任意运行 Android 7.x 的设备上调试,无需为 MIUI 作特别处理。同时,以上提到的案例均能在任意 Android 7.x 设备复现。调试过程中,建议开启以下设置项:「开发者选项 > 强制将活动设为可调整大小」,然后重启手机,之后系统就会强制应用进入分屏模式,以方便开发者观察应用在分屏时的表现。
6、开发与测试方式
6.1 模拟器调试
1)小米折叠屏可以在Android Studio里面选择模拟折叠设备进行参照:
2)平板设备可以在Android Studio里面选择模拟平板设备进行参照:
6.2 命令模拟调试
1)可以通过如下adb命令来模拟小米MIX FOLD 2折叠屏手机切换折叠和展开的状态:
//切换到展开状态
adb shell wm size 1914×2160
//切换到折叠状态
adb shell wm size 1080×2520
2)可以通过如下adb命令来切换到平板设备的分辨率,例如:
//切换到2560×1600分辨率
adb shell wm size 1600×2560
6.3 云测平台真机测试
可以使用 小米云测平台:
以折叠屏为例,点击小米 MIX Fold 2机器,进入以下页面:
右侧可以上传app软件自动生成知乎apk文件,左侧真机可以实时操作
6.4 测试用例建议
6.4.1 用例1
在折叠屏的展开态下打开应用,应用的界面显示正常
1.测试步骤
(1)在折叠屏展开时,打开应用,观察各个页面的显示情况;
2.预期结果
(1)应用的所有页面均显示正常,没有任何变形、截断、模糊、缺失等问题;
6.4.2 用例2
在折叠屏的折叠态下打开应用,应用的界面显示正常
1.测试步骤
(1)在折叠屏折叠时,打开应用,观察各个页面的显示情况;
2.预期结果
(1)应用的所有页面均显示正常,没有任何变形、截断、模糊、缺失等问题;
6.4.3 用例3
在折叠屏的展开态下打开应用,应用的界面功能交互正常
1.测试步骤
(1)在折叠屏展开时,打开应用,依次点击各个页面的按钮;
2.预期结果
(1)应用的所有页面按钮均可以正常响应,没有任何无反应/crash/anr等问题;
6.4.4 用例4
在折叠屏的展开态和折叠态之间切换时,应用的界面显示和功能交互均正常
1.预制条件:应用已经适配了连续性
2.测试步骤
(1)在折叠屏展开时,打开应用;
(2)切换到折叠态,观察页面显示是否正常;
(3)点击页面的各个按钮,观察功能交互是否正常;
(4)在折叠态下打开应用;
(5)切换到展开态,观察页面显示是否正常;
(6)点击页面的各个按钮,观察功能交互是否正常。
3.预期结果
(1)应用在状态切换过程中,没有任何页面闪退重启、变形、截断、模糊、缺失等问题;
(2)应用界面的所有按钮功能均交互正常。
6.4.5 用例5
在分屏模式下,应用的界面显示和功能交互均正常
1.预制条件:应用支持分屏
2.测试步骤
(1)打开应用,进入分屏模式;
(2)观察页面显示是否正常;
(3)点击页面的各个按钮,观察功能交互是否正常。
3.预期结果
(1)应用在分屏模式下,没有任何页面变形、截断、模糊、缺失等问题;
(2)应用界面的所有按钮功能均交互正常。
6.4.6 用例6
进入应用的小窗模式,应用的界面显示和功能交互均正常
1.预制条件:应用支持小窗
2.测试步骤
(1)进入应用的小窗模式;
(2)观察页面显示是否正常;
(3)依次点击各个页面的按钮,观察功能交互是否正常。
3.预期结果
(1)应用在小窗模式下,没有任何页面变形、截断、模糊、缺失等问题;
(2)应用的所有页面按钮均可以正常响应,没有任何无反应/crash/anr等问题;
编辑:yimen,如若转载,请注明出处:https://www.yimenapp.com/kb-yimen/12647/
部分内容来自网络投稿,如有侵权联系立删