编辑: 雷昨昀 2019-07-02
Galaxy Fold 适配|常见问题修改建议 分辨率信息 1.

使用场景一:APP 连续性 可折叠设备展开时,当 前应用页面须无缝延续到另一个屏幕,并 可自动调整大小匹配新的布局,反 之亦然.也 就是说,应 用程序需要准备好在多个屏幕( 不同分辨率、密 度等)之 间切换.适配原则 双屏在切换过程中,APP 不发生Crash/FC(Forced quit)/ANR, 尽量不重启,页面能够适应新的屏幕,不发生内容缺失或布局不对称,切换过程自然流畅不卡顿.问题分类 1-1 Folding layout: 折叠/展 开操作的布局问题1-2 Folding-内容/状 态丢失:折叠/展 开操作时出现的内容/状 态丢失问题1-3 Folding-Crash/FC/ANR: 折叠/展 开操作时出现的Crash/FC/ANR 问题1-1 Folding layout 问题及修改建议 1) 问题描述:从折叠到打开屏幕,APP 页面未布满屏幕,从展开到折叠屏幕,页面显示不全. 修改建议:正确处理运行时配置变更. ? 如果采用系统默认方式处理,即屏幕发生切换时,重启正在运行的Activity( 先后调用onDestroy() 和onCreate()) . 建议在onCreate() 方法中重绘页面,例如可以在屏幕大于sw580 时使用平板模式重绘 (仅为举例,需根据各自业务实际情况调整). ? 如果采用不重启Activity 自行处理的方式,可在Activity 或者fragment 的onConfigurationChanged()方法中,重新获取屏幕的宽高绘制视图. *注意,使用 这种不重启 Activity 的方式,您需要在应用清单manifest 中增加android:configChanges 属性,并至少包含以下配置值:2) 问题描述:进行折叠/展开操作,自定义 View 的位置偏移. 修改建议:屏幕切换后,屏幕宽高发生了变化,如果是自定义的 View,需要在自定义的代码中刷新布 局,重写 onMeasure() 或onDraw() 方法. 1-2Folding C 内容/状态丢失 问题及修改建议 问题描述:例如屏幕发生切换后,摄像头从前置变成了后置;

