在应用中引入Jetpack
在项目的build.gradle
中添加google()
allprojects {
repositories {
google()
jcenter()
}
}
Jetpack的迁移:
Jetpack在androidx
命名空间中发布.如果项目目前使用Android支持库
- 使用Android Studio 3.2 以上版本
菜单栏 > Refactor > Migrate to AndroidX
- 在
gradle.properties
文件设置:
android.useAndroidX=true
android.enableJetifier=true
开始使用Jetpack
各个组件的作用是什么?
-
Navigation: 一个用于管理
Fragment
切换的工具类, 可视化 /可绑定空间/支持动画等优点 - Data Binding:
- LifeCycle: 生命周期
- ViewModel: 生命周期的处理和UI 相关的数据
- LiveData: 对数据进行监控,优点是无需处理生命周期/内存泄漏等
- Room: ORM 数据库
- Paging: 数据库分页库
- WorkManager: 灵活,简单
其他原因:
- JetPack的库相互之间提供了支持. 比如 Room和Paging 就对LiveData 支持;
- 向后兼容:每个组件都对低版本提供了支持;
- 支持RxJava:
- 减少代码:
Data Binding
使用ViewModel
- ViewModel的生命周期
ViewModel#onCleared 是销毁的时候,回调的函数
- 引入ViewModel的Ktx
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1")
implementation("androidx.fragment:fragment-ktx:1.3.6")
正式使用
private val model: MyViewModel by viewModels()