作者 / Chet Haase, Android 开发技术推广工程师
欢迎大家来到 Now in Android 栏目,本栏目将专注于为开发者们提供近期值得关注的 Android 开发热点内容。
Android Dev Summit 视频回顾
我们于近两个月一直在连载关于 Android Dev Summit 的中文字幕视频,包括《是时候迁移至 AndroidX 了》、《Android Studio 的进展与新功能》和《Fragment 的过去、现在和将来》等。也请同时关注我们的 Bilibili 账号查看更多谷歌开发技术视频!
手势导航连载
《手势导航 (一) | 开启全面屏体验》介绍了将应用构建到全面屏设备,开启 "边到边" 的全面屏体验之旅。
《手势导航 (二) | 处理视觉冲突》介绍如何处理与系统 UI 出现视觉重叠的问题,判断安全的交互区域。
《手势导航 (三) | 处理手势冲突》介绍如何处理您的应用和 Android 10 中新引入的系统交互手势之间的冲突。
《手势导航 (四) | 沉浸模式》介绍手势交互和冲突在全屏应用 (系统栏也被隐藏) 下的情况和注意事项。
无障碍文档改进
文档团队最近迭代了一些无障碍 (Accessibility) 相关的文档。其中请大家特别关注这两篇: 《让应用使用起来更没有障碍》和《改进应用无障碍特性的原则》。尤其需要大家留意的是关于标签元素 (Label) 的章节,我们在其中提供了大量的案例来进行重点讲解。
AndroidX 库发布情况更新
近一个月内的一些主要组件更新到了一个里程碑版本,包括稳定版和发布候选版:
稳定版发布列表
Room 2.2.3 在 2.2.0 稳定版的基础上做了一些 bug 修复。这里回顾一下我们在 10 月初发布的 Room 2.2.0 这个重要的正式版本中所包含的新内容:
- 预封装的数据库。现在您可以在自己的 APK 资源中发布一个预先填充过内容的数据库,也可以经由文件来加载数据库内容。Florina Muntenescu 几周前在一篇文章中介绍过这个功能。
- 更好的关系: SQLite 可以处理多对多关系,但以前的 Room 就不行……现在可以了 (我们接下来会发布一篇介绍文章,敬请关注)。
- Flow: 为了完善前一个发布版本中对协程的使用,Room 现在支持将 Flow 作为 DAO 返回类型。
- 速度更快的构建 (相信这正是大家想要的): 注解处理器的增量构建优势现在也被用在了 Room 上 。这个功能现在还没有默认启用,但大家可以在自己的构建中做一些设置来启用这个功能,从而提升速度。
ViewPager2 1.0.0
相比较旧版的 ViewPager,ViewPager2 所做的改进有:
- 支持 RTL (从右向左) 布局
- 支持竖直朝向布局
- 可靠的 Fragment 支持 (包括将变动信息传递给下层的 Fragment 集合)
- 数据集变化动画 (包括对 DiffUtil 的支持)
从旧版 ViewPager 迁移至 ViewPager2 十分轻松 (我们尽可能确保了 API 的延续性)。请参考迁移指南和我们提供的示例应用。
请阅读 ViewPager2 使用指南以了解如何在 Fragment 页面间完成滑动操作。
Transition 1.2.0
如果您的编译目标是 API 29,这次更新对您来说就非常重要。Android 10 针对非 SDK 接口 (限制非公开 API 的使用) 做出的更改影响了一些方法,而这些方法影响到了 Transition 代码库的映射。更新后的代码库将使用我们提供的新版公开方法。所以,如果您确有需要,请更新到这个版本。
同时发布稳定版的组件库有:
- Annotation-Experimental 1.0.0
- Autofill 1.0.0
- Benchmark 1.0.0
- Biometric 1.0.1
- Browser 1.2.0
- CoordinatorLayout 1.1.0
- Enterprise 1.0.0
- Exifinterface 1.1.0
- Paging 2.1.1
- Recyclerview 1.1.0
- ViewPager2 1.0.0
- Webkit 1.1.0。
上述提到的组件库发布相关内容,请参见这个链接了解更多: developer.android.google.cn/jetpack/and…
发布候选 (Release Candidate) 列表
发布候选的意思基本上是: "我们认为它已经进入稳定/终版状态,不过在正式这么宣布之前,我们会再观察一阵子"。下面的这些代码库即将在它们的下个版本进入发布候选列表:
- Activity 1.1.0-rc03
- Core 1.2.0-rc01
- Fragment 1.2.0-rc04
- Lifecycle 2.2.0-rc03
- Lifecycle-ViewModel-Savedstate 1.0.0-rc03
- Navigation 2.2.0-rc04
- ShareTarget 1.0.0-rc01
- Transition 1.3.0-rc02
关于所有 RC 版组件库的发布和更新,请参见这个链接了解更多: developer.android.google.cn/jetpack/and…
Jetpack Compose
如果您想要上手操作更深入的范例,请来试试我们全新推出的 Codelab: Jetpack Compose Basics。
学习课程和开发指南
Udacity 课程
这套课程涵盖了 Android 开发过程中的各种进阶问题,包括通知、定制视图、动画、映射、测试,以及使用 Firebase UI 登录等等。
Codelabs
- 课程主页: 使用 Kotlin 进行 Android 进阶开发:
codelabs.developers.google.com/advanced-an…
另外我们还推出了使用 Dagger 进行依赖注入的 Codelab,也别忘了进来看看。
依赖注入的开发指南
我们还制作了一个全新的指南,教您如何在 Android 中进行依赖注入 (Dependency Injection, DI)。为了更加扎实地指导大家编写 Android 应用,我们推荐大家采用 Dagger 来进行 DI 操作。(请注意,我们提供的指导和建议仅供参考,目的是向大家说明各种选择的作用,并不是非遵循不可的规则;最适合自己的代码写法还是只有自己最清楚。)
Android Studio 4.0 Canary
通常我们并不会公开发表 Studio 的 canary 版本,因为大多数开发者想要的是更加稳定的终版。不过 4.0 版本中备受期待的功能实在太多,实在是值得拿出来一说。我们已经在 Android 开发者峰会上多次介绍过它 (包括 Android Studio 的新功能介绍和新设计工具介绍),这里再多说几句也无妨。
4.0 版本中的部分新功能包括:
- 如果您想尝试一下 Compose 的开发者预览版本,就必须使用 4.0 版本。
- Motion Editor: MotionLayout 的初步版本已经发布了一段时间,但只能靠 XML 编辑器来操作的话感觉就很不方便。现在大家可以使用专门为它构建的设计工具来创建动画了。
- Java 8 代码库脱糖,包括对 java.util.stream 以及其他 Java 8 API 的支持,以上支持均通过神奇的 D8 编译器完成。
……注意上面这些只是部分新功能,远不是全部!
请大家参阅发布说明以了解各种功能的详情。如果您想要试用这些新功能,请前往 Canary 频道下载。
又到了追踪圣诞老人的时节了!
谢谢大家对 Now in Android 栏目的支持,祝大家在 Android 开发路上一切顺心!
点击这里提交产品反馈建议