本文将会帮助你构建一个简单的,基于 Jetpack 的基础应用。这个 ? 将基于一个叫做ComponentsBasicSample的 kotlin 项目来讲。
关于如何创建一个基本项目,请参考创建你的第一个项目。想要了解到更多的关于此篇文档中涉及到的类,请参考Android Architecture Components
Set up your app
完成以下步骤来让你的 app 使用上Jetpack
- 启动Android Studio(3.2 或更高版本),输入基本信息来创建一个应用
⭐️ 如果你使用kotlin来开发,那么记得在创建应用的页面勾选上 Include Kotlin support
- 再创建项目页面之后,是Add an Activity to Mobile页面,该页面为你的项目提供了众多模板。如下图所展示的是Activity & Fragment + ViewModel模板。他可以更方便的将 Jetpack 整合到你的项目中去。我们选择该模板,然后点击Next吧。
- 接来下在Configure Activity页面,我们为activity,fragment和ViewModel输入名字。当然了,你也可以随意改变fragment的包路径。然后,我们点击Finish
打开你的 Java 文件夹,会如下图所示,项目初始包含了三个classes:StartActivity,StartFragment和StartViewModel。
- StartActivity是你程序的入口点,他是一个Activity的根(Stub),用来充当fragment的容器以展示在你的应用的初始页面。
- StartFragment是在你 APP 中所有用到的Fragment的根(Stub)。
- StartViewModel是在你 APP 中所有用到的ViewModel的根(Stub)。
利用 Jetpack 的优势
完成了这些准备工作之后,你可以选择像下面的 ? 一样来实现你的 ViewModel 对象
class StartViewModel : ViewModel() {
private val _data = MutableLiveData<String>()
val data: LiveData<String>
get() = _data
init {
_data.value = "Hello, Jetpack!"
}
}
如果你的应用内包含了不止一个页面,你可以添加Navigation类来为你的fragment实现导航(navigation trigger)功能。下面的代码展示了如何实现一个导航(navigation trigger)
// Set up a click listener on the login button
view?.findViewById<Button>(R.id.navigate_bt)?.setOnClickListener {
// Navigate to the login destination
view?.let { Navigation.findNavController(it).navigate(R.id.end_action) }
如果你的应用需要存储本地的SQLite数据,你可以尝试添加数据持久化类库Room。如果你的应用需要在单个页面上显示大量的数据,你可以考虑使用Paging library。
配置你的Gradle文件
为了使用Jetpack,你还必须牢记在你的gradle文件中添加对应的内容。由于本案例中使用了ViewModel,LiveData,和NavigationController,所以gradle文件有以下几行:
// LiveData + ViewModel
implementation "android.arch.lifecycle:extensions:$rootProject.archLifecycleVersion"
// Navigation
implementation 'androidx.navigation:navigation-fragment:' + rootProject.navigationVersion
implementation 'androidx.navigation:navigation-ui:' + rootProject.navigationVersion
了解更多
想要了解更多不同的案例和本文档中涉及到的类库,请参考以下资源:
Sunflower是一个运用了很多不同的Jetpack组件的实例APP,他是Android开发者最好的实践项目。