文檔將向您介紹構(gòu)建基于Jetpack的簡(jiǎn)單應(yīng)用程序的基本過(guò)程。
一、設(shè)置你的應(yīng)用程序
執(zhí)行以下步驟將應(yīng)用程序設(shè)置為使用Jetpack:
1、啟動(dòng)Android Studio 3.2或更高版本,并一如既往地在“Create Android Project”和“Target Android Devices”中輸入信息。
如果您在Kotlin中編寫(xiě)應(yīng)用程序,請(qǐng)記得在Create Android Project屏幕上查看Include Kotlin支持框。
2、在“Create Android Project”屏幕后,將顯示“Add an Activity to Mobile”屏幕,為您提供用于啟動(dòng)項(xiàng)目的各種模板。 Activity&Fragment + ViewModel模板(如圖1所示)旨在使Jetpack輕松融入您的應(yīng)用程序。 單擊該模板,然后單擊“Next”。

圖1. Activity&Fragment + ViewModel模板
3、在“Configure Activity”屏幕上,輸入用于啟動(dòng)項(xiàng)目的初始活動(dòng),片段和ViewModel對(duì)象的名稱。 (可選)您還可以輸入片段包路徑。 然后,單擊“Finish”。

圖2. Activity&Fragment + ViewModel模板的Configure Activity屏幕
在項(xiàng)目中打開(kāi)java文件夾顯示,如圖3所示,項(xiàng)目最初包含三個(gè)類:
StartActivity,StartFragment和StartViewModel。
圖3. Activity&Fragment + ViewModel模板放入項(xiàng)目的初始類
-
StartActivity是您應(yīng)用的入口點(diǎn)。 它是Activity的存根,用作應(yīng)用程序初始屏幕中顯示的片段的容器。 -
StartFragment是初始片段的存根,供您在應(yīng)用中使用。 -
StartViewModel是初始ViewModel的存根,供您在應(yīng)用中使用。
2、利用Jetpack
有了這些部分,您可以選擇實(shí)現(xiàn)ViewModel對(duì)象,如下例所示:
class StartViewModel : ViewModel() {
private val _data = MutableLiveData<String>()
val data: LiveData<String>
get() = _data
init {
_data.value = "Hello, Jetpack!"
}
}
如果您的應(yīng)用包含多個(gè)屏幕,則可以添加Navigation類以實(shí)現(xiàn)片段的導(dǎo)航觸發(fā)器。 以下代碼是實(shí)現(xiàn)導(dǎo)航觸發(fā)器的示例:
// 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) }
如果您的應(yīng)用需要本地訪問(wèn)SQLite數(shù)據(jù),您還可以添加Room持久性庫(kù)。 如果您的應(yīng)用需要在單個(gè)屏幕上顯示大量數(shù)據(jù),則應(yīng)考慮使用分頁(yè)庫(kù)。
三、配置Gradle文件
要使用Jetpack,您必須記住在gradle文件中添加適當(dāng)?shù)男小?由于此應(yīng)用程序使用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
四、學(xué)到更多
要了解有關(guān)本文檔中討論的示例和類的更多信息,請(qǐng)參閱以下資源:
- Android架構(gòu)組件
- ComponentsBasicSample
向日葵演示應(yīng)用程序使用許多不同的Jetpack組件來(lái)演示Android開(kāi)發(fā)最佳實(shí)踐。