1、什么是Jetpack
Google 官方解釋:
Jetpack 是一個由多個庫組成的套件呆抑,可幫助開發(fā)者遵循最佳做法汁展,減少樣板代碼并編寫可在各種 Android 版本和設(shè)備中一致運行的代碼厌殉,讓開發(fā)者精力集中編寫重要的代碼公罕。
Jetpack 是 Google 為解決 Android 開發(fā)碎片化耀销,打造成熟健康生態(tài)圈提出的戰(zhàn)略規(guī)劃,是 Google 對 Android 未來提出的發(fā)展方向罐柳,同時它也是眾多優(yōu)秀 Android 組件的集合狰住。
2、為何使用 Android Jetpack
遵循最佳做法:Android Jetpack 組件采用最新的設(shè)計方法構(gòu)建肮蛹,具有向后兼容性创南,可以減少崩潰和內(nèi)存泄露。
消除樣板代碼:Android Jetpack 可以管理各種繁瑣的 Activity(如后臺任務(wù)昆码、導(dǎo)航和生命周期管理)邓深,以便您可以專注于打造出色的應(yīng)用芥备。
減少不一致:這些庫可在各種 Android 版本和設(shè)備中以一致的方式運作,助您降低復(fù)雜性萌壳。
Jetpack 的優(yōu)勢:
Jetpack 擁有基于生命周期感知的能力袱瓮,可以減少 NPE(空指針異常) 崩潰、內(nèi)存泄漏绊起,為開發(fā)出健壯且流暢的程序提供強力保障燎斩;
Jetpack 可以消除大量重復(fù)樣板式的代碼蜂绎,可以加速 Android 的開發(fā)進(jìn)程师枣,組件可搭配工作萧落,也可單獨使用,同時配合 Kotlin 語言特性能夠顯著提高工作效率陨倡;
統(tǒng)一開發(fā)模式许布,拋棄傳統(tǒng)的 MVC, MVP;
3、JetPack 的構(gòu)成
Android Jetpack組件共分為四大類灵妨,Architecture落竹、Foundation述召、Behavior和UI。
Architecture(架構(gòu)組件):
架構(gòu)組件可幫助開發(fā)者設(shè)計穩(wěn)健积暖、可測試且易維護(hù)的應(yīng)用夺刑。它包含如下組件庫:
- Data Binding(數(shù)據(jù)綁定):數(shù)據(jù)綁定庫是一種支持庫,借助該庫存淫,可以使用聲明式將布局中的界面組件綁定到應(yīng)用中的數(shù)據(jù)源沼填。
- Lifecycles:方便管理 Activity 和 Fragment 生命周期坞笙,幫助開發(fā)者書寫更輕量荚虚、易于維護(hù)的代碼忌愚。
- LiveData:是一個可觀察的數(shù)據(jù)持有者類。與常規(guī)observable不同院水,LiveData是有生命周期感知的简十。
- Navigation:處理應(yīng)用內(nèi)導(dǎo)航所需的一切螟蝙。
- Paging:幫助開發(fā)者一次加載和顯示小塊數(shù)據(jù)。按需加載部分?jǐn)?shù)據(jù)可減少網(wǎng)絡(luò)帶寬和系統(tǒng)資源的使用场斑。
- Room:Room持久性庫在SQLite上提供了一個抽象層牵署,幫助開發(fā)者更友好、流暢的訪問SQLite數(shù)據(jù)庫青责。
- ViewModel:以生命周期感知的方式存儲和管理與UI相關(guān)的數(shù)據(jù)取具。
- WorkManager:即使應(yīng)用程序退出或設(shè)備重新啟動暇检,也可以輕松地調(diào)度預(yù)期將要運行的可延遲異步任務(wù)。
Foundation(基礎(chǔ)組件):
基礎(chǔ)組件提供了橫向功能心墅,例如向后兼容性榨乎、測試以及Kotlin語言的支持蜜暑。它包含如下組件庫:
- Android KTX:Android KTX 是一組 Kotlin 擴(kuò)展程序,它優(yōu)化了供Kotlin使用的Jetpack和Android平臺的API隐绵。以更簡潔、更愉悅依许、更慣用的方式使用Kotlin進(jìn)行Android開發(fā)峭跳。
- AppCompat:提供了一系列以AppCompat開頭的API,以便兼容低版本的Android開發(fā)悬襟。
- Cars(Auto):有助于開發(fā) Android Auto 應(yīng)用的組件拯刁,無需擔(dān)心特定于車輛的硬件差異(如屏幕分辨率、軟件界面割捅、旋鈕和觸摸式控件)帚桩。
- Benchmark(檢測):從 Android Studio 中快速對基于 Kotlin 或 Java 的代碼進(jìn)行基準(zhǔn)化分析朗儒。衡量代碼性能参淹,并將基準(zhǔn)化分析結(jié)果輸出到 Android Studio 控制臺。
- Multidex(多Dex處理):為方法數(shù)超過 64K 的應(yīng)用啟用多 dex 文件恳不。
- Security(安全):按照安全最佳做法讀寫加密文件和共享偏好設(shè)置。
- Test(測試):用于單元和運行時界面測試的 Android 測試框架开呐。
- TV:構(gòu)建可讓用戶在大屏幕上體驗沉浸式內(nèi)容的應(yīng)用烟勋。
- Wear OS:有助于開發(fā) Wear 應(yīng)用的組件。
Behavior(行為):
行為組件可幫助開發(fā)者的應(yīng)用與標(biāo)準(zhǔn) Android 服務(wù)(如通知筐付、權(quán)限卵惦、分享和 Google 助理)相集成。它包含如下組件庫:
- CameraX:幫助開發(fā)者簡化相機應(yīng)用的開發(fā)工作瓦戚。它提供一致且易于使用的 API 界面沮尿,適用于大多數(shù) Android 設(shè)備,并可向后兼容至 Android 5.0(API 級別 21)较解。
- DownloadManager(下載管理器):可處理長時間運行的HTTP下載畜疾,并在出現(xiàn)故障或在連接更改和系統(tǒng)重新啟動后重試下載赴邻。
- Media & playback(媒體&播放):用于媒體播放和路由(包括 Google Cast)的向后兼容 API啡捶。
- Notifications(通知):提供向后兼容的通知 API姥敛,支持 Wear 和 Auto。
- Permissions(權(quán)限):用于檢查和請求應(yīng)用權(quán)限的兼容性 API瞎暑。
- Preferences(偏好設(shè)置):提供了用戶能夠改變應(yīng)用的功能和行為能力彤敛。
- Sharing(共享):提供適合應(yīng)用操作欄的共享操作欢摄。
- Slices(切片):創(chuàng)建可在應(yīng)用外部顯示應(yīng)用數(shù)據(jù)的靈活界面元素瞬沦。
UI(界面組件):
界面組件可提供各類view和輔助程序,讓應(yīng)用不僅簡單易用坏平,還能帶來愉悅體驗揍拆。它包含如下組件庫:
- Animation & Transitions(動畫&過度):提供各類內(nèi)置動畫渠概,也可以自定義動畫效果。
- Emoji(表情符號):使用戶在未更新系統(tǒng)版本的情況下也可以使用表情符號嫂拴。
- Fragment:組件化界面的基本單位播揪。
- Layout(布局):xml書寫的界面布局或者使用Compose完成的界面。
- Palette(調(diào)色板):從調(diào)色板中提取出有用的信息筒狠。