Android开发之——JetPack组件
一 什么是JetPack
Jetpack 是一套库、工具和指南,可帮助开发者更轻松地编写优质应用。这些组件可帮助您遵循最佳做法、让您摆脱编写样板代码的工作并简化复杂任务,以便您将精力集中放在所需的代码上。
Jetpack 包含与平台 API 解除捆绑的 androidx.* 软件包库。这意味着,它可以提供向后兼容性,且比 Android 平台的更新频率更高,以此确保您始终可以获取最新且最好的 Jetpack 组件版本。
二 Android JetPack发展历程
- Google在17年的I/O大会上推出了架构组件(Architecture Component)工具集
- 随后在18年I/O大会上发布了 Android Jetpack ,Jetpack 是Android开发组件工具集,旨在帮助我们轻松构建更稳定、更健壮、以及更可维护的应用程序
三 Android JetPack 组成
3.1 JetPack 组成
- Jetpack主要分为4个部分, 基础、架构、行为、界面 。
- 从图中得知,Jetpack并不全是些新东西,只要是能够帮助开发者更好更方便地构建应用程序的组件,Google都将其归纳入了Jetpack
- 每个 Jetpack 组件均可单独采用,并且它们依然可以流畅地协作
3.2 AndroidX
紧接着Google推出 AndroidX ,将许多Google认为是正确的方案和实践集中起来
- AndroidX 是对support library的重大改进
- AndroidX中的所有软件包名都以字符串androidx.开头,位于一致的命名空间中
- 与support支持库不同,AndroidX软件包可单独维护和更新
- 所有新的支持库开发都将在AndroidX库中进行
3.3 JetPack(基础)
3.3.1 概念
基础组件,向后兼容性,测试,Kotlin 语言支持
3.3.2 组成
- Android KTX——Kotlin的扩展支持库
- AppCompat——功能支持库(核心平台功能提供向后兼容的实现。扩展类的早期版本,以处理在较新版本的平台中添加的新方法和功能)
- Auto——构建生态系统(车辆音频应用、即时通讯)
- 检测(Benchmark)——从 Android Studio 中快速检测基于 Kotlin 或 Java 的代码
- 多Dex处理(Multidex)——为具有多个 DEX 文件的应用提供支持
- 安全(Security)——按照安全最佳做法读写加密文件和共享偏好设置
- 测试(Test)——用于单元和运行时界面测试的 Android 测试框架
- TV——用于开发 Android TV 应用的组件
- Wear OS——开发 Wear 应用的组件
3.4 JetPack(架构)
3.4.1 概念
架构组件可帮助您设计稳健、可测试且易维护的应用。
3.4.2 组成
- 数据绑定(Data Binding)——以声明方式将可观察数据绑定到界面元素
- Lifecycles——管理您的 Activity 和 Fragment 生命周期
- LiveData——在底层数据库更改时通知视图
- Navigation——处理应用内导航所需的一切
- Paging——逐步从您的数据源按需加载信息
- Room——流畅地访问 SQLite 数据库
- ViewModel——以注重生命周期的方式管理界面相关的数据
- WorkManager——管理您的 Android 后台作业
3.5 JetPack(行为)
3.5.1 概念
行为组件可帮助您的应用与标准 Android 服务(如通知、权限、分享和 Google 助理)相集成。
3.5.2 组成
- CameraX——轻松地向应用中添加相机功能
- 下载管理器(Download manager)——安排和管理大量下载任务
- 媒体和播放(Media&Playback)——用于媒体播放和路由(包括 Google Cast)的向后兼容 API
- 通知(Notifications)——提供向后兼容的通知 API,支持 Wear 和 Auto
- 权限(Permissions)——用于检查和请求应用权限的兼容性 API
- 偏好设置(Preferences)——创建交互式设置屏幕
- 共享(Sharing)——提供适合应用操作栏的共享操作
- 切片(Slices)——创建可在应用外部显示应用数据的灵活界面元素
3.6 JetPack(界面)
3.6.1 概念
界面组件可提供微件和辅助程序,让您的应用不仅简单易用,还能带来愉悦体验。了解有助于简化界面开发的 Jetpack Compose
3.6.2 组成
- 动画和过渡(Animations and Transitions)——动画,界面转场等
- 表情符号(Emoji)——在旧版平台上启用最新的表情符号字体
- Fragment——组件化界面的基本单位
- 布局(Layout)——基础概念
- 调色板(Palette)——从调色板中提取出有用的信息