Kotlin入坑指南
带你走进Android Jetpack组件库
Jetpack使用(一)之 Lifecycles 篇
Jetpack使用(二)之 LiveData 篇
一、什么是Jetpack?
Google自2018年推出Jetpack,希望通过Jetpack统一开发者规范。
Jetpack 是一套库、工具和指南,可帮助开发者更轻松地编写优质应用。这些组件可帮助开发者遵循最佳做法、让开发者摆脱编写样板代码的工作并简化复杂任务,以便开发者将精力集中放在所需的代码上。
注意:Jetpack 是众多组件库的统称,AndroidX 是这些组件的统一包名,不要傻傻分不清
二、Jetpack的优势
- 加速开发:这些组件可搭配工作,也可单独使用,同时配合 Kotlin 语言特性能够显著提高工作效率。
- 消除样板代码:Jetpack 可管理繁琐的 Activity(如后台任务、导航和生命周期管理),便于开发者专注于如何让自己的应用出类拔萃。
- 构建高质量的强大应用:Jetpack 组件围绕现代化设计实践构建而成,具有向后兼容性,可以减少崩溃和内存泄漏。
三、Jetpack的组成
从上图中可以看出Jetpack主要由4部分组成:架构(Architecture)、界面(UI)、行为(Behavior)和基础(Foundation)。
1.架构组件(Architecture)
架构组件用于帮助开发者设计稳健、可测试且易维护的应用。架构组件可以说是对应用开发帮助最大的组件,本系列也主要是围绕着架构组件进行讲解。
架构组件主要包括:
(1)Lifecycles:具备宿主生命周期感知能力的组件,用于管理Activity和Fragment的生命周期,可帮助开发者生成更易于维护的轻量级代码。
(2)LiveData::具备生命周期感知能力的数据订阅、分发组件。在底层数据库更改时通知视图。
(3)ViewModel:具备生命周期感知能力的数据存储组件,通常和DataBinding配合使用,为开发者实现MVVM架构提供了强有力的支持。
(4)Room:轻量级 orm 数据库,本质上是一个 SQLite 抽象层。
(5)DataBinding:解决 View 和数据之间双向绑定的一种工具,通常和ViewModel配合使用。
(6)Paging:列表分页组件,可完成一次加载和显示一小块数据。按需载入部分数据会减少网络带宽和系统资源的使用量。
(7)Navigation:端内统一路由组件,处理应用内导航所需的一切。
(8)WorkManager:管理Android的后台的作业,使用 WorkManager API 可以轻松地调度即使在应用退出或设备重启时仍应运行的可延迟异步任务。
这些组件如何使用,在后面的章节中,我会依次介绍的。
2.界面组件(UI)
界面组件可提供微件和辅助程序,让开发者的应用不仅简单易用,还能带来愉悦体验。
界面组件主要包括:
(1)动画和过渡(Animation and Transition):该框架包含用于常见效果的内置动画,并允许开发者创建自定义动画和生命周期回调。
(2)表情符号(Emoji Compatibility):即便用户没有更新Android系统也可以获取最新的表情符号。
(3)Fragment:组件化界面的基本单位。
(4)布局:用XML中声明UI元素或者在代码中实例化UI元素。
(5)调色板:从调色板中提取出有用的信息。
3.行为组件(Behavior)
行为组件可帮助开发者的应用与标准Android服务(如通知、权限、分享)相集成。
行为组件主要包括:
(1)CameraX:帮助开发者简化相机应用的开发工作。它提供一致且易于使用的界面,适用于大多数Android设备,并可向后兼容至Android 5.0(API 21)。
(2)DownloadManager:处理长时间运行的HTTP下载的系统服务。
(3)媒体和播放:用于媒体播放和路由(包括Google Cast)的向后兼容API。
(4)通知:提供向后兼容的通知API,支持Wear和Auto。
(5)权限:用于检查和请求应用权限的兼容性API。
(6)偏好设置:创建交互式设置,建议使用AndroidX Preference Library库将用户可配置设置集成到应用中。
(7)共享:可以更轻松地实现友好的用户分享操作。
(8)切片:切片是一种UI模板,创建可在应用外部显示应用数据的灵活界面元素。
4.基础组件(Foundation)
基础组件提供横向功能,例如向后兼容性、测试、安全、Kotlin 语言支持,并包括多个平台开发的组件。
基础组件包括:
(1)Android KTX:优化了供Kotlin使用的Jetpack和Android平台API。帮助开发者以更简洁、更愉悦、更惯用的方式使用Kotlin进行Android开发。
(2)AppCompat:帮助较低版本的Android系统进行兼容。
(3)Auto: 开发Android Auto应用的组件,提供了适用于所有车辆的标准化界面和用户交互。
(4)检测:从AndroidStudio中快速检测基于Kotlin或Java的代码。
(5)多Dex处理:为具有多个Dex文件应用提供支持。
(6)安全:安全的读写加密文件和共享偏好设置。
(7)测试:用于单元和运行时界面测试的Android 测试框架。
(8)TV: 构建可让用户在大屏幕上体验沉浸式内容的应用。
(9)Wear OS:开发Wear应用的组件。
四、总结
本篇文章主要带领大家认识什么Jetpack,Jetpack组件库的构成,后续会将Jetpack的每一个组件一一讲解。