O 2019: 助力开发者在Android和Play平台打造最佳体验


Google I/O 2019: 助力开发者在Android和Play平台打造最佳体验

北京时间 5 月 8 日 01:00am 起,2019 Google I/O 大会通过多种方式与全世界的 Android 开发者互动。相信 Shoreline Amphitheatre 露天剧场的 7,200 位现场嘉宾、收看大会直播的线上观众以及参与 GDG 社区 I/O 延展活动 的开发者都已经了解到我们为让开发者更轻松地工作所做的努力。在 Google I/O 大会上,我们探讨了两大主题: 提升开发者的工作效率,以及在平台中加强对用户隐私和安全的保护。我们来详细了解一下 I/O 大会目前已经爆出的与开发者相关的重磅新闻:

开发者的工作效率

今年,我们专注于一个简单的想法,即我们想为您节省每天的工作时间。而实现这一目标的方法,就是改进您使用的每一项工具。

Kotlin

两年前,我们宣布 Android 平台正式支持 Kotlin 语言。彼时我们的顶级开发者就已经对 Kotlin 爱不释手,自那时起,其发展速度一直令人欣喜。现在有超过 50% 的专业开发者使用 Kotlin。近两年,Kotlin 已跻身 Stack Overflow 上最受喜爱的语言,也是 GitHub 上贡献者数量增长最快的语言之一。

现在,我们要宣布另一项重大举措: Android 开发将越来越向 Kotlin 倾斜。许多新增的 Jetpack API 和功能也将优先提供 Kotlin 版本。如果您正要启动一个新项目,则应该使用 Kotlin 编写,使用 Kotlin 编写程序意味着更少的代码。即,需要输入、测试和维护的代码数量更少。此外,在与 Jetbrains 和 Kotlin 基金会的合作期间,我们将在工具、文档、培训和活动方面持续投资,使 Kotlin 更加易学易用。其中就包括 Kotlin/Everywhere。这是一项新推出的全球系列活动,参与者可以详细了解这门语言、新的 Udacity 课程等。

  • Kotlin
  • https://developer.android.google.cn/kotlin/
  • Kotlin/Everywhere
  • https://events.withgoogle.com/kotlin-everywhere/
  • Udacity
  • https://cn.udacity.com/course/developing-android-apps-with-kotlin--ud9012

Android Jetpack

去年,我们曾推出 Android 的 API Android Jetpack,旨在提升 Android 开发的速度,并让开发者能够使用更少的代码,更轻松地编写出高质量的应用。随着我们继续简化更多开发者日常面临的挑战,在我们前 1000 名的应用中,超过 80% 的应用已经在使用 Jetpack。本次,我们要发布 6 个全新 Jetpack 库 (alpha 版),并将 5 个库的质量提升至测试版水平。以下是 3 个亮点:

CameraX

各位开发者曾告诉我们很难在各种不同的 Android 设备上高效工作。CameraX 是一个全新 Android Jetpack 开源库,可以降低相机应用开发的难度,提升开发速度。此开源库可以在不同设备上提供始终如一的相机体验,使您不再需要维护设备的具体配置。您可以在参与项目的制造商设备上找到对尖端软硬件功能 (例如光学变焦、背景虚化、HDR,以及夜间模式) 的支持。CameraX 适用于近 90% 的设备,并向后兼容 Android L。此外,CameraX 还有一个简单的迁移路径,方便用户从旧版相机 API 迁移,并且还可以与 camera2 API 无缝对接。Android 设备上 70% 的相机使用量来自安装的应用,而非设备内置的相机应用,因此我们非常高兴能够降低相机应用的开发难度。

架构组件

我们根据各位开发者的反馈做出一些补充和改进。开发者们曾告诉我们在 Android 平台上实现并发非常困难。因此,我们将为您带来含有协程的 LiveData 和 Lifecycles,以支持常见的一次性异步操作。使用带有 SavedState 模块的 ViewModel,您可以消除样本代码,并通过简单的 API 获得使用 ViewModel 和 SavedState 的双重益处,进而直接从您的 ViewModel 中保存和检索数据。如果错过这一版也没有关系,我们在几个月前刚刚发布了 WorkManager (后台处理) 和 Navigation (在应用屏幕间导航) 的稳定版。

Jetpack Compose

有许多开发者一直敦促我们提供适用于 Android 平台的现代反应式风格界面工具包,并且可以利用 Kotlin,并能够与平台,以及现有的全部代码无缝集成。我们要介绍该项目团队在 Jetpack Compose 方面所作的工作。Jetpack Compose 旨在将反应式编程模型与 Kotlin 的简洁性和易用性相结合,从而简化界面开发。Jetpack Compose 与现有的界面工具包兼容,因此您可以通过直接访问所有 Android 和 Jetpack API 来混合和匹配视图。此外,工具包还对定义界面组件具有完全声明性。而且,此工具包的设计从一开始便已考虑到材料、动画和工具。从今日起,我们将以公开形式开发此工具包,您可以在 AOSP 上找到所有代码。

  • Android Jetpack
  • https://developer.android.google.cn/jetpack
  • CameraX
  • https://developer.android.google.cn/training/camerax
  • 带有 SavedState 模块的 ViewModel
  • https://developer.android.google.cn/topic/libraries/architecture/viewmodel-savedstate
  • WorkManager
  • https://android-developers.googleblog.com/2019/03/android-jetpack-workmanager-stable.html
  • Navigation
  • https://android-developers.googleblog.com/2019/03/android-jetpack-navigation-stable.html

