Now in Android | 12 月刊 · 2019

2019 年 12 月 30 日 谷歌开发者
作者 / Chet Haase, Android 开发技术推广工程师 


欢迎大家来到 Now in Android 栏目,本栏目将专注于为开发者们提供近期值得关注的 Android 开发热点内容。



Android Dev Summit 视频回顾


我们于近两个月一直在连载关于 Android Dev Summit 的中文字幕视频,包括 《是时候迁移至 AndroidX 了》 《Android Studio 的进展与新功能》 《Fragment 的过去、现在和将来》 等。也请同时关注我们的 Bilibili 账号 查看更多谷歌开发技术视频!

  • Bilibili 账号
    https://space.bilibili.com/64169 458 



手势导航连载


我们的同事 Chris Banes 为各位开发者们发布了一个「手势导航」系列的文章,帮助大家处理 Android 10 中的手势变更的问题:


《手势导航 (一) | 开启全面屏体验》介绍了将应用构建到全面屏设备,开启 "边到边" 的全面屏体验之旅。


《手势导航 (二) | 处理视觉冲突》介绍如何处理与系统 UI 出现视觉重叠的问题,判断安全的交互区域。


《手势导航 (三) | 处理手势冲突》介绍如何处理您的应用和 Android 10 中新引入的系统交互手势之间的冲突。


《手势导航 (四) | 沉浸模式》介绍手势交互和冲突在全屏应用 (系统栏也被隐藏) 下的情况和注意事项。



无障碍文档改进


文档团队最近迭代了一些无障碍 (Accessibility) 相关的文档。其中请大家特别关注这两篇: 让应用使用起来更没有障碍》和《改进应用无障碍特性的原则》。尤其需要大家留意的是关于标签元素 (Label) 的章节,我们在其中提供了大量的案例来进行重点讲解。 


  • 让应用使用起来更没有障碍
    https://developer.android.google.cn/guide/topics/ui/accessibility/apps
  • 改进应用无障碍特性的原则
    https://developer.android.google.cn/guide/topics/ui/accessibility/principles 


AndroidX 库发布情况更新


近一个月内的一些主要组件更新到了一个里程碑版本,包括稳定版和发布候选版:

稳定版发布列表

Room 2.2.3 在 2.2.0 稳定版的基础上做了一些 bug 修复。这里回顾一下我们在 10 月初发布的 Room 2.2.0 这个重要的正式版本中所包含的新内容:

  1. 预封装的数据库。现在您可以在自己的 APK 资源中发布一个预先填充过内容的数据库,也可以经由文件来加载数据库内容。Florina Muntenescu 几周前在 一篇文章 中介绍过这个功能。
  2. 更好的关系: SQLite 可以处理多对多关系,但以前的 Room 就不行……现在可以了 (我们接下来会发布一篇介绍文章,敬请关注)。 
  3. Flow 为了完善前一个发布版本中对协程的使用,Room 现在支持将 Flow<T> 作为 DAO 返回类型。 
  4. 速度更快的构建 (相信这正是大家想要的):  注解处理器的增量构建优势现在也被用在了 Room 上 。这个功能现在还没有默认启用,但大家可以在自己的构建中做 一些设置 来启用这个功能,从而提升速度。


  • 预先填充您的 Room 数据库内容
    https://medium.com/androiddevelopers/packing-the-room-pre-populate-your-database-with-this-one-method-333ae190e680
  • Flow
    https://kotlinlang.org/docs/reference/coroutines/flow.html
  • 配置编译器选项
    https://developer.android.google.cn/jetpack/androidx/releases/room#compiler-options


ViewPager2 1.0.0

相比较旧版的 ViewPager,ViewPager2 所做的改进有: 
  • 支持 RTL (从右向左) 布局
  • 支持竖直朝向布局
  • 可靠的 Fragment 支持 (包括将变动信息传递给下层的 Fragment 集合)
  • 数据集变化动画 (包括对 DiffUtil 的支持)


从旧版 ViewPager 迁移至 ViewPager2 十分轻松 (我们尽可能确保了 API 的延续性)。请参考迁移指南和我们提供的示例应用。 


  • 从 ViewPager 迁移至 ViewPager2
    https://developer.android.google.cn/training/animation/vp2-migration
  • Vie wPager2 示例应用
    https://github.com/android/views-widgets-samples/tree/master/ViewPager2


请阅读 ViewPager2 使用指南 以了解如何在 Fragment 页面间完成滑动操作。 

  • 使用 ViewPager2 在 Fragment 之间滑动

    https://developer.android.google.cn/training/animation/screen-slide-2


