Android NDK开发详解大屏设备之大屏幕使用入门


大屏设备可为您提供更多应用开发机会。平板电脑、可折叠设备和 ChromeOS 设备配备的大屏幕可以展示内容,提升多任务处理效率,并实现在小屏幕上无法实现的界面。

如要开始进行大屏设备开发,请参阅大屏设备应用质量指南。该指南全面讲述了需遵守的要求,旨在帮助您让应用在大屏设备上提供绝佳的体验。

质量指南分为三个等级:支持大屏设备、针对大屏幕优化、成为与众不同的大屏设备应用。您可从“支持大屏设备”开始,逐步完成各个等级,向应用中添加适合大屏设备的功能。如果您已有应用,请使用质量指南测试来确定您的应用目前达到的等级,然后逐级实现相关功能,最终将您的应用打造成与众不同的大屏设备应用。

支持大屏设备

当用户能够在大屏设备上使用您应用的所有功能时,应用就已“支持大屏设备”。在这个等级,应用必须支持竖屏和横屏以及多窗口模式,但应用布局和界面可能不太理想。

配置和连续性

诸如设备旋转、多窗口模式下的窗口大小变化、可折叠设备的折叠或展开等配置变更,可能会导致用户丢失上下文,更糟的情况下甚至会丢失数据。

请确保您的应用能够在配置变更期间保留并恢复状态,并继续执行持续进行的进程(例如媒体播放)。

如需了解详情,请参阅以下开发者指南:

处理配置变更
保存界面状态

多窗口模式

在大屏设备上,多窗口模式更易于使用且更高效。让您的应用能够在多窗口模式(如分屏模式或自由窗口模式)下与其他应用一起运行。

当您的应用处于多窗口模式时,请使用 WindowMetrics API 准确地确定应用窗口的大小。

请参阅多窗口支持。

多项恢复
在 Android 10(API 级别 29)及更高版本中,当设备处于多窗口模式时,未获得焦点的 activity 会保持 RESUMED 状态。在低于 Android 10 的版本中,未获得焦点的 activity 会保持 STARTED 状态,但不会保持 RESUMED 状态。

请确保您的应用支持多项恢复模式,即当应用不是获得焦点的应用时,仍能继续执行持续进行的进程(例如媒体播放或文件下载)。此外,您的应用还必须处理失去设备摄像头和麦克风等独占性资源的问题。

请参阅多窗口模式支持中的多窗口模式生命周期。

相机预览

如果您的应用提供相机预览,请验证在大屏设备上的屏幕方向和宽高比的预览效果。屏幕方向为纵向的大屏可折叠设备可以有横向宽高比;当设备处于横屏模式时,多窗口模式可以在可调整大小的窗口中纵向显示应用。

请参阅以下内容:

相机预览
CameraX 概览

媒体投影

媒体投影会根据真实(来源)显示屏的边界创建虚拟显示屏。真实显示屏是指整个设备屏幕,即使设备处于多窗口模式而创建媒体投影的应用在一个窗口中运行也是如此。

如要获得大屏幕媒体投影的正确边界,请使用 Android 11(API 级别 30)中引入的 WindowMetrics API;或者,如果要向下兼容到 API 级别 14,请使用 Jetpack WindowManager WindowMetrics API。

请参阅大屏设备上的媒体投影。

针对外部输入设备提供基本支持

用户通常会将外部键盘或鼠标连接到平板电脑。Chromebook 带有内置键盘和触控板。请让您的应用能够处理如下键盘、鼠标和触控板操作,以支持外部输入设备:

选择按钮、输入字段和导航图标
选择菜单项、单选按钮、复选框和文本
在可滚动元素(例如列表)中垂直和水平滚动
请参阅大屏幕上的输入兼容性。

针对大屏幕优化

当您的应用针对大屏设备进行优化后,便可提供沉浸式、高效且有吸引力的用户体验,让用户喜欢在大屏设备上使用您的应用。

响应式/自适应布局

为了支持各种尺寸的屏幕,请设计在各种设备上都能提供出色用户体验的响应式/自适应布局。

首先,请熟悉以下内容:

Material Design - 了解布局
支持不同的屏幕尺寸
窗口大小类别
窗口大小类别是一组预定义的视口断点,有助于您实现响应式/自适应设计。请使用窗口大小类别将可供您的应用使用的显示区域分类为较小、中等或较大,然后采用经过优化的布局。

请参阅支持不同的屏幕尺寸中的窗口大小类别。