Android Studio

本次大会上,我们发布了 Android Studio 3.5 测试版。几个月来,该项目团队与 Project Marble 团队合作,专注于优化和改进日常开发流程。Android Studio 3.5 涵盖针对大型项目的更优 IDE 内存管理、更低的输入延迟、Lint 改进、CPU 使用优化、布局编辑器改进、模拟器改进、版本号变更,以及对 Instant Run 的完全重写。Instant Run 现称为 Apply Changes,能够可靠地提升在设备上查看代码更改的能力,还能对 400 多种高优先级的漏洞予以修复。

  • Android Studio 3.5
  • https://developer.android.google.cn/studio/preview
  • Lint 改进
  • https://medium.com/androiddevelopers/android-studio-project-marble-lint-performance-8baedbff2521
  • 布局编辑器改进
  • https://medium.com/androiddevelopers/android-studio-project-marble-layout-editor-608b6704957a
  • 模拟器改进
  • https://medium.com/androiddevelopers/android-emulator-project-marble-improvements-1175a934941e
  • 版本号变更
  • https://medium.com/androiddevelopers/improving-build-speed-in-android-studio-3e1425274837
  • Apply Changes
  • https://medium.com/androiddevelopers/android-studio-project-marble-apply-changes-e3048662e8cd

Android 规模的机器学习

在 Android Q 中,我们已对 Android 神经网络 API (NNAPI) 做出重大改进。首先,我们将支持的运算符数量从 38 增加到 90。现在,NNAPI 无需更改即可加速绝大多数模型。我们还为高级用户引入自检 API,以帮助他们完全控制负责加速的硬件 (例如,DSP 与 NPU)。此外,我们还与硬件供应商紧密合作,以显著提升性能 (降低延迟时间和能耗)。通过与 MediaTek 合作,我们能够在 Helio P90 上将 ML Kit 人脸检测 API 的运行速度提升 9 倍。与 Qualcomm 的合作使我们能够提升 Google Lens OCR 在 Snapdragon 855 AI Engine 上的运行速度,并在提速 3 倍的同时将能耗降低 370%。

  • ML Kit
  • https://developers.google.cn/ml-kit/

动态功能和应用内更新

去年,我们曾推出能够帮助您缩减应用大小并增加安装量的 Android App Bundle。自那时起,我们已经看到 80,000 多个应用软件包进入生产状态,而应用大小则平均缩减 20%。本次大会我们要发布许多内容,以帮助您缩减应用大小,并进一步提升向用户发布更新的速度。我们非常高兴地介绍正在从测试版过渡到稳定版的动态功能模块。借助动态功能模块,您可以根据设备功能、国家/地区等条件选择应用要提供的功能,从而进一步缩减应用大小。您甚至可以按需提供模块,而不用在安装时统一添加。今天,我们还要将应用内更新功能从测试版转为稳定版。这种动态更新应用的能力正是您长久以来希望获得的功能。假设您的应用中存在一个严重漏洞,您需要立刻消除,而且不希望等到用户在 Play Store 发现应用更新时才能消除。现在您就可以即刻消除漏洞。

  • Android App Bundle
  • https://developer.android.google.cn/platform/technology/app-bundle
  • 动态功能模块
  • https://developer.android.google.cn/guide/app-bundle/playcore
  • 应用内更新
  • https://developer.android.google.cn/guide/app-bundle/in-app-updates

Android Q 的用户隐私与安全

作为开发者社区,我们所有人都非常重视妥善处理用户的隐私与安全问题。这关系到在构建能够为开发者提供强大功能的平台的同时,确保用户的安全和隐私得到保护。几个月前,我们推出的 Android Q 测试版具备 50 多项功能以及围绕用户隐私与安全做出的改进。这些 Android Q 的变更可为用户提供更多的透明度和可控性。

一如既往,我们正努力完成有助于开发者采用新版本的所有工作。我们知道您有自己想要构建的功能。这也正是为什么我们非常努力地将这些 Android Q 变更对您的影响降到最低,并将您的反馈纳入其中。我们提供尽可能长的通知期,并预先提供完整详尽的技术信息,以帮助开发者轻松采用新版本。我们还想感谢社区的持续反馈。这对努力试图妥善解决此问题的团队而言是非常巨大的帮助。一个非常典型的示例是第 3 个测试版的存储空间变更,您的反馈帮助我们在测试期间改进功能。长久以来,Android 致力于将所有重大变更对用户隐私和安全的影响降至最低。我们矢志不渝,并将努力让 Android 成为我们钟爱的灵活开放平台,方便开发者使用。


Google I/O 2019: 助力开发者在Android和Play平台打造最佳体验



分享到:


相關文章: