使用 Android Jetpack 加快应用开发速度

发布人:Android 开发者工具产品管理 Chris Sells、Benjamin Poiesz 和 Karen Ng

本文转自:http://developers.googleblog.cn/2018/05/android-jetpack.html

今天,我们高兴地推出 Android Jetpack,这是我们的新一代组件、工具和架构指导,旨在加快您的 Android 应用开发速度。

Android Jetpack 深受支持库的启发,支持库包含的组件可以让您轻松利用新 Android 功能,同时保持向后兼容性;现在,应用商店中 99% 的应用都使用支持库。在支持库取得成功后,我们推出了架构组件,让开发者在面对应用生命周期变化和复杂性时可以更轻松地处理数据。自从我们在去年的 I/O 上推出以来,相当数量的开发者已经采用这些组件。LinkedIn、Zillow 和 iHeartRadio 等公司取得了显著成效,他们应用的错误减少、可测试性提高,这让他们可以将更多时间放在精心打造自己的应用上。

Android 开发者社区历来彼此非常熟悉,不仅您喜欢我们推出的这些令人兴奋的组件,我们也知道您还想要更多功能!我们也为您推出了众多功能。

什么是 Android Jetpack?


Android Jetpack 是一套组件、工具和指导,可以帮助您构建出色的 Android 应用。Android Jetpack 组件将现有的支持库与架构组件联系起来,并将它们分成四个类别

Android Jetpack 组件以“未捆绑的”库形式提供,这些库不是基础 Android 平台的一部分。这就意味着,您可以根据自己的需求采用每一个组件。在新的 Android Jetpack 功能发布后,您可以将其添加到自己的应用中,将您的应用部署到应用商店并向用户提供新功能,如果您的行动足够快,所有这些可以在一天内完成!未捆绑的 Android Jetpack 库已经全部转移到新的 androidx.* 命名空间中(这篇博文进行了详细介绍)。

此外,您的应用可以在各个版本的平台上运行,因为 Android Jetpack 组件可以独立于任何特定版本提供功能,从而实现向后兼容性。

而且,Android Jetpack 基于现代化设计做法构建,其中包括问题与可测试性分离,以及 Kotlin 集成等可以提高效率的功能。这让您可以更轻松地构建稳定、优质的应用,同时减少代码数量。虽然 Android Jetpack 的组件为了协同操作而构建(例如,生命周期感知和实时数据),但是您不必使用所有组件。您可以集成能够解决您的问题的 Android Jetpack 部分,同时保留您的应用中运行出色的部分。

鉴于以下类似反馈,我们知道这些好处对您非常重要:

“我们之前一直考虑在代码库中尝试使用 MVVM。Android 架构组件为我们提供了一个简单的实现模板。架构组件还帮我们提升了代码的可测试性;对 ViewModel 进行单元测试的能力提高也毫无疑问地提升了代码的可靠性。”

-- Sumiran Pradhan,Zillow 高级工程师

如果您想要详细了解各个公司使用 Android Jetpack 组件的情况,可以阅读 Android 开发者网站上的开发者故事

最后,正如您在上面的 Android Jetpack 图表中看到的一样,我们今天还发布了新组件。

新组件


Android Jetpack 附带五个新组件:

  • WorkManager alpha 版
  • 导航 alpha 版
  • 分页稳定版
  • 切片 alpha 版
  • Android KTX(Kotlin 扩展程序)alpha 版

 

WorkManager


WorkMananager 组件是一个功能强大的新库,可以为基于约束的后台作业(需要有保障的执行)提供一站式解决方案,消除了使用作业或 SyncAdapter 等框架的需求。WorkManager 提供了一个简化的现代化 API、在安装或未安装 Google Play 服务的设备上运行的功能、创建工作图的功能以及查询工作状态的功能。早期反馈非常令人鼓舞,我们希望确保也能覆盖您的用例。您可以了解我们目前已经完成的工作,并提供对 WorkManager 组件 alpha 版的反馈。

