Android Jetpack架構組件(一) 瞭解JetPack組件

一 前言

Android系統推出到現在已經有十多年了,發展也越來越成熟了。但是剛開始,開發Android的框架還是比較少的,也沒有什麼規範,大多數代碼都是自己寫,後來推出了一系列的框架幫助開發者開發,比如網絡請求,從開始的Volley,到後來的OkHttp,Retrofit等,再比如圖片加載框架,從開始的ImageLaoder,到後來的Picasso,Fresco, Glide等,還有其它的框架,比如XUtils,Butter Knife,各種Bus系列,各種Rx系列,MVP,MVVM等,框架越來越多,有Google自己的,也有開發者寫的。框架越多,可供選擇的也就越多,開發者可以選擇不同的框架,也就造成了做出的應用質量參差不齊,這顯然不是Google想看到的。因此,Google在I/O 2018大會上推出了Jetpack,希望解決上述問題。

二 Jetpack是什麼

Jetpack是一套庫,工具和指南,旨在幫助開發者更輕鬆地編寫優質應用。這些組件可幫助您遵循最佳做法、讓您擺脫編寫樣板代碼的工作並簡化複雜任務,以便您將精力集中放在所需的代碼上。

從Google I/O 2017開始,Google 開始推出Architecture Component, ORM庫Room, 用戶生命週期管理的ViewModel/ListData。
Google I/O 2018將Support lib 更名爲androidx. 將許多Google認爲是正確的方案和實踐集中起來。以高效的開發Android APP。

Jetpack主要有以下幾個特點:

  • 1 加速開發
    組件可以單獨採用(不過這些組件是爲協同工作而構建的),同時利用 Kotlin 語言功能幫助您提高工作效率。

-2 消除樣板代碼
Android Jetpack 可管理繁瑣的 Activity(如後臺任務、導航和生命週期管理),以便您可以專注於如何讓自己的應用出類拔萃。

  • 3 構建高質量的強大應用
    Android Jetpack 組件圍繞現代化設計實踐構建而成,具有向後兼容性,可以減少崩潰和內存泄漏。

官方介紹來看,Jetpack總體包含四個部分:分別是Architecture、Foundationy、Behavior、UI,從下圖可以看到

下面分別介紹一下各個部分:

一 基礎

基礎組件可提供橫向功能,例如向後兼容性、測試和 Kotlin 語言支持。

  • Android KTX:優化了供Kotlin使用的Jetpack和Android平臺API。幫助開發者以更簡潔、更愉悅、更慣用的方式使用Kotlin進行Android開發。
  • AppCompat:幫助較低版本的Android系統進行兼容。
  • Auto: 開發Android Auto應用的組件,提供了適用於所有車輛的標準化界面和用戶交互。
  • 檢測:從AndroidStudio中快速檢測基於Kotlin或Java的代碼。
  • 多Dex處理:爲具有多個Dex文件應用提供支持。
  • 安全:安全的讀寫加密文件和共享偏好設置。
  • 測試:用於單元和運行時界面測試的Android 測試框架。
  • TV: 構建可讓用戶在大屏幕上體驗沉浸式內容的應用。
  • Wear OS:開發Wear應用的組件。

二 架構

  • DataBinding:以聲明方式將可觀察數據綁定到界面元素,通常和ViewModel配合使用。
  • Lifecycle:用於管理Activity和Fragment的生命週期,可幫助開發者生成更易於維護的輕量級代碼。
  • LiveData: 在底層數據庫更改時通知視圖。它是一個可觀察的數據持有者,與常規observable不同,LiveData是生命週期感知的。
  • Navigation:處理應用內導航。
  • Paging:可以幫助開發者一次加載和顯示小塊數據,按需加載部分數據可減少網絡帶寬和系統資源的使用。
  • Room:友好、流暢的訪問SQLite數據庫。它在SQLite的基礎上提供了一個抽象層,允許更強大的數據庫訪問。
  • ViewModel: 以生命週期的方式管理界面相關的數據,通常和DataBinding配合使用,爲開發者實現MVVM架構提供了強有力的支持。
  • WorkManager: 管理Android的後臺的作業,即使應用程序退出或設備重新啓動也可以運行可延遲的異步任務。架構組件可幫助您設計穩健、可測試且易維護的應用。

三 行爲

行爲組件可幫助您的應用與標準 Android 服務(如通知、權限、分享和 Google 助理)相集成。

  • CameraX:幫助開發簡化相機應用的開發工作。它提供一致且易於使用的界面,適用於大多數Android。 設備,並可向後兼容至Android 5.0(API 21)。
  • DownloadManager:處理長時間運行的HTTP下載的系統服務。
    媒體和播放:用於媒體播放和路由(包括Google Cast)的向後兼容API。
  • 通知:提供向後兼容的通知API,支持Wear和Auto。
  • 權限:用於檢查和請求應用權限的兼容性API。
  • 偏好設置:創建交互式設置,建議使用AndroidX Preference Library庫將用戶可配置設置集成到應用中。
  • 共享:可以更輕鬆地實現友好的用戶共享操作。
  • 切片:切片是一種UI模板,創建可在應用外部顯示應用數據的靈活界面元素。

四 界面

界面組件可提供微件和輔助程序,讓您的應用不僅簡單易用,還能帶來愉悅體驗。瞭解有助於簡化界面開發的Jetpack Compose。

  • Animation and Transition:該框架包含用於常見效果的內置動畫,並允許開發者創建自定義動畫和生命週期回調。
  • Emoji Compatibility:即便用戶沒有更新Android系統也可以獲取最新的表情符號。
  • Fragment:組件化界面的基本單位。
  • 佈局:用XML中聲明UI元素或者在代碼中實例化UI元素。
  • 調色板:從調色板中提取出有用的信息。

三 AndroidX支持庫

Android 9.0(API 級別 28)發佈後,新版支持庫 AndroidX 也隨之誕生,它屬於 Jetpack。除了現有的支持庫,AndroidX 庫還包含最新的 Jetpack 組件。

當然,我們可以繼續使用支持庫。以往的工件(27 及更早版本,並打包爲 android.support.*)在 Google Maven 中仍然可用。不過,所有新庫的開發都將在 AndroidX 庫中進行。也就是說,Android以後所有的新庫的開發都將在AndroidX進行。

另外,Google還建議將現有的項目遷移到AndroidX,遷移方法

四 如何看待Jetpack

Jetpack,相當於Google把自己的生態重新整理了一遍,是Android的未來,Jetpack裏包含的內容,未來也會是Google大力推廣和維護的,對於開發者而言,可以放心地去使用。目前來說,Jetpack還不是很成熟,許多庫還是alpha版本,但是總的來說,Jetpack的推廣,對開發者來說,還是利大於弊的。
因此,對於我們開發者,應該儘早擁抱Jetpack,早日開發出規範,優質的應用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章