三星折叠屏开发者设计指南揭秘,2021 年互联网大厂 Android 笔经
每当发生配置更改时,Android 默认情况下会重启正在运行的 Activity(先后调用 onDestroy()和 onCreate())。目的是使用与新设备匹配的备用资源自动重新加载您的应用。当 Activity 重启时,恢复之前的状态很重要。在销毁 Activity 之前,可以调用 onSaveInstanceState()来保存应用状态的数据;之后在 onCreate()或 onRestoreInstanceState()中恢复 Activity 状态。不要在活动的 OnDestroy()中调用 finish()或自行终止进程,否则将导致 APP 在设备折叠或展开时关闭。
1.2??运行时系统变更 - 自行处理?如果因性能限制等因素希望在不自动重启 Activity 的情况下处理配置更改,您需要在应用清单 manifest 中增加 android:configChanges 属性,并至少包含以下配置值:

当指定的属性(可折叠设备的折叠/展开时触发)发生变化时,MyActivity 不会重启,而是会收到 onConfigurationChanged()的调用,在此方法中处理配置变更,更新视图布局、重新加载资源。通过此方法即能实现在系统不重启 Activity 的情况下重置 UI。
1.3? 参考资料?
请参阅 Android 开发者指南中的详细信息 – 运行时配置变更:
https://developer.android.google.cn/guide/topics/resources/runtime-changes
三星开发者网站:
https://developer.samsung.com/galaxy/foldable/techdocs#app-continuity
2. Multi-resume:
应用多开,引人入胜
“手机一秒变平板”,屏幕物理尺寸的变大,多窗口分屏预计将成为可折叠手机最常用的功能之一。而 Multi-resume 就是为了让多窗口分屏的体验更佳而出现的。
2.1 什么是 Multi-resume
谷歌在 Android 7.0 时代便支持了多窗口分屏功能,即多个应用可同时共享屏幕,但问题是多个应用无法同时使用,只有具有焦点的应用才能保持在活动(resume)状态,其它应用会暂停运行。
从 Android P (9.0) 开始,谷歌提供了名为 Multi-resume 的新功能,允许设备厂商在多窗口模式下保持所有可见应用处于活动状态,解决了分屏的多个应用仅有一个能保持活动状态的问题。
谷歌拟在下一个版本 Android Q 优化该功能的兼容性,Multi-resume 有望成为必选行为。

2.2 APP 如何在 Multi-resume 运行
在 Android P (9.0)中启用 Multi-resume,请在应用清单 manifest 中增加如下元数据:

3.?更多指引:布局优化,面面俱到
3.1?最大纵横比
三星可折叠设备外屏将具有长纵横比(21:9),请确保您的应用程序支持长纵横比。
详细适配方法请参考:
3.2 优化内外屏布局
可折叠移动设备中,应用程序可以运行在大小不同的显示屏幕中,我们首先建议添加一个单独的资源文件夹来展示更丰富更清晰的内容。
优化方法包括灵活布局、备用布局、可拉伸图片等方式:
-?灵活布局,确保布局的调整适应屏幕尺寸的变化,核心原则是避免对界面组件的位置和大小硬编码,可使用”wrap_content”和”match_parent”尺寸值来代替硬编码尺寸;使用 RelativeLayout 根据组件之间的空间关系指定布局。
-?备用布局,Android 允许应用针对不同屏幕配置提供多种备选布局。可以利用配置限定符实现此目的,它允许系统根据当前配置(如针对不同屏幕尺寸的不同布局设计)自动选择合适的资源。
例如:单窗格(默认)布局:res/layout/main.xml
双窗格布局:res/layout-large/main.xml?(目录名称中的 large 为限定符)
-?可拉伸图片,由于布局可拉伸以适应不同的屏幕,附加在视图之上的位图也应可拉伸。但朝任意方向拉伸普通位图可能导致缩放失真或图片倾斜,解决方案是使用九宫格位图,这种特殊格式的 PNG 文件可指定可拉伸的小像素区域,哪些区域不可拉伸。
-?详细资料请参考:https://developer.android.com/guide/practices/screens_support
3.3 显示屏配置参考

3.4 Foldable 模拟器测试
模拟器:
FoldableEmulator_1.0.1.apk? ?
Version:1.0.1
下载地址:
https://developer.samsung.com/galaxy/foldable#essentials
仿真测试方法

1. 应用连续性
应用连续性是折叠屏手机的一大亮点,当在外屏和内屏之间切换时,应用保持运行状态,并会自动调整大小以匹配新的布局。
开发过程中可使用 AVD Manager 调试应用连续性,进行屏幕布局改变的测试。AVD Manager(Android Virtual Device Manager)是 Android 虚拟驱动管理器,主要用来创建安卓模拟器。该模拟器可在 Android Studio 和 Android 平板电脑里运行。
2. 如何使用 AVD
1)进入 Android Studio-> AVD Manager
Google 官网下载地址:
https://developer.android.google.cn/studio/install
2)创建虚拟设备

3)选择设备
平板电脑> Nexus 10

4)选择系统镜像
可选择 Android9.0 开源项目镜像(可下载)

或者选择 Android 9.0 Google 镜像(可下载)

5)配置方法
选择 Portrait,其他使用默认值

6)运行 AVD

3. 如何安装运行折叠屏模拟器
1)下载折叠屏模拟器:
FoldableEmulator_1.01.apk
可进入下面的网页进行下载:
https://developer.samsung.com/galaxy/foldable/test
2)安装折叠屏模拟器

安装后,从应用列表中打开应用程序“可折叠模拟器
《Android 学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享
”。
3)权限授予

最后
由于文章篇幅原因,我只把面试题列了出来,详细的答案,我整理成了一份 PDF 文档,这份文档还包括了还有?高级架构技术进阶脑图、Android 开发面试专题资料,高级进阶架构资料 ,帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习。
评论