本文首發於微信公衆號「Android開發之旅」,歡迎關注 ,獲取更多技術乾貨
簡介
谷歌在 2018 I/O 大會上發佈了一系列輔助android開發者的實用工具,這套工具就是Jetpack,它是一套庫、工具和指南的合集,能夠幫助開發者更輕鬆地編寫和構建出色的 Android 應用程序。java
Jetpack中的有些組件並非第一次推出,其中LifeCycle、LiveData、ViewModel、Room等組件早在 Google I/O 2017年大會上就隨着 Android Architecture Component(AAC)一塊兒推出了,可是推廣效果通常。時隔一年後谷歌在AAC的基礎之上發佈了Jetpack,併發布了其餘工具以解決Android技術選型亂以及開發不規範等問題。android
Jetpack有如下特色:數據庫
- 加速開發:組件能夠單獨採用(不過這些組件是爲協同工做而構建的),同時利用 Kotlin 語言功能幫助您提升工做效率。
- 消除樣板代碼:Jetpack 可管理繁瑣的 Activity(如後臺任務、導航和生命週期管理)。
- 構建高質量的強大應用:Jetpack 組件圍繞現代化設計實踐構建而成,具備向後兼容性,能夠減小崩潰和內存泄漏。
Jetpack分類
Android Jetpack組件共分爲四大類,Foundation、Architecture、Behavior和UI。segmentfault
Foundation(基礎組件):
基礎組件提供了橫向功能,例如向後兼容性、測試以及Kotlin語言的支持。它包含以下組件庫:安全
- Android KTX:Android KTX 是一組 Kotlin 擴展程序,它優化了供Kotlin使用的Jetpack和Android平臺的API。以更簡潔、更愉悅、更慣用的方式使用Kotlin進行Android開發。
- AppCompat:提供了一系列以AppCompat開頭的API,以便兼容低版本的Android開發。
- Cars(Auto):有助於開發 Android Auto 應用的組件,無需擔憂特定於車輛的硬件差別(如屏幕分辨率、軟件界面、旋鈕和觸摸式控件)。
- Benchmark(檢測):從 Android Studio 中快速對基於 Kotlin 或 Java 的代碼進行基準化分析。衡量代碼性能,並將基準化分析結果輸出到 Android Studio 控制檯。
- Multidex(多Dex處理):爲方法數超過 64K 的應用啓用多 dex 文件。
- Security(安全):按照安全最佳作法讀寫加密文件和共享偏好設置。
- Test(測試):用於單元和運行時界面測試的 Android 測試框架。
- TV:構建可以讓用戶在大屏幕上體驗沉浸式內容的應用。
- Wear OS:有助於開發 Wear 應用的組件。
Architecture(架構組件):
架構組件可幫助開發者設計穩健、可測試且易維護的應用。它包含以下組件庫:微信
- Data Binding(數據綁定):數據綁定庫是一種支持庫,藉助該庫,可使用聲明式將佈局中的界面組件綁定到應用中的數據源。
- Lifecycles:方便管理 Activity 和 Fragment 生命週期,幫助開發者書寫更輕量、易於維護的代碼。
- LiveData:是一個可觀察的數據持有者類。與常規observable不一樣,LiveData是有生命週期感知的。
- Navigation:處理應用內導航所需的一切。
- Paging:幫助開發者一次加載和顯示小塊數據。按需加載部分數據可減小網絡帶寬和系統資源的使用。
- Room:Room持久性庫在SQLite上提供了一個抽象層,幫助開發者更友好、流暢的訪問SQLite數據庫。
- ViewModel:以生命週期感知的方式存儲和管理與UI相關的數據。
- WorkManager:即便應用程序退出或設備從新啓動,也能夠輕鬆地調度預期將要運行的可延遲異步任務。
谷歌推薦的應用架構:網絡
![架構圖.png 架構圖.png](http://static.javashuo.com/static/loading.gif)
Behavior(行爲):
行爲組件可幫助開發者的應用與標準 Android 服務(如通知、權限、分享和 Google 助理)相集成。它包含以下組件庫:架構
- CameraX:幫助開發者簡化相機應用的開發工做。它提供一致且易於使用的 API 界面,適用於大多數 Android 設備,並可向後兼容至 Android 5.0(API 級別 21)。
- DownloadManager(下載管理器):可處理長時間運行的HTTP下載,並在出現故障或在鏈接更改和系統從新啓動後重試下載。
- Media & playback(媒體&播放):用於媒體播放和路由(包括 Google Cast)的向後兼容 API。
- Notifications(通知):提供向後兼容的通知 API,支持 Wear 和 Auto。
- Permissions(權限):用於檢查和請求應用權限的兼容性 API。
- Preferences(偏好設置):提供了用戶可以改變應用的功能和行爲能力。
- Sharing(共享):提供適合應用操做欄的共享操做。
- Slices(切片):建立可在應用外部顯示應用數據的靈活界面元素。
UI(界面組件):
界面組件可提供各種view和輔助程序,讓應用不只簡單易用,還能帶來愉悅體驗。它包含以下組件庫:併發
- Animation & Transitions(動畫&過分):提供各種內置動畫,也能夠自定義動畫效果。
- Emoji(表情符號):使用戶在未更新系統版本的狀況下也可使用表情符號。
- Fragment:組件化界面的基本單位。
- Layout(佈局):xml書寫的界面佈局或者使用Compose完成的界面。
- Palette(調色板):從調色板中提取出有用的信息。
使用Jetpack
目前Jetpack組件已經包含在AndroidX中,因此若是項目以及遷移到了AndroidX了,就不須要額外導包。若是沒有兼容AndroidX 那麼須要在gradle中進行配置:app
打開項目的build.gradle添加google()代碼庫,以下:
allprojects {
repositories {
google()
jcenter()
}
}
好比只是單純的使用Lifecycle,那麼打開app的build.gradle 進行依賴的添加:
implementation "android.arch.lifecycle:runtime:$lifecycle_version"
annotationProcessor "android.arch.lifecycle:compiler:$lifecycle_version"
implementation "android.arch.lifecycle:common-java8:$lifecycle_version"
總結
本篇文章主要書介紹了Jetpack組件的由來以及分類,詳細解釋了每個細分組件的含義。讓你們對Jetpack有充分的瞭解,每個組件均可以單獨或者組合使用。後續咱們將重點講解 Architecture(架構組件)的相關組件的使用。掃描下方二維碼關注公衆號,及時獲取文章推送。
推薦閱讀
Android Jetpack架構組件 — Lifecycle入坑指南
Jetpack架構組件 — LiveData與ViewModel入坑詳解
Android Jetpack架構組件 — Room入坑詳解
掃描下方二維碼關注公衆號,獲取更多技術乾貨。
![二維碼.jpg 二維碼.jpg](http://static.javashuo.com/static/loading.gif)