导航


尽管 Activity 是系统提供的您的应用界面的入口点,但在相互分享数据以及转场方面,Activity 表现得不够灵活,这就让它不适合作为构建您的应用内导航的理想架构。今天,我们宣布推出导航组件,作为构建您的应用内界面的框架,重点是让单 Activity 应用成为首选架构。利用导航组件对 Fragment 的原生支持,您可以获得架构组件的所有好处(例如生命周期和 ViewModel),同时让此组件为您处理 FragmentTransaction 的复杂性。此外,导航组件还可以让您声明我们为您处理的转场。它可以自动构建正确的“向上”和“返回”行为,包含对深层链接的完整支持,并提供了帮助程序,用于将导航关联到合适的 UI 小部件,例如抽屉式导航栏和底部导航。但这些并不是全部!Android Studio 3.2 中的导航编辑器让您可以直观地查看和管理导航属性:

分页


应用中呈现的数据可能非常大,这就导致加载的开销比较大,因此,避免一次下载、创建或呈现过多数据就显得非常重要。分页组件 1.0.0 版让您可以轻松加载和呈现大型数据集,同时在您的 RecyclerView 中进行快速、无限滚动。它可以从本地存储和/或网络加载分页数据,并让您能够定义内容的加载方式。此组件原生支持 Room、LiveData 和 RxJava。

切片


最后,切片组件让一组新功能在 Android Jetpack 中首次亮相。“切片”是一种以搜索结果形式在 Google 智能助理内部显示应用界面的方式:

您可以访问 Android 开发者网站,详细了解切片组件,以及如何将其集成到您的应用中。

Android KTX


最后,Android Jetpack 利用 Kotlin 语言功能的一个目标是提高您的效率。Android KTX可以让您将类似下面所示的 Kotlin 代码:

  view.viewTreeObserver.addOnPreDrawListener {
    object :ViewTreeObserver.OnPreDrawListener{
      override fun onPreDraw():Boolean {
        viewTreeObserver.removeOnPreDrawListener(this0
         actionToBeTriggered() 
          return true
    }
}):

 

转换成如下所示的更精简的 Kotlin 代码:

view.doOnPreDraw {actionToBeTriggered()}


这只是将 Kotlin 支持带到 Android Jetpack 组件的第一步;我们的目标是让 Android Jetpack 造福 Kotlin 开发者(当然还有 Java 开发者)。您可以在 Android 开发者网站上详细了解 Android KTX

开始使用


您可以访问 developer.android.google.cn/jetpack 页面,开始使用 Android Jetpack。您可以在这个页面上找到 Android Jetpack 的文档与视频,查看 Android Jetpack 组件的新功能,加入社区并向我们提供反馈。我们还创建了一个专门介绍 Android Jetpack 的 YouTube 播放列表,您可以观看这些视频,了解 Android Jetpack、组件、工具和最佳实践的相关信息。

Android Jetpack 使用入门将介绍如何在您现有的应用中集成 Android Jetpack 组件并帮助您开始构建全新的 Android Jetpack 应用。Android Studio 3.2 为 Android Jetpack 提供了出色的工具支持。要构建新应用,请使用 Activity & Fragment+ViewData Activity,您可以在 Android Studio 的 File | New | New Project 下找到此 Activity:

未来计划


我们将在 Android Jetpack 中充分利用支持库和架构组件的好处,并为它添加新组件、Android Studio 集成和 Kotlin 支持。尽管 Android Jetpack 为加快您的 Android 开发速度提供了新一代组件、工具和指导,我们还有很多工作要做,并且需要您的帮助。请转到 developer.android.google.cn/jetpack,告诉我们如何进一步提升您构建 Android 应用的体验。

posted @ 2018-05-23 14:32  想不起来的角落  阅读(26965)  评论(0编辑  收藏  举报