关于android:FAQ-为大屏幕设备构建应用的常见问题解答

3次阅读

共计 4649 个字符,预计需要花费 12 分钟才能阅读完成。

近期,咱们公布了一系列对于在折叠设施和大屏幕设施上构建利用的文章:

  • 折叠屏上利用设计规范,理解一下?
  • 是时候为各式设施适配欠缺的输出反对了
  • Android 与 Chrome OS 中针对大屏幕设施的更新

咱们在后盾和社区等各渠道收到了很多来自开发者们的反馈,也把一些开发者们常见的问题进行了简略的收集和梳理,整顿成这一篇对于为折叠屏和大屏幕设施构建利用的常见问题和解答,如果您在构建过程中有任何其余的问题,欢送通过留言的形式让咱们晓得。

问: 在大屏幕这一细分市场中,存在哪些新的机会、新的产品和应用场景呢?

答: 依据国际数据公司 (IDC) 的报告,2020 年新增激活的 Android 平板设施约有 1 亿台,这个数字是惊人的。与此同时,现在激活的搭载 Android 零碎的大屏幕设施总量已超过 2.5 亿台,这是个宏大的市场,当然就存在微小的机会。现在随着可折叠屏幕使用量的减少,围绕折叠设施进行的开发方式更加多样,将利用延长至手机之外的机会也就随之减少了。

例如 LumaFusion 这款产品,在进入教育市场时,Chromebook 起到了至关重要的作用。因为用户在编辑视频时须要在屏幕上进行大量的操作,更大尺寸的屏幕为用户带来了更多的屏幕应用空间。简而言之,在大屏幕上应用该产品是最现实的应用场景。

从设计角度来讲,可折叠设施将利用从惯例手机屏幕转换到更大尺寸的屏幕,这为设计师带来了更多施展的机会,这的确是一个引入不同性能、展现各种元素的好机会,这并非意味着要用更多内容来塞满更大的屏幕空间,屏幕更大通常意味着为用户提供更身临其境的体验。另外也大大增加了多任务处理的机会,用户能够利用多窗口模式同时执行多项工作,那么咱们就有新的机会来思考,比方,多个利用在彼此相邻时的状态、交互、状态切换等,这些都是不错的切入点。

问: 开发者针对于大屏幕应进行哪些优化,须要思考哪些问题?

答: 首先是思维的转变,过来为直板手机开发利用,现在要切换到为形态各异且尺寸不一的设施开发利用,开发者须要转变思维来思考界面如何在各种尺寸的设施上运行,因为大屏设施的市场重要性曾经毋庸置疑了。

数据显示,因为更大的屏幕空间,可折叠设施的多任务处理量减少了 7 倍,开发者有必要均衡布局的简略性与灵活性以优化利用,例如开发者在应用新的窗口尺寸类别和视口断点时,如果要优化断点的布局,能够将其视为 3 个基于宽度的断点。此外开发者还须要思考可折叠设施的状态,如高级布局反对等。

在多任务处理方面,大屏幕提供给用户更多空间进行多项操作,如果用户在折叠设施上应用利用,开发者要思考优化的是当用户开展设施时确保利用有良好的连续性、良好的界面显示成果和外观。手机以往通常是竖屏模式,当切换到大屏设施时,横屏模式变得非常重要。为了更好适配大屏幕,先优化确保利用在横屏模式下看起来不错。如果您曾经做到了这一点,那么接下来您应该确保利用可能在多窗口模式下运行,并且利用的大小可动静调整。

在导航优化方面,以往在对直板手机竖屏模式的局部导航组件进行优化时,导航组件简直始终停靠在屏幕底部,在可折叠设施或更大的设施中状况就不同了,用户实际上大多数工夫是用双手持握设施,这就意味着导航组件最好是搁置在设施边缘和侧面,而不是底部。另外倡议开发者在进行导航项优化时,要切实思考带状成果。在竖屏中大堆组件或元素占据设施边缘很正当,但在横屏中,用户大多数工夫是双手持握设施,横跨两个边缘的元素就会占用大量空间且十分的显眼,这会给用户一种感觉——界面很蠢笨,所以应尽量避免边缘停泊,思考用其它形式搁置组件和元素。

