GoogleI_O2019Android应用源代码现已发布_知乎_

2022-04-14 0 271

影视系统源码

作者: Takeshi Hagikura, 开发者计划工程师

今年的I/O 应用大幅修改了现有功能并添加了若干新特性。在这篇文章中,我们将着重围绕其中几项主要变更进行说明。

源代码:

尽享 Android Q 新功能

手势导航

Android Q 引入了完全手势导航选项,允许用户通过手势动作返回上一级界面和主屏。为了支持手势导航支持,应用开发者需要做到以下两点:

将应用内容扩展到屏幕边缘处理存在冲突的应用手势

Google I/O 2019 应用是首批完全支持手势导航的应用之一。更多内容,请阅读《手势导航: 实现边到边的全屏体验》系列连载,或请前往 Github 查看团队在 Google I/O 应用库中提交的相关代码,了解如何将应用内容扩展到屏幕边缘。

GoogleI_O2019Android应用源代码现已发布_知乎_手势导航: 返回上一级界面和主屏

深色主题背景

Android Q 引入的另一项新特性是系统深色主题背景,它既可全局应用于 Android 系统界面,也可应用于设备上运行的应用。对于开发者而言,深色主题背景具备诸多优势,其中包括: 降低电耗;改善弱视以及对强光敏感的用户的可视性等。

如需支持夜间主题背景,您应用的主题应继承下面其中一个夜间主题:

<style name=”AppTheme” parent=”Theme.AppCompat.DayNight”> OR <style name=”AppTheme” parent=”Theme.MaterialComponents.DayNight”>

请避免使用硬编码颜色或图标,而是选用主题属性 (例如:?android:attr/textColorPrimary) 或适合在夜间使用的资源 (例如: 在res/values/colors.xml和res/values-night/colors.xml 中定义的颜色)。更多内容,请收看 Google I/O 大会上关于深色主题背景与手势导航的专题分享, 或查看 Github 上 Google I/O 应用库中团队所提交的三份代码 (初步实现、风格修复以及更多更新),了解深色主题背景在真实应用中的具体实现方式。

GoogleI_O2019Android应用源代码现已发布_知乎_GoogleI_O2019Android应用源代码现已发布_知乎_深色主题背景下的日程表 UI日程界面优化

在 2018 年,大会日程的 UI 设计采用了标签界面,一个标签代表一个会议日,用户可通过竖屏滑动来查看不同的日程安排。今年的 I/O 应用更改了原先的 UI 设计,从而解决了若干可用性及性能问题。以 UI 流畅性为例,应用在日程表 UI 出现后就同时渲染所有标签内的 view,造成严重的 UI 卡顿问题,且延迟现象在低端设备上尤为明显。

新的日程 UI 采用单流开发,允许应用仅渲染可视内容,用户只需触击 UI 顶部的日期选项便可跳转至相应页面,并查看当天的议程安排。如果您想了解我们对日程表 UI 作出了哪些更改,请前往 Github 查看相关代码 (将日程显示为单个列表,显示日期标识)。

GoogleI_O2019Android应用源代码现已发布_知乎_GoogleI_O2019Android应用源代码现已发布_知乎_导航组件

我们利用导航组件把今年的 I/O 应用简化为一个单 Activity 应用,这种方法具备下述优点:

开发者可以在导航编辑器中一眼看到所有界面过渡,大幅简化了不同界面的启动活动。移除了向上/返回导航操作的样板代码使用 Safe Args Gradle 插件在各个 Fragment 之间传递静态类型的参数

请阅读《导航组件入门指南》,学习如何在应用中添加导航组件,或查看 Google I/O 2019 应用库中的相关代码 (添加 Gradle 依赖项和插件,迁移 MainActivity,更新会话详情和次级导航结构,禁用导航抽屉),了解导航组件在真实应用中的具体用法。

GoogleI_O2019Android应用源代码现已发布_知乎_GoogleI_O2019Android应用源代码现已发布_知乎_在导航编辑器内查看所有过渡动画使用 Room 实现全文搜索

我们为今年的大会应用添加了一个搜索功能,方便用户快速查找有关演讲、讲师和 codelab 的信息。在实现过程中,我们使用了Room Jectpack组件中的全文搜索特性。一旦从服务器获取最新的大会数据,我们就会对 Room 表格内的有关数据进行更新,每个 Room 表格都有对应的 FTS 映射表格。当用户在搜索框中输入要查找的内容后,检索项便会被用于查询演讲名称等数据。查询结果将立即显示在屏幕上,因此,如果搜索字段发生任何字符更改,服务器会马上返回更新后的结果。接着,用户便可以点击某个词条,导航至对应页面并获取详细内容。如果您对全文搜索有兴趣,欢迎查看我们的代码 (使用 Room 添加搜索功能,在搜索结果中包含分享人信息,在搜索结果中包含 codelab 信息,添加 Room 迁移路径)。

GoogleI_O2019Android应用源代码现已发布_知乎_GoogleI_O2019Android应用源代码现已发布_知乎_查找某个讨论会或分享人更多优化

除了以上关键变更以外,我们还对许多细节部分进行了优化与改进。比如说,我们添加了新的主屏 UI 和 Codelab UI,前者允许应用在大会期间向用户显示与时间相关的信息,后者则提供了更多 I/O 大会上与 codelab 有关的内容以及详细的参与方法。

GoogleI_O2019Android应用源代码现已发布_知乎_GoogleI_O2019Android应用源代码现已发布_知乎_ Codelabs UIGoogleI_O2019Android应用源代码现已发布_知乎_GoogleI_O2019Android应用源代码现已发布_知乎_主屏 UI

此外,我们还利用 Firebase Remote Config (远程配置) 来切换各个特性的显示。这样做的好处在于,我们无需更新整个应用,也不必移除用于表示议程 UI 中各个活动起始或结束时间的硬编码值,而是直接在 Remote Config 中更新 Boolean 值即可。

探索源代码

感兴趣的小伙伴不妨马上前往 Github 网站,尽情探索 2019 I/O 大会应用的源代码。欢迎大家留言,与我们分享您的想法与感受。如果您有任何疑问或问题,请通过 Github 的错误追踪页面提交报告。

点击前往 “Android Developers 官方文档” 查看更多信息

GoogleI_O2019Android应用源代码现已发布_知乎_GoogleI_O2019Android应用源代码现已发布_知乎_
苹果cms切片软件

苹果CMS模板 杂七杂八 GoogleI_O2019Android应用源代码现已发布_知乎_ https://www.pgcms.net/1871.html

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或联络我们。
查看详情

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务