或者输入的内容丢失等问题. 修改建议: ? 如果采用系统默认方式处理,销毁 Activity 之前,需调用 onSaveInstanceState()来保存应用状 态的数据,并在重新创建时恢复状态. ? 如果采用不重启 Activity,自行处理的方式,可保持原有状态. 在应用清单manifest 中增加android:configChanges 属性及进行配置,在onConfigurationChanged()方法中处理配置变更. 1-3 Folding C Crash/FC/ANR 修改建议:如果采用系统默认方式处理, ? 重新加载资源时不要出现异常调用. ? 重新加载 Activity 时,不要在 OnDestroy()中调用finish()或自行终止进程,否则将导致APP 在设备折叠或展开时关闭.?参考资料 - https://developer.samsung.com/galaxy/foldable/techdocs#app -continuity 2. 使用场景二:Multi-Window Galaxy Fold 支持三个窗口的多任务处理功能, 十分贴合展开后大屏的使用场景, 可带来高效并发的体验. 适配原则 建议APP 支持多窗口,并能正常布局,窗口Switch 或Resize 也能正确布局并且不发生Crash/FC(Forced quit)/ANR, 改变焦点,Switch 或Resize 操作都不会停止播放视频.问题分类 2-1 不支持多窗口2-2 Multi Window layout 2-3 Multi Window-内容/状 态丢失2-4 Multi Window-Crash/FC/ANR 2-5 Stop Playback 2-1 不支持多窗口 建议尽量支持多窗口,声明方法: 声明 resizeableActivity 属性,目的是通知系统该 APP 是否为 Multi-window 做了适配. ? 如果设置为 true,允许进入多窗口模式. ? 如果设置为 false,不允许进入多窗口模式,只允许全屏显示. ? 如果未设置,属性值默认为 true.如果低于 Android N,请参看下文说明. 2-2 Multi Window layout 问题描述:Multi Window 状态下以及进行窗口 Switch, resize 操作时出现的布局问题. 修改建议:正确处理运行时配置变更 ? 如果采用系统默认方式处理,即屏幕发生切换时,重启正在运行的Activity( 先后调用onDestroy()和onCreate()) . 建议在onCreate()方法中重绘页面,例如可以在屏幕大于sw580 时使用平板模式重绘(仅为举例,需根据各自业务实际情况调整). ? 如果采用不重启Activity , 自行处理的方式,可在Activity 或者fragment 的onConfigurationChanged()方法中,重新获取屏幕的宽高绘制视图. ? 如果是自定义的 View,需要在自定义的代码中刷新布局,重写 onMeasure() 或onDraw() 方法. 2-3 Multi Window-内容/状态丢失 问题描述:Multi Window 状态下以及进行窗口 Switch, resize 操作时出现的内容/状态丢失问题. 修改建议: ? 如果采用系统默认方式处理,销毁 Activity 之前,需调用 onSaveInstanceState()来保存应用状 态的数据,并在重新创建时恢复状态. ? 如果采用不重启 Activity,自行处理的方式,可保持原有状态. 在应用清单manifest 中增加android:configChanges 属性及进行配置,在onConfigurationChanged()方法中处理配置变更. 2-4 Multi Window-Crash/FC/ANR 修改建议:如果采用系统默认方式处理, ? 重新加载资源时不要出现异常调用. ? 重新加载 Activity 时,不要在 OnDestroy()中调用finish()或自行终止进程,否则将导致APP 在设备折叠或展开时关闭.2-5 Stop Playback 问题描述:在切换到 Multi Window 状态下焦点发生变化/Switch/Resize 时视频停止播放. 修改建议: ? 播放视频的 Activity 不要在其 onPause()中暂停视频,建议在 onStop()中处理暂停,在onStart()中 播放. ? 在Android P 中,应用可以增加支持 Multi-resume 属性,支持以后,在多窗口中的应用都会处于 Resume 状态,而非 pause 状态. ? 参考资料 - https://developer.android.com/training/multiscreen/screensizes - https://developer.android.com/training/multiscreen/screendensities - https://developer.android.com/guide/topics/ui/multi-window - https://developer.android.com/guide/topics/resources/runtime-changes - https://developer.samsung.com/galaxy/foldable/techdocs#multi-resume 3. 使用场景三:双屏独立使用 适配原则 建议APP 支持最大纵横比,内外屏都能完整显示,内屏显示时,需要正确适配L-Cut( L 型缺口的摄像头区域).问题分类 3-1 Max aspect ratio 3-2 DisplayCutout 3-1 Max aspect ratio 问题描述:APP 在21:9 的外屏上不能满屏显示. 适配建议:APP 支持最大纵横比,有三种方式: 3-2 DisplayCutout 页面内容被 L 型缺口遮挡问题 修改建议: ? UI 页面需按照 Android P DisplayCutout 标准接口进行优化. ? 应避免页面布局对 Status Bar 使用了硬编码. ? 基于 Window 而非 Screen 获得坐标. ? Activity 非全屏显示时,无内容区域背景建议设置为非透明. ? 参考资料 - https://developer.android.com/guide/practices/screens-distribution#Max AspectRatio - https://developer.android.com/guide/topics/display -cutout/ - https://developer.samsung.com/galaxy/foldable/techdocs#other - http://support-cn.samsung.com/App/DeveloperChina/Notice/Detail?Notic eId=86 收集反馈 如果您:适配过程中遇到了技术问题,对可折叠设备有自己的畅想、建议、意见…欢迎发邮件到:rdtpservice@samsung.com 邮件主题:三星Foldables+APP 名感谢您的关注和参与!您还可登录三星中国开发者网站:三星中国开发者网站 | 中国三星电子 或关注"三星开发者"公众号查看相关开发者指引.

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题