如需理解更多详情,请参阅:

  • 为任意屏幕尺寸构建 Android 界面
  • 折叠屏上利用设计规范,理解一下?
  • MAD Skills 系列之导航组件系列文章
  • 反对不同的屏幕尺寸

问: 对开发者而言,如何用最简略的办法在各种尺寸的屏幕上优化利用界面?

答: 有多种解决方案可供选择,具体取决于您利用以后理论状况和将来打算。例如,您当初有一款基于很多 Activity 的利用,则可借助在 12L 性能中提供的 Activity 嵌入 (Activity Embedding),将多个 Activity 同时并排显示。这是一个很好的办法,无需重写所有布局代码和整个利用即可优化利用界面。

如果您正在思考重写局部界面或整个利用,那么 Jetpack Compose 也是很好的抉择之一。初期能够借助 Jetpack Compose 更轻松地构建自适应的界面,在将来的开发周期中能够更轻松地进行保护和执行其余相似操作。除此以外,还能够应用兼容模式,但兼容模式并不能为用户提供现实体验。所以强烈建议您优先选择应用 Jetpack Compose。

如需理解更多轻松优化利用的指南,请参阅:

  • Android 与 Chrome OS 中针对大屏幕设施的更新
  • Material 网站
  • 借助 Jetpack WindowManager 反对可折叠设施和双屏设施

问: 对开发者而言,应该在平板电脑或可折叠设施上应用底部导航吗?

答: 从设计角度来讲,咱们倡议将底部导航组件更换为 Navigation Rail,它具备和底部导航组件相似的性能,内含多个次要的 导航目的地。咱们认为将导航组件放在侧边更易于应用,尤其是对于那些在利用内频繁通过导航栏切换界面的用户来说。二级导航也很重要,在挪动设施中您能够应用标签页 (Tab) 或分段按钮 (Segmented Button) 等来实现二级导航,这些办法同样实用于可折叠设施,因而能够把它们与 Navigation Rail 联合起来应用。

从实现角度来讲,您能够通过多种计划实现,例如应用 View 或应用 Compose。对于基于 View 的利用,您能够应用资源限定布局,通过底部导航——如底部利用栏 (App Bar) 或底部导航菜单 (Navigation Menu)——造成窄小的布局,也能够应用 Navigation Rail 来打造更宽的布局。依据咱们提供的 窗口尺寸类别 和指南,对于较小的布局,举荐应用底部导航菜单,对于中等和更大的开展布局,建议您思考应用 Navigation Rail,因为应用这类设施的用户更多会应用双手而不是单手来操作设施。

如需理解更多,请参阅:

  • Navigation 组件应用入门

问: 为大屏幕构建利用的时候,平板和桌面设施这两种类型有哪些须要留神的?相似 Chromebook Duet 这种可拆卸平板电脑有哪些须要留神的?

答: 从不同屏幕尺寸的角度来说,平板设施须要思考的是横屏模式下的中等高度 (Medium height) 和开展宽度 (Expanded width),断点别离是 480dp+ 和 840dp+,桌面设施须要思考开展高度 (Expanded height) 和开展宽度 (Expanded width),断点别离是 900dp+ 和 840dp+,更多屏幕尺寸相干的大小能够参考上面的表:

与此同时,当思考到可拆卸设施时,另外须要思考的一个问题将会是对设施输出的反对,可拆卸设施意味着它能够连贯其余输出设施,比方键盘、触控笔、鼠标等,因而您还应该进一步思考优化对输出设施的反对,您能够通过咱们近期的文章《是时候为各式设施适配欠缺的输出反对了》理解更多。

布局和输出都很重要,尤其是当您开始思考更大屏幕的设施时,如需创立适宜不同屏幕尺寸的 自适应布局,最好的办法是将 ConstraintLayout 用作界面中的根本布局。应用 ConstraintLayout,您能够依据布局中视图之间的空间关系指定每个视图的地位和大小。这样一来,当屏幕尺寸扭转时,所有视图都能够一起挪动和拉伸。尽管 ConstraintLayout 并不能应答所有布局场景,但无论您应用何种布局,都应该始终防止对布局大小进行硬编码。

