Android 已经发展十多年了,可以说是比较成熟的技术了,一开始时框架很少,也没有什么规范,所有的代码都是要自己写,比如网络请求,数据库操作,数据解析等等。后来出现了一些框架来帮助开发者快速进行开发,比如XUtils、Volley、OKHttp、EventBus等,随着框架越来越多,一个应用可以有多种技术选型,直接导致应用开发越来越不规范,导致做出来的应用质量参差不齐,这显然不是谷歌想看到的。谷歌随后推出了 MVP 和 MVVM相关的官方例子,效果很一般,而且覆盖面只是在架构上,Goole I/O 2018大会上推出的 Android Jetpack 有望解决以上的问题。
Jetpack并不是一个框架或者组件,它是一套库、工具和指南的集合,可以帮助开发者更轻松地编写和构建出色的 Android 应用程序。这些组件可帮助开发者遵循最佳做法、摆脱编写样板代码的工作并简化复杂任务,以便将精力集中放在所需的代码上。
Android Jetpack中的有些组件并不是第一次推出,其中 LifeCycle、LiveData、ViewModel、Room 等组件早在 Google I/O 2017年大会上就随着 Android Architecture Component(AAC)一起推出了,在Goole I/O 2018大会上,用 AndroidX 替代了 Android Support Library,并在 Android Architecture Component 的基础上发布了Android Jetpack,AndroidX 也是属于 Android Jetpack。
Jetpack 有以下特点
Jetpack 的分类如下如所示:
谷歌仍旧不断的完善 Android Jetpack,截至到2019年8月已经有很多新加的组件并没有显示在上图中,比如CameraX 等。Android Jetpack分类有4种,分别是 Architecture、Foundationy、Behavior、UI,下面分别介绍下。
Architecture 指的是架构组件,帮助开发者设计稳健、可测试且易维护的应用。架构组件可以说是对应用开发帮助最大的组件,本系列也是围绕着架构组件进行讲解。
这些架构组件既可以配合使用,也可以单独使用,这里建议还是尽量按照官方推荐的来。
请注意,每个组件仅依赖于其下一级的组件。例如,Activity 和 Fragment 仅依赖于视图模型。存储区是唯一依赖于其他多个类的类;在本例中,存储区依赖于持久性数据模型和远程后端数据源。
这种设计打造了一致且愉快的用户体验。无论用户上次使用应用是在几分钟前还是几天之前,现在回到应用时都会立即看到应用在本地保留的用户信息。如果此数据已过时,则应用的存储区模块将开始在后台更新数据。
基础组件提供横向功能,例如向后兼容性、测试、安全、Kotlin 语言支持,它包含如下组件库:
行为组件可帮助开发者的应用与标准Android服务(如通知、权限、分享)相集成。
界面组件可提供各类View和辅助程序,让应用不仅简单易用,还能带来愉悦体验。它包含如下组件库:
所有 Jetpack 组件都可在 Google Maven 代码库中找到。
打开项目的 build.gradle
文件并添加 google()
代码库,如下所示:
allprojects {
repositories {
google()
jcenter()
}
}
然后,您可以添加 Jetpack 组件(例如 LiveData 和 ViewModel 等架构组件),如下所示:
dependencies {
def lifecycle_version = "2.2.0"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
...
}
许多 Jetpack 库都提供 Android KTX 扩展,如上面的 lifecycle-livedata-ktx
和 lifecycle-viewmodel-ktx
所示。KTX 扩展在基于 Java 的 API 基础上构建,充分利用了 Kotlin 特有的语言功能。
基于 Kotlin 以及基于 Java 的 API 参考文档页面适用于所有 Jetpack 库。
这篇文章内部不多,旨在让大家了解Android Jetpack是什么,包括什么,如何引用,从下一篇开始,就开始学习Android Jetpack的架构组件。