前言
我们知道在2008年9月,谷歌正式发布了Android 1.0系统,这也是Android系统最早的版本。从那时候到现在Android已经发展了将近12年的时间,而且Android应用的开发肯定需要网络请求,数据存储,消息机制,所以在近些年每年都有各种各样的框架,比如ImageLoader, Pocasso, Glide,Eventbus, Okhttp, Retrofit, RxJava等, 使得应用的开发选择多,也导致了应用的质量底下,没有统一的标准,直到2018年的Google I/O大会上,Google推出了Jetpack, 希望能够改善当前Android的开发环境。
什么是Jetpack ?
-
Jetpack 是一套库、工具和指南,可帮助开发者更轻松地编写优质应用。这些组件可帮助您遵循最佳做法、让您摆脱编写样板代码的工作并简化复杂任务,以便您将精力集中放在所需的代码上。
-
Jetpack 包含与平台 API 解除捆绑的 androidx.* 软件包库。这意味着,它可以提供向后兼容性,且比 Android 平台的更新频率更高,以此确保您始终可以获取最新且最好的 Jetpack 组件版本。
-
其实Jetpack中包含了众多的组件,很多都不是新的,在之前就有了,比如
Android Architecture Component
, 还有AndroidX
其实是对之前Android Support Library的替换,并且仅仅是替换,并没有增加任何的代码。而且到目前为止Jetpack组件都已经有了stable版本。
Jetpack的特点
- 加速开发: 组件可以单独采用(不过这些组件是为协同工作而构建的),同时利用 Kotlin 语言功能帮助您提高工作效率。
- 消除样板代码: Android Jetpack 可管理繁琐的 Activity(如后台任务、导航和生命周期管理),以便您可以专注于如何让自己的应用出类拔萃。
- 构建高质量的强大应用:Android Jetpack 组件围绕现代化设计实践构建而成,具有向后兼容性,可以减少崩溃和内存泄漏。
Jetpack的分类
首先上一张官方的图片,来直观感受一下分类。
1 Foundation 基础组件:基础组件提供横向功能,例如向后兼容性、测试和 Kotlin 语言支持。
- Android KTX:编写更简洁、惯用的 Kotlin 代码
- AppCompat:在较低版本的 Android 系统上恰当地降级
- Auto:有助于开发 Android Auto 应用的组件
- 检测:从 Android Studio 中快速检测基于 Kotlin 或 Java 的代码
- 多 dex 处理:为具有多个 DEX 文件的应用提供支持
- 安全:按照安全最佳做法读写加密文件和共享偏好设置。
- 测试:用于单元和运行时界面测试的 Android 测试框架
- TV:有助于开发 Android TV 应用的组件
- Wear OS by Google 谷歌:有助于开发 Wear 应用的组件
2 Architecture 架构组件可帮助您设计稳健、可测试且易维护的应用。
- DataBinding 数据绑定: 以声明方式将可观察数据绑定到界面元素
- Lifecycles 生命周期:管理您的 Activity 和 Fragment 生命周期
- LiveData:在底层数据库更改时通知视图
- Navigation 导航:处理应用内导航所需的一切
- Paging 分页: 逐步从您的数据源按需加载信息
- Room 数据库: 流畅地访问 SQLite 数据库
- ViewModel: 以注重生命周期的方式管理界面相关的数据
- WorkManager: 管理您的 Android 后台作业
3 Behavior 行为组件可帮助您的应用与标准 Android 服务(如通知、权限、分享和 Google 助理)相集成。
- CameraX: 轻松地向应用中添加相机功能
- DownloadManager 下载管理器: 安排和管理大量下载任务
- Media & Playback 媒体和播放: 用于媒体播放和路由(包括 Google Cast)的向后兼容 API
- Notifications 通知: 提供向后兼容的通知 API,支持 Wear 和 Auto
- Permissions 权限: 用于检查和请求应用权限的兼容性 API
- Preferences 偏好设置: 创建交互式设置屏幕
- Sharing 共享: 提供适合应用操作栏的共享操作
- Slices 切片: 创建可在应用外部显示应用数据的灵活界面元素
4 UI 界面组件可提供微件和辅助程序,让您的应用不仅简单易用,还能带来愉悦体验。了解有助于简化界面开发的 Jetpack Compose。
- Animation & transitations 动画和过渡: 移动微件和在屏幕之间过渡
- Emoji 表情符号: 在旧版平台上启用最新的表情符号字体
- Fragment 碎片: 组件化界面的基本单位
- Layout 布局: 使用不同的算法布置微件
- Palette 调色板: 从调色板中提取出有用的信息
在应用中引入Jetpack库
-
所有 Jetpack 组件都可在 Google Maven 代码库中找到。
-
打开项目的 build.gradle 文件并添加 google() 代码库,如下所示:
allprojects { repositories { google() jcenter() } }
-
然后,您可以添加 Jetpack 组件,例如作为 Lifecycles 库的一部分的 LiveData 和 ViewModel 等架构组件,如下所示:
dependencies { def lifecycle_version = "2.0.0" implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version" // Optional : Kotlin extension (https://d.android.com/kotlin/ktx) implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version" ... }
总结
本篇文章只是对Jetpack做了一个简单的介绍,内容主要来自于官网,从下一篇文章开始主要讲解Jetpack组件的Archtecture部分。