自适应应用导航
在小屏幕上,底部导航栏的使用效果很好,但在大屏幕上,侧边导航栏或抽屉式导航栏可以更好地利用增加的屏幕空间。请根据屏幕尺寸的变化调整应用导航。

请参阅 Material Design 网站中的应用布局。

响应式界面元素
根据屏幕尺寸设置界面元素格式。对于会占据小屏幕整个宽度的按钮、卡片和文本字段,请限制这些元素的宽度,使其在大屏设备上具有能让功能正常运行的尺寸。请勿让对话框和其他模态窗口填满整个屏幕。让上下文菜单和与元素相关的其他弹出式窗口显示在用户所选的元素旁边,而不要在屏幕上居中显示。

请参阅 Material Design 网站中的组件,包括按钮、文本字段、菜单和对话框。

无障碍

您可以通过无障碍 (a11y) 功能(例如通过 Tab 键和箭头键进行导航)优化您的应用,为常用操作(例如选择、复制、剪切和粘贴)提供键盘快捷键。您还可实现通过键盘控制媒体播放;例如,使用空格键控制播放和暂停媒体,或者使用 Enter 键在通信应用中发送消息。

请参阅构建无障碍功能更出色的应用。

增强对外部输入设备的支持

针对大屏设备优化的应用增强了对键盘、鼠标和触控板输入的支持。用户可通过鼠标和触控板右键点击行为来访问选项菜单,还可以使用鼠标滚轮和在触控板上做双指张合手势来缩放应用内容。界面元素具有悬停状态。

成为与众不同的大屏设备应用

与众不同的大屏设备应用会从应用商店中众多应用里脱颖而出。与众不同的应用提供的用户体验,是小屏设备无法比拟的。

注意:应用与众不同的方式各异。您可实现适合您的应用的要求。

多任务处理

大屏幕可为多任务处理提供方便。多窗口模式支持多任务处理,但特殊的显示模式(画中画和多实例)也能达到相同的效果。

画中画模式
如果您的应用需要播放视频内容,请实现画中画模式,以便您的应用在用户与其他应用互动时可以继续播放视频。

请参阅对画中画 (PiP) 的支持。

多实例模式
同时运行应用的两个或以上实例,可以提高应用(如文档编辑器或内容管理器)的效率。

请参阅多窗口模式支持中的多实例。

可折叠设备

大屏可折叠设备就像是手机和平板电脑合二为一。桌面折叠状态和图书折叠状态等折叠功能让打造全新用户体验成为可能。因此,支持可折叠设备的独有功能可以让您的应用脱颖而出。

请参阅以下内容:

了解可折叠设备
让应用可感知折叠
在可折叠设备上测试应用

拖放

大屏幕非常适合进行应用内拖放互动,或在 Android 7.0(API 级别 24)及更高版本上于多窗口模式下进行应用间拖放互动。

为应用添加拖放功能,可提高用户的工作效率和互动度。

请参阅拖放。

针对外部输入设备提供差异化支持

为外部输入设备提供类似桌面设备的支持。创建一整套可自定义的键盘快捷键。启用键盘和鼠标或键盘和触控板组合(例如 Ctrl+点击/Ctrl+点按,以及 Shift+点击/Shift+点按),以提供更广泛的功能。

当用户使用鼠标或触控板滚动内容时,显示滚动条。当鼠标指针或触控板悬停时,显示隐藏的内容元素,如飞出菜单或提示。提供桌面设备样式的菜单和上下文菜单。支持使用鼠标或触控板来调整界面面板的大小。支持使用鼠标多次点击,并支持在触控板上多次点按。

触控笔
顶级应用支持配备触控笔的大屏设备。借助触控笔,用户可以进行绘图、书写、擦除、拖放,以及执行各种其他触摸和手势互动。

增强型触控笔支持包括压力感应、倾斜检测以及防手掌和手指误触功能(以免记录误触操作)。

全面支持触控笔输入,在高端设备上提供卓越的用户体验。

请参阅大屏幕上的输入兼容性中的触控笔。

后续步骤

请参阅大屏设备应用质量指南,了解如何着手构建您的应用,使其可在大屏设备上运行、针对大屏设备进行优化,或使之与众不同。

其他资源

视频合集:

针对大屏设备打造应用 | 2021 年 Android 开发者峰会
2022 年 Google I/O 大会上关于各种外形规格的设备的演讲
2023 年 Google I/O 大会上关于多设备的演讲
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。

最后更新时间 (UTC):2023-08-07。

  • 21
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五一编程

程序之路有我与你同行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值