jetpack组件有哪些
Android Jetpack是一个集成Android应用程序组件的一站式解决方案。它使开发人员能够专注于他们的应用程序的真正创新部分,而不会受到Android平台特定的限制。Jetpack组件可分为四个类别:
- 架构组件(Architecture Components)
- UI组件(UI Components)
- 行为组件(Behavior Components)
- 基础组件(Foundation Components)
架构组件包括Room, LiveData, ViewModel和Data Binding。UI组件包括RecyclerView、Paging、Navigation等等。行为组件包括WorkManager和Notifications。基础组件包括AppCompat、Multidex、Test、安全等等。
jetpack常用组件
1. Room
Room 是一个 SQLite 对象映射库,让您能够在应用中使用数据库,同时充分利用 LiveData、ViewModel 和协程等现代化库。
@Entity
data class User(
@PrimaryKey val uid: Int,
@ColumnInfo(name = "first_name") val firstName: String?,
@ColumnInfo(name = "last_name") val lastName: String?
)
2. LiveData
LiveData是一个生命周期感知的可观察数据存储器类,可帮助您构建响应式,健壮和可测试的界面。LiveData经常与ViewModel一起使用,使数据更新后可以自动更新UI。
val mutableLiveData = MutableLiveData("Hello World")
mutableLiveData.observe(this, Observer { s -> text_view.text = s })
3. ViewModel
ViewModel是一个专门为UI层开发的类,通过保存数据的方式,解决了UI层重建,数据丢失的问题。ViewModel可以确保当配置更改、活动终止并重新创建时,数据会立即恢复。
class MyViewModel : ViewModel() {
private val users: MutableLiveData> by lazy {
MutableLiveData>().also {
loadUsers()
}
}
fun getUsers(): LiveData> {
return users
}
private fun loadUsers() {
// Do an asynchronous operation to fetch users.
}
}
4. Data Binding
数据绑定库(Data Binding Library)可以让您以声明方式将可观察对象绑定到界面元素。它的出现,让每一个具有一定业务逻辑的界面都可以得到简化,以减少代码的编写以及针对Eclipse, ADT 和 Android Studio 等不同工具,提供了最方便的开发环境的支持工具。
Jetpack 的存在意义
1、提高开发效率
- Jetpack 提供了 大量 现成 的 组件 和 工具 , 可以快速 构建 高质量 / 高性能 的 Android 工程 , 并且可以 提高 代码的 稳定性 , 可维护性 ;
- 使用 Jetpack 库 , 减少了很多 重复性的 代码工作 , 提高了开发效率 ;
2、最佳架构方案
- Jetpack 是 Google 推荐的最佳的架构方案 , 一直在 不断更新 , 并且 兼容之前的 Android 系统版本 ;
- 使用 Jetpack 可以减少 架构带来 内存泄漏 和 崩溃 ;
3、消除样本代码
- 使用 Jetpack 开发套件 , 可以轻松进行 工程架构 , 减少不必要的 架构相关的样板代码 , 开发者只需要专心开发自己的逻辑代码即可 ;
- Jetpack 提供了一套 UI , 行为 , 架构 相关的解决方案 , 开发者可以不用再架构上浪费时间 , 专心开发自己的逻辑 ;
- 样板代码示例 : Activity 中管理各种生命周期 ;
4、设备系统兼容性
- 开发 Android 应用 , 需要 考虑到 Android 的各个版本的特性 , 以及 各个 Android 手机厂商的适配问题 , 需要花费大量的时间精力进行适配工作 ;
- 使用 Jetpack 可以保证 在 各个 Android 版本 , 各种 Android 设备中 , 保持运行一致 , 可以降低 测试 , 适配 的 工作量 ;
- Jetpack 自带设备系统兼容性解决方案 ;
5、改善应用性能
- 使用 Jetpack 提供的 一系列的 组件 和 工具 , 可以
- 提高 应用的 性能 ,
- 提高 代码稳定性 ,
- 提高 代码可维护性 ,
- 减少应用崩溃 ,
- 减少应用内存泄漏 ;
6、测试支持
- Jetpack 提供了一系列的 测试组件 ,
- 借助 Espresso , UI Automator , JUnit 测试组件 ,
- 可以快速 创建 Android 自动化测试 功能 ,
- 提高 程序的 质量 , 提高代码的稳定性 ;
jetpack组件库
Jetpack还有一些组件库,比如Hilt, WorkManager, CameraX和Compose等等。
1. Hilt
Hilt是Android的依赖注入库,用于定义应用程序中的类之间的依赖关系。它简化了和Dagger2一样的依赖注入过程,并简化了注入实例的进程。
@InstallIn(SingletonComponent::class)
@Module
class MyModule {
@Provides
fun provideFoo(): Foo = Foo()
}
class Foo @Inject constructor()
2. WorkManager
WorkManager是一个API,它让您能够安排后台任务,即使应用已经退出或设备已经重启。有了WorkManager,您可以针对应用使用情况定义灵活且轻量化的任务,并确保在设备单独的线程上以可靠、一致的方式运行。
val uploadWorkRequest = OneTimeWorkRequestBuilder().build()
WorkManager
.getInstance(context)
.enqueue(uploadWorkRequest)
3. CameraX
CameraX是一组相机API,可让您轻松访问设备的摄像头。它有着简单易用的API,便于开发者使用。CameraX 支持多种设备,版本兼容,可读性高。
val preview = Preview.Builder().build()
val analysisUseCase = ImageAnalysis.Builder().build()
val imageCapture = ImageCapture.Builder()
.setTargetRotation(previewView.display.rotation)
.build()
本文就主要讲解了,在Android Jetpack中的组件有哪些,常用的组件介绍,更多Android Jetpack的学习可以参考《Android Jetpack笔记》点击就可以查看详细的类目板块,也可以拿取。
結尾
到目前为止,Jetpack包含80多个库的组件。每个库都是专为 Android 开发而设计的,涵盖了各种开发过程中的各个方面。