idea文件夹的展开与折叠_三星折叠屏开发者设计指南揭秘

718cda5f42217aab6755f27b8c6e019e.png

点击图片,马上抢位!

开发者的设计指南

备受瞩目、科幻色彩十足的

三星可折叠移动设备

即将在几个月后来到用户手中,

谷歌也在去年11月初宣布

Android将对折叠屏设备提供原生支持。

面对全新的显示技术,

跃跃欲试的开发者们做好准备了吗?

从整体了解折叠屏手机的主要功能和变化!

ae48f8e3607dbcb3feb5ea3d2fee4822.png

在可折叠设备上提供出色的用户体验,首要确保您的应用程序已准备好两件事:

其一,可在两个屏幕之间无缝切换;

其二,在多窗口模式下处于活动状态。

d0f24863b54809cb19e3b53cdc162eea.png

1. APP连续性:展折开合,顺畅切换

可折叠设备展开时,当前应用页面必须无缝延续到另一个屏幕,并可自动调整大小匹配新的布局,反之亦然。也就是说,应用程序需要准备好在多个屏幕(不同分辨率、密度等)之间切换。

f3a0aae4c6dd65f8c646a73cc4dde19b.png

对于APP连续性,谷歌提供了屏幕连续性可应对这类需求。

 1.1 运行时配置变更 - 系统默认 

折叠/展开的操作过程将触发系统向应用发送新布局的配置更改,包括smallestScreenSize, screenSize 和 screenLayout 的配置。

b0f681d7ec9d55fc5fc0dca19a905cd9.png

每当发生配置更改时,Android默认情况下会重启正在运行的Activity(先后调用onDestroy()和onCreate())。目的是使用与新设备匹配的备用资源自动重新加载您的应用。 当Activity重启时,恢复之前的状态很重要。在销毁Activity之前,可以调用onSaveInstanceState()来保存应用状态的数据;之后在onCreate()或onRestoreInstanceState()中恢复Activity状态。 不要在活动的OnDestroy()中调用finish()或自行终止进程,否则将导致APP在设备折叠或展开时关闭。  1.2  运行时系统变更 - 自行处理 

如果因性能限制等因素希望在不自动重启Activity的情况下处理配置更改,您需要在应用清单manifest中增加android:configChanges属性,并至少包含以下配置值:

f839d32aaa007d6e09b1e6163abef3af.png

当指定的属性(可折叠设备的折叠/展开时触发)发生变化时,MyActivity不会重启,而是会收到 onConfigurationChanged()的调用,在此方法中处理配置变更,更新视图布局、重新加载资源。通过此方法即能实现在系统不重启Activity的情况下重置UI。

 1.3  参考资料 

1) 请参阅Android开发者指南中的详细信息 – 运行时配置变更:

https://developer.android.google.cn/guide/topics/resources/runtime-changes

2) 三星开发者网站:

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有望成为必选行为。

065c3f58f0618718863cffc6a056733c.png

 2.2 APP如何在Multi-resume运行 

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

3a518a950c86fc7160bbcbb3fbff25ce.png

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 显示屏配置参考 

3161d4325411a602bda554c145defdab.png

 3.4 Foldable模拟器测试 

- 模拟器:

FoldableEmulator_1.0.1.apk   

Version:1.0.1

- 下载地址:

https://developer.samsung.com/galaxy/foldable#essentials

仿真测试方法

615fe046b790639439307b33b17ceb01.png

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)创建虚拟设备

4a4fa3879a9fe4e0a309351849bbfa0b.png

3)选择设备

  • 平板电脑> Nexus 10

ef202fabc88ba27e9ad4455b31b1fd7e.png

4)选择系统镜像

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

743c343e6f68b16677c9e28215f1ce4d.png

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

09a6371ba67174f8f4d63922117fb675.png

5)配置方法

  • 选择Portrait,其他使用默认值

2198d86cf3fdcc7b5564701df3d0cec5.png

6)运行AVD

0456e73dc6f0f790f3b27394822788ac.png

3. 如何安装运行折叠屏模拟器

1)下载折叠屏模拟器:  

FoldableEmulator_1.01.apk 

可进入下面的网页进行下载:

https://developer.samsung.com/galaxy/foldable/test

2)安装折叠屏模拟器

84e8db9fe464a78fda7d404d0b74bf39.png

  • 安装后,从应用列表中打开应用程序“可折叠模拟器”。

3)权限授予

67ea76f75c42282234a548a9117f101d.png

  • “SYSTEM_ALERT_WINDOW”权限也可以在activity中授予,在应用程序启动时显示,无需使用上述命令授予。

4)仿真方法

f6bb897ff6adac3622ad0be31ab437d3.png

4. 多活动窗口

当手机展开时,用户可以同时运行两到三个APP,可在任意Samsung Android 9.0设备上通过元数据方式测试多活动窗口。

  • 在AndroidManifest中声明元数据

    caca5b881abec958b3b75ab8e85eeab8.png

  • 在多窗口模式下运行您的应用程序

  • 通过点击其他应用将焦点从第一个应用移动到另一个应用

  • 检查应用程序是否仍处于resumed状态

  • 当您的应用意外丢失资源(例如相机)时,检查应用是否有任何意外行为

5. 测试用例

下面的测试用例包括应用程序连续性和多活动窗口的场景,可作为应用测试用例的补充。

6f2ba77cd671226a8e4ee44da0712c9e.png

653bf794a6d606fd526383dda2a6f56c.png

往期精彩回顾

双面OLED的vivo NEX手机屏幕测评报告

三星AMOLED可折叠屏手机真来了(内含直播视频)

LG可折叠手机Q3上市!

98ba4650b400f64849901b911419a132.png OLEDindustry

↓↓ 可以畅聊到天亮的行业技术群!你要不要来?↓↓

 管理员微信:OLEDindustry2

添加管理员微信 > 入群 > 尽情畅聊探讨
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值