Transition 1.2.0
如果您的编译目标是 API 29,这次更新对您来说就非常重要。Android 10 针对非 SDK 接口 (限制非公开 API 的使用) 做出的更改 影响了一些方法,而这些方法影响到了 Transition 代码库的映射。更新后的代码库将使用我们提供的新版公开方法。所以,如果您确有需要,请更新到这个版本。


  • 针对非 SDK 接口的限制

    https://developer.android.google.cn/distribute/best-practices/develop/restrictions-non-sdk-interfaces


同时发布稳定版的组件库有: 
  • 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。


上述提到的组件库发布相关内容,请参见这个链接了解更多:  https://developer.android.google.cn/jetpack/androidx/versions/stable-channel?hl=en#december_18_2019

发布候选 (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 版组件库的发布和更新,请参见这个链接了解更多: https://developer.android.google.cn/jetpack/androidx/versions/rc-channel?hl=en#december_18_2019



Jetpack Compose


△ Jetpack Compose 使用教程中的示例代码
Jetpack Compose 在十月底的 Android Dev Summit 上公布,不过它并不属于典型的 alpha/beta/发布候选/稳定版的范畴: 它属于 "开发者预览版" 。这是一种非常早期的版本,比 alpha 版还早,我们的团队还会不断改进它。如果您现在就想一睹为快,上手做做代码实验,请移步至 Jetpack Compose 教程 ,其中提供了许多内容帮您上手。此外,正如许多教程都会做的那样,它也会为您提供一些解释说明和范例。

  • Jetpack Compose 使用教程
    https://developer.android.google.cn/jetpack/compose/tutorial


如果您想要上手操作更深入的范例,请来试试我们全新推出的 Codelab: Jetpack Compose Basics

  • Jetpack Compose Basics

    https://codelabs.developers.google.com/codelabs/jetpack-compose-basics/#0



学习课程和开发指南


Udacity 课程

△ 使用 Kotlin 进行 Android 进阶开发

Udacity 现已推出全新的免费课程: 使用 Kotlin 进行 Android 进阶开发。这些全新的内容由开发者关系团队的多名成员讲授 (我也会在课程里为大家讲解属性动画,正如我自 2012 年以来在 DevBytes 中所做的一样。生活很有趣,是一个螺旋上升的过程不是吗?)


这套课程涵盖了 Android 开发过程中的各种进阶问题,包括通知、定制视图、动画、映射、测试,以及使用 Firebase UI 登录等等。 


  • 使用 Kotlin 进行 Android 进阶开发
    https://cn.udacity.com/course/advanced-android-with-kotlin--ud940


Codelabs

△ 使用 Kotlin 进行 Android 进阶开发的 Codelabs 列表

我们还为各位开发者们准备了一系列新的 Codelabs,组成了一个 "使用 Kotlin 进行 Android 进阶开发" 的课程。这一系列的 Codelabs 安排与教学课程类似,相比较全部由讲师主导课程,我们希望可以让开发者们自行决定学习进度,并在这个基础上与视频教学内容配合学习。无论您是喜欢通过阅读和代码实验来自行解决问题,还是倾向于在讲师的帮助下了解代码,我们都可以满足您的需求。您只需要: 选好方向,开始学习!


  • 课程主页: 使用 Kotlin 进行 Android 进阶开发
    https://codelabs.developers.google.com/advanced-android-kotlin-training/


另外我们还推出了 使用 Dagger 进行依赖注入的 Codelab ,也别忘了进来看看。


  • Codelab: 使用 Dagger 进行依赖注入
    https://codelabs.developers.google.com/codelabs/android-dagger/#0


依赖注入的开发指南

我们还制作了一个全新的指南,教您如何在 Android 中进行依赖注入 (Dependency Injection, DI)。为了更加扎实地指导大家编写 Android 应用,我们推荐大家采用 Dagger 来进行 DI 操作。(请注意,我们提供的指导和建议仅供参考,目的是向大家说明各种选择的作用,并不是非遵循不可的规则;最适合自己的代码写法还是只有自己最清楚。) 


  • 在 Android 中进行依赖注入
    https://developer.android.google.cn/training/dependency-injection



Android Studio 4.0 Canary


通常我们并不会公开发表 Studio 的 canary 版本,因为大多数开发者想要的是更加稳定的终版。不过 4.0 版本中备受期待的功能实在太多,实在是值得拿出来一说。我们已经在 Android 开发者峰会上多次介绍过它 (包括 Android Studio 的新功能介绍和新设计工具介绍),这里再多说几句也无妨。


4.0 版本中的部分新功能包括: 
  • 如果您想尝试一下 Compose 的开发者预览版本,就必须使用 4.0 版本。

△ Motion Editor 可以编辑起始和结束状态,以及在二者之间切换时的动画
  • Motion Editor: MotionLayout 的初步版本已经发布了一段时间,但只能靠 XML 编辑器来操作的话感觉就很不方便。现在大家可以使用专门为它构建的设计工具来创建动画了。
  • Java 8 代码库脱糖,包括对 java.util.stream 以及其他 Java 8 API 的支持,以上支持均通过神奇的 D8 编译器完成。

……注意上面这些只是部分新功能,远不是全部!

请大家参阅发布说明以了解各种功能的详情。如果您想要试用这些新功能,请前往 Canary 频道下载。 


  • 发布说明
    https://developer.android.google.cn/studio/preview/features/#4.0
  • Canary 频道
    https://developer.android.google.cn/studio/preview



又到了追踪圣诞老人的时节了!


年关将至,Santa Tracker 再度归来!今年我们的 "追踪圣诞老人" Android 应用与网站、新游戏等等内容进行了更丰富的整合。这次我们也会照例在明年年初对应用进行开源,请关注我们的 GitHub,时刻了解最新进展。


  • 追踪圣诞老人 Android 应用
    https://play.google.com/store/apps/details?id=com.google.android.apps.santatracker
  • 追踪圣诞老人官方网站
    https://santatracker.google.com/
  • 追踪圣诞老人的 GitHub
    https://github.com/google/santa-tracker-android

谢谢大家对 Now in Android 栏目的支持,祝大家在 Android 开发路上一切顺心!



 点击屏末  | 提交产品反馈建议

  想了解更多 Android 内容?


  • 在公众号首页发送关键词 "Android",获取相关历史技术文章;

  • 在公众号首页发送关键词 "ADS",获取开发者峰会演讲中文字幕视频;

  • 还有更多疑惑?欢迎点击菜单 "联系我们" 反馈您在开发过程中遇到的问题。

推荐阅读




登录查看更多
0

相关内容

Android(安卓)是一种以 Linux 为基础开发的开放源代码的操作系统,主要应用于便携设备。2005 年,Android 公司被 Google 收购,随后 Google 联合制造商组成开放手机联盟。Android 已从智能手机领域逐渐扩展到平板电脑、智能电视(及机顶盒)、游戏机、物联网、智能手表、车载系统、VR以及PC等领域。
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
Python计算导论,560页pdf,Introduction to Computing Using Python
专知会员服务
73+阅读 · 2020年5月5日
大数据安全技术研究进展
专知会员服务
92+阅读 · 2020年5月2日
资源|Blockchain区块链中文资源阅读列表
专知会员服务
43+阅读 · 2019年11月20日
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
7 款实用到哭的App,只说一遍
高效率工具搜罗
84+阅读 · 2019年4月30日
从webview到flutter:详解iOS中的Web开发
前端之巅
5+阅读 · 2019年3月24日
I2P - 适用于黑客的Android应用程序
黑白之道
30+阅读 · 2019年3月6日
Android P正式发布,你需要尽快做适配了
前端之巅
3+阅读 · 2018年8月7日
成人网站PornHub爬虫分享(一天可爬取500万以上的视频)
互联网架构师
16+阅读 · 2018年5月23日
免费云真机测试 | 让您的应用完美适配 Android Oreo
引力空间站
3+阅读 · 2018年2月2日
A Survey of Deep Learning for Scientific Discovery
Arxiv
29+阅读 · 2020年3月26日
Arxiv
35+阅读 · 2019年11月7日
AutoML: A Survey of the State-of-the-Art
Arxiv
69+阅读 · 2019年8月14日
A Probe into Understanding GAN and VAE models
Arxiv
9+阅读 · 2018年12月13日
A Survey on Deep Transfer Learning
Arxiv
11+阅读 · 2018年8月6日
VIP会员
相关资讯
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
7 款实用到哭的App,只说一遍
高效率工具搜罗
84+阅读 · 2019年4月30日
从webview到flutter:详解iOS中的Web开发
前端之巅
5+阅读 · 2019年3月24日
I2P - 适用于黑客的Android应用程序
黑白之道
30+阅读 · 2019年3月6日
Android P正式发布,你需要尽快做适配了
前端之巅
3+阅读 · 2018年8月7日
成人网站PornHub爬虫分享(一天可爬取500万以上的视频)
互联网架构师
16+阅读 · 2018年5月23日
免费云真机测试 | 让您的应用完美适配 Android Oreo
引力空间站
3+阅读 · 2018年2月2日
Top
微信扫码咨询专知VIP会员