“Hello, Jetpack”:构建首个 Jetpack 应用

本文档将引导您完成构建基于 Jetpack 的简单应用的基本过程。此示例基于一个名为 ComponentsBasicSample 的 Kotlin 示例应用。

有关如何创建应用的一般性指导,请参阅构建首个应用。要详细了解本文档涵盖的类,请参阅 Android 架构组件

设置应用

请完成以下应用设置步骤以使用 Jetpack:

  1. 启动 Android Studio 3.2 或更高版本,并像往常一样在 Create Android ProjectTarget Android Devices 中输入信息。
  2. 如果您用 Kotlin 编写应用,切记勾选 Create Android Project 屏幕上的 Include Kotlin support 框。

  3. Create Android Project 屏幕之后,Add an Activity to Mobile 屏幕将出现,其中提供了用于启动项目的各种模板。Activity & Fragment + ViewModel 模板(如图 1 所示)旨在使 Jetpack 轻松融入您的应用。点击该模板,然后点击 Next
  4. 图 1 Activity & Fragment + ViewModel 模板

  5. Configure Activity 屏幕上,输入用于启动项目的初始 Activity、Fragment 和 ViewModel 对象的名称。(可选)您还可以输入 Fragment 包路径。然后,点击 Finish
  6. 图 2. Activity & Fragment + ViewModel 模板的 Configure Activity 屏幕

打开项目中的 java 文件夹(如图 3 所示)显示项目最初包含三个类:StartActivityStartFragmentStartViewModel

图 3. Activity & Fragment + ViewModel 模板放入项目中的初始类

  • StartActivity 是应用的入口点。它是 Activity 的存根,充当显示在应用初始屏幕中的 Fragment 的容器。

  • StartFragment 是供您在应用中使用的初始 Fragment 的存根。

  • StartViewModel 是供您在应用中使用的初始 ViewModel 的存根。

利用 Jetpack

有了这些部分,您可能会选择实现 ViewModel 对象,如以下示例所示:

    class StartViewModel : ViewModel() {
        private val _data = MutableLiveData<String>()
        val data: LiveData<String>
            get() = _data

        init {
            _data.value = "Hello, Jetpack!"
        }
    }

如果应用包含多个屏幕,您可以添加 Navigation 类以实现 Fragment 的导航触发器。以下代码是实现导航触发器的示例:

    // 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 库

配置 Gradle 文件

要使用 Jetpack,您必须记住在 Gradle 文件中添加适当的代码行。由于此应用使用 ViewModelLiveDataNavigationController,因此其 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 组件来演示 Android 开发的最佳做法。