如需理解更多,请参阅:

  • 窗口尺寸类别

问: 对开发者而言该如何适配可折叠设施的折叠状态,比方桌面模式?

答: 借助这个问题,咱们想首先提一下可折叠设施的多种状态,它们别离是齐全折叠状态、半折叠状态和齐全开展状态。当设施处于半折叠状态的时候,设施还可能处于两种折叠状态,一种是桌面模式 (程度折叠边),相似把半折叠状态的手机放在桌子上;另一种是图书模式 (垂直折叠边),相似把半折叠状态的手机拿在手上,像在看书一样。设施处于半折叠状态的时候,凑近折叠边的局部不容易进行点按,因而应防止在这个区域设计交互,不过这也是一个很好的课题,能够钻研一下在这些遮挡区能够搁置哪些乏味的元素。

提及折叠状态,须要留神组件的过渡,将会在更大设施更大屏上应用各种组件,尤其是在桌面模式,须要特地留神界面,例如,在该模式下,要害操作或大多数操作是在底部屏幕实现的,而大多数内容组件实际上会放在另一个屏幕上;在折叠的桌面模式下,用户看起来像是在操作一部笔记本电脑,点触屏幕,手机可能会呈现不稳晃动;这种模式下摄像头地位也可能会挡住前面的屏幕内容,尽管内容会被渲染,但因为被挡住而不可见。这些都是须要思考的十分重要的事项,如何在不同折叠状态下操作起来合乎人体工学设计。

如大家所知可折叠设施层出不穷,咱们推出了 Jetpack WindowManager 库,帮忙开发者对利用做出调整,以充分利用可折叠设施为用户提供全新的体验。如需理解更多,请参阅文章《详解 | 为可折叠设施构建响应式 UI》和 Codelab: 借助 Jetpack WindowManager 反对可折叠设施和双屏设施,咱们邀请各位开发者尝试 WindowManager,同时心愿您能向咱们提供反馈以便咱们进一步改良并尽快推出稳固版本。

如需理解更多,请参阅:

  • 可折叠设施的折叠状态

问: 12L Activity Embedding 与其余构建大屏幕利用的办法相比有哪些利弊?如果从头构建,首选哪个?

答: 如果您想从头构建利用,强烈建议您优先思考应用 Jetpack Compose。Jetpack Compose 是用于构建原生 Android 界面的工具包,可让您更轻松地设计和构建利用的界面,更快地打造更杰出的利用。

如果您的利用基于很多 Activity,您心愿在大屏上更好地出现,举荐您应用 Activity 嵌入 (Activity Embedding)。Activity Embedding 只是容许您并排显示多个 Activity,不需重构利用架构,应用起来很简略。如果您应用了 Fragment 或者有可能曾经在一个 Activity 利用中应用了 Compose,那么请勿应用 Activity Embedding,此时咱们建议您查看所有利用的构建界面,具体实现办法请查看近期文章《为任意屏幕尺寸构建 Android 界面》。

问: 当开发者在 Chrome OS 上调整窗口尺寸时,如何将利用组件顺畅转换为新的尺寸?

答: 请关注 Material 的官网文档,对于这个类型的问题将来咱们可能会专门安顿一个章节来阐明。就目前来说,咱们曾经为 可折叠设施的动效 (Motion) 这个话题退出了一些指南文档,因为在这些设施中会遇到大量的转换场景,这些也实用于 Chrome OS。对于组件转换有一个要点须要留神: 当用户把本人的设施从一种状态转换到另一种状态时,通常界面上必须至多保留一个元素以帮忙他们确定元素地位或理解元素是否产生变更。

从技术实现来说,要手动实现这些转换成果并在不同的设施状态下有着顺畅的交互并非易事,您能够借助咱们为 Android 打造的界面工具包 Jetpack Compose 来进行构建。

如需理解更多,请参阅:

  • 应用 Material Design 组件实现 Material 动效

欢迎您 点击这里 向咱们提交反馈,或分享您喜爱的内容、发现的问题。您的反馈对咱们十分重要,感谢您的反对!

正文完
 0