1. Android Jetpack 是什么?
Android Jetpack 是一套組件、工具和指導(dǎo),可以幫助開發(fā)者擺脫編寫樣板代碼并簡化復(fù)雜任務(wù),并且Jetpack組件提供向后的兼容性, 總之可以讓開發(fā)者更快的開發(fā)更穩(wěn)定且易維護(hù)的應(yīng)用。
2. Android Jetpack 都有哪些東西?
先來看一張圖,這張圖里包含了大部分Jetpack 組件,google一直在不停的更新Jetpack,后續(xù)會有更多組件會加入進(jìn)去。

從上圖可以看到,Jetpack 分為4類:Architecture(架構(gòu))、Foundationy(基礎(chǔ))、Behavior(行為)、UI(界面)
2.1 Architecture(架構(gòu))
架構(gòu)組件可幫助您設(shè)計穩(wěn)健、可測試且易維護(hù)的應(yīng)用
Data Binding 數(shù)據(jù)綁定:以聲明方式將可觀察數(shù)據(jù)綁定到界面元素;
Lifecycles 生命周期:管理您的 Activity 和 Fragment 生命周期;
LiveData: 在底層數(shù)據(jù)庫更改時通知視圖;
Navigation: 處理應(yīng)用內(nèi)導(dǎo)航所需的一切
Paging: 逐步從您的數(shù)據(jù)源按需加載信息
Room: 流暢地訪問 SQLite 數(shù)據(jù)庫
ViewModel: 以注重生命周期的方式管理界面相關(guān)的數(shù)據(jù)
WorkManager: 管理您的 Android 后臺作業(yè)
下圖是Google 官方推薦的架構(gòu):

2.2 Foundationy(基礎(chǔ))
基礎(chǔ)組件可提供橫向功能,例如向后兼容性、測試和 Kotlin 語言支持。
Android KTX : 提供 kotlin 語言支持;
AppCompat : 兼容較低版本的Android 系統(tǒng);
Multidex:為具有多個 DEX 文件的應(yīng)用提供支持
Test :用于單元和運行時界面測試的 Android 測試框架
2.3 Behavior(行為)
集成標(biāo)準(zhǔn) Android 服務(wù)(如通知、權(quán)限、分享和 Google 助理)
CameraX :輕松地向應(yīng)用中添加相機(jī)功能
Download manager:安排和管理大量下載任務(wù)
Media & playback:用于媒體播放和路由(包括 Google Cast)的向后兼容 API
Notifications:提供向后兼容的通知 API,支持 Wear 和 Auto
Permissions : 用于檢查和請求應(yīng)用權(quán)限的兼容性 API
Preferences(偏好設(shè)置)
Sharing 提供適合應(yīng)用操作欄的共享操作
Slices 創(chuàng)建可在應(yīng)用外部顯示應(yīng)用數(shù)據(jù)的靈活界面元素
2.4 UI(界面)
提供微件和輔助程序,簡化界面開發(fā)
Animation & transitions :動畫和過渡
Auto(Auto組件)
Emoji:標(biāo)簽
Fragment
Layout布局
Palette :調(diào)色板
TV :有助于開發(fā) Android TV 應(yīng)用的組件
Wear OS by Google :穿戴設(shè)備
3. 使用Jetpack 有什么好處?
3.1 加速開發(fā)
組件可以單獨采用(不過這些組件是為協(xié)同工作而構(gòu)建的),同時利用 Kotlin 語言功能幫助您提高工作效率。
3.2 消除樣板代碼
Android Jetpack 可管理繁瑣的 Activity(如后臺任務(wù)、導(dǎo)航和生命周期管理)
3.3 構(gòu)建高質(zhì)量的強(qiáng)大應(yīng)用
Android Jetpack 組件圍繞現(xiàn)代化設(shè)計實踐構(gòu)建而成,具有向后兼容性,可以減少崩潰和內(nèi)存泄漏。
4. 如何在應(yīng)用中使用Jetpack?
在項目的 build.gradle 文件并添加 google() 代碼庫,如下所示:
allprojects {
repositories {
google()
jcenter()
}
}
如果想要引入LiveData, ViewModel 就在app 的build.gradle 加入如下代碼,其他組件類似
dependencies {
def lifecycle_version = "2.2.0"
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
...
}
接下來我會總結(jié)和分析Jetpack 中一些常用的組件。