還不知道Android Jetpack是什麼?你就out了

本文首發於微信公衆號「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

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

相關文章
相關標籤/搜索