Jetpack 包含一系列程式庫,可協助開發人員遵循最佳做法、減少樣板程式碼,並編寫在各 Android 版本和裝置中都能一致運作的程式碼,讓開發人員專心處理重要的程式碼。
Jetpack Compose
這是用於打造原生使用者介面的新型工具包,可讓您簡化並加快在 Android 裝置上的使用者介面開發。

瞭解如何使用 Jetpack

瞭解 Android 基本概念中必要的 Jetpack 程式庫,使用 Compose 課程並減少應用程式中的樣板
實作可簡化資料層的三個 Jetpack 程式庫:LiveData、ViewModel 和 Room
探索現代 Android 架構在實際應用程式中實作的方式

* 熱門和常用的程式庫優先列出

activity *存取以 Acitivity 為基礎建構的可組合 API。
appcompat *允許在平台的舊版 API 上存取新 API (多數使用 Material Design)。
appsearch *為使用者打造自訂應用程式內搜尋功能。
camera *建構行動相機應用程式。
compose *使用可組合函式描述使用者介面的形狀和資料依附元件,以程式輔助方式定義使用者介面。
databinding *使用宣告式格式,將版面配置中的 UI 元件繫結至應用程式中的資料來源。
fragment *將應用程式區隔成在一個「活動」中代管的多個獨立畫面。
hilt *擴充 Dagger Hilt 的功能,以允許插入 androidx 程式庫中特定類別的依附元件。
lifecycle *建構生命週期感知元件,以根據活動或片段目前的生命週期狀態調整行為。
Material Design 元件 * Android 適用的模組化和可自訂 Material Design UI 元件。
navigation *建構應用程式內使用者介面並設計相關結構、處理深層連結,以及規劃在不同畫面之間瀏覽的動線。
paging *以分頁方式載入資料,並在 RecyclerView 中顯示。
room *建立、儲存和管理 SQLite 資料庫備份的持續資料。
test *在 Android 中測試。
work *安排及執行可延後且設有限制條件的背景工作。
ads無論是否有 Play 服務都取得廣告 ID。
annotation列出中繼資料,協助工具開發人員和其他開發人員瞭解應用程式的程式碼。
arch.core其他 arch 依附元件的協助程式,包括可和 LiveData 搭配使用的 JUnit 測試規則。
asynclayoutinflater以非同步方式加載版面配置,以避免 UI 發生卡頓。
autofill透過副檔名提示以提高自動填入準確度。
benchmark在 Android Studio 中準確評估程式碼的效能。
biometric使用生物特徵或裝置憑證進行驗證,以及執行加密作業。
藍牙使用 Android 平台的藍牙功能,並搭配回溯相容的 API。
browser在使用者的預設瀏覽器中顯示網頁。
camera.viewfinder相機的獨立可組合函式和 View 觀景窗
car-app建構適用於 Android Auto 和 Android Automotive OS 的範本應用程式。
cardview採用圓角和投射陰影的 Material Design 卡片模式。
collection降低小型現有集合和新集合的記憶體影響。
compose.animation在 Jetpack Compose 應用程式中建構動畫,提供豐富的使用者體驗。
compose.compiler透過 Kotlin 編譯器外掛程式轉換 @Composable 函式,並啟用最佳化功能。
compose.foundation透過現成的構成元素編寫 Jetpack Compose 應用程式,然後進一步擴充基礎,建構出自己的設計系統元件。
compose.material運用現成的 Material Design 元件建構 Jetpack Compose UI。這是更高層級的 Compose 進入點,用意是確保提供的元件與 www.material.io 上所述元件相符。
compose.material3運用新一代的 Material Design 3 元件建構 Jetpack Compose UI。Material 3 提供新的主題設定和元件,以及動態色彩等 Material You 個人化功能,可呼應全新的 Android 12 視覺風格和系統 UI。
compose.material3.Adaptive使用 Material 3 自適應程式庫建立自適應式 UI,這些 UI 會根據目前的視窗設定 (例如視窗大小類別或裝置姿勢) 自動調整。這個程式庫提供預設的架構實作項目,以及必要的建構模塊可組合項,讓您自行打造自訂體驗。
compose.runtimeCompose 程式設計模型和狀態管理的基本構成元素,以及 Compose Compiler 外掛程式指定的核心執行階段。
compose.ui與裝置互動所需的 Compose UI 基礎元件,包括版面配置、繪圖及輸入。
concurrent使用協同程式將任務移出主執行緒,並充分運用 ListenableFuture。
constraintlayout透過相對定位,靈活調整小工具的位置和大小。
contentpager在背景執行緒中將所有 ContentProvider 資料進行載入和分頁。
coordinatorlayout定位頂層應用程式小工具,例如 AppBarLayout 和 FloatingActionButton。
core以最新的平台功能和 API 為目標,同時支援舊裝置。
core.uwb在支援的裝置上實作 UWB (超寬頻)。
憑證 這個程式庫可針對使用者的憑證(包括密碼、密碼金鑰和聯合憑證) 提供整合式存取權。請使用這個程式庫提供流暢安全的登入體驗。
cursoradapter向 ListView 小工具公開遊標資料。
customview導入自訂檢視畫面。
datastore以非同步且一致的交易式方式儲存資料,克服 SharedPreferences 的一些缺點
documentfile查看檔案文件。
draganddrop接受來自其他應用程式或應用程式之中的拖曳資料,並顯示一致的放置目標預設用途。
drawerlayout實作 Material Design 導覽匣小工具。
dynamicanimation使用以物理為基礎的動畫 API 建立流暢動畫。
emoji在目前裝置和舊裝置上顯示表情符號。
emoji2在目前裝置和舊裝置上顯示表情符號。
enterprise建立可供企業直接使用的應用程式。
exifinterface讀取及寫入圖片檔 EXIF 標記。
games在應用程式中使用原生 Android Game SDK 以執行複雜的遊戲任務,例如 Frame Pacing。
glance使用 Jetpack Compose 樣式 API 建構遠端介面的版面配置。
圖形跨多個 Android 平台版本善用圖像設施
gridlayout實作格線版面配置。
health以跨平台技術建構高效能的健康類別應用程式。
health.connect允許開發人員讀取或寫入使用者的健康與健身記錄。
heifwriter使用 Android 裝置可用的轉碼器,以 HEIF 格式編碼圖片或圖片集合。
ink啟發同級最佳的觸控筆應用程式。降低開發人員的進入門檻,讓他們能提供高效能、精美的書寫體驗。
input預測未來的 MotionEvents 事件,藉此減少輸入互動的延遲時間
interpolator在舊平台上使用動畫內插器。
javascriptengine讓 Android 應用程式得以評估 JavaScript。
jetifier這個獨立工具可將程式庫的依附元件,從已淘汰的支援程式庫遷移至對等的 AndroidX 依附元件。
leanback使用 Compose for TV 而非這個構件。
legacy這個構件和其類別已淘汰。自 Android 8 版本開始,由於背景檢查限制的因素,這個類別不再適用。
lintLint 檢查功能可驗證 Gradle API 的用法
loader載入在設定變更後仍然有效的 UI 資料。
localbroadcastmanager這個構件和其類別已淘汰。請改用 LiveData 或回應式串流。
media與其他應用程式共用媒體內容和控制項。已由 media2 取代。
media2與其他應用程式共用媒體內容和控制項。
media3 *媒體用途支援程式庫。
mediarouter利用通用使用者介面,在遠端接收器裝置上啟用媒體顯示和播放功能。
multidex在搭載 Android 5 之前版本的裝置上部署含有多個 dex 檔案的應用程式。
metrics追蹤及回報應用程式的各種執行階段指標
palette擷取圖片中具有代表性的調色盤。
PDF可在應用程式中新增 PDF 檢視功能的程式庫。
percentlayout這個構件和其類別已淘汰。請改用 ConstraintLayout 和相關版面配置。
preference建立互動式設定畫面,無需存取裝置儲存空間或管理 UI。
print透過應用程式列印相片、文件和其他圖形和圖片。
privacysandbox.activity待辦事項
privacysandbox.ads這個程式庫可讓您整合隱私權保護 API,這種 API 屬於 Android 版 Privacy Sandbox。
privacysandbox.pluginsAndroid Privacy Sandbox Sdk 程式庫 Gradle 外掛程式
privacysandbox.sdkruntime這個程式庫可為 SdkRuntime 感知取用者提供元件
privacysandbox.tools運用 Android 版 Privacy Sandbox 功能的程式庫
privacysandbox.ui待辦事項
profileinstaller在 ART 讀取時間編譯追蹤記錄之前,讓程式庫預先填入。
recommendation將內容推薦到 Android TV 啟動器的主畫面。
recyclerview在 UI 中顯示大量資料,同時將記憶體用量降到最低。
remotecallback建立包裝函式,方便開發人員提供 PendingIntent。
resourceinspection在 Android Studio 即時版面配置檢查器中,顯示自訂檢視屬性。
savedstate編寫可插入的元件,在程序失敗時儲存 UI 狀態,並在程序重新啟動時還原。
安全技術安全地管理金鑰、加密檔案以及共用偏好設定。
sharetarget提供回溯相容性,以便使用捷徑做為直接分享目標。
slice顯示應用程式以外的範本 UI 元素。
slidingpanelayout實作滑動窗格 UI 模式。
startup在應用程式啟動時,以簡單且有效率的方式初始化元件。
sqlite使用本機 SQLite 資料庫。如果可以的話,請改用 Room。
swiperefreshlayout實作滑動重新整理 UI 模式。
test.uiautomator測試跨應用程式功能 UI 的架構
textclassifier辨識文字中的對話、連結、選項和其他類似結構。
tracing將追蹤記錄事件寫入系統追蹤緩衝區。
transition使用開始和結束版面配置為使用者介面動作製作動畫。
電視為開發人員提供 Compose 和 Material Design 功能,以便編寫電視專用應用程式
tvprovider提供 Android TV 頻道。
vectordrawable算繪向量圖形。
versionedparcelable提供穩定且精簡的二進位序列化格式,可在程序之間傳遞,或是以安全的方式保留。
viewpager以可滑動格式顯示 View 或 Fragment。如果可以的話,請改用 viewpager2。
viewpager2以可滑動格式顯示檢視畫面或片段。
wear建立 Wear OS by Google 智慧型手錶適用的應用程式。
wear.compose針對穿戴式裝置編寫 Jetpack Compose 應用程式,提供可支援穿戴式特定裝置、大小、形狀和瀏覽手勢的功能。
wear.protolayout這個程式庫可定義要在遠端介面上轉譯/評估的一組 UI 版面配置和非 UI 運算式。
wear.tiles建立 Wear OS by Google 智慧型手錶適用的應用程式。
wear.watchface建立 Wear OS by Google 智慧型手錶適用的應用程式。
webkit在 Android 5 以上版本使用新型 WebView API。
window協助支援不同的裝置板型規格,例如折疊式裝置。
window.extensions.core適用於視窗管理員程式庫擴充功能的 Core API
Compose 2023 年 8 月
Jetpack Compose 1.5.0 已改為穩定版,並帶來重大效能改善,包括對高階修飾符 (例如 `Clickable`) 進行重構,可將組合時間縮短 80%。8 月 23 版 Compose 的記憶體配置功能也改善了 70%,尤其是在圖形堆疊中,這將減少裝置上 Compose 的記憶體占用空間
Wear Compose 和資訊方塊 1.2
Wear Compose 和 Wear Tiles 已移至穩定版,進一步改善 WearOS 開發人員的體驗。這兩者互相補足,Wear Compose 可用於在 Wear 裝置上建構複雜的應用程式畫面,而 Wear 資訊方塊可用於建立應用程式資訊方塊。新的 Wear Compose 版本包含可展開項目和滑動顯示等新功能。Wear Tiles 版本現在也支援小工具動畫和平台資料繫結 (例如健康資料來源)。
Window 1.1
1.1 可讓活動嵌入 API 穩定運作,讓 WhatsApp、eBay 和 Temu 等應用程式提供大螢幕版面配置。這個 API 提供了豐富的功能,因為開發人員可以修改分割畫面行為、檢查 (及變更) 分割畫面狀態、實作水平分割,以及在完整視窗中啟動互動視窗。
版本資訊
詳情請參閱版本資訊。

使用 Android Jetpack 的優點

Android Jetpack 程式庫是以現代設計做法為基礎,具備回溯相容性,可減少當機和記憶體流失的情況。
Android Jetpack 會處理各種繁瑣任務,例如背景工作、導覽和生命週期管理,您可以專注打造優質應用程式。
程式庫在各 Android 版本和裝置上的運作方式一致,可降低複雜性。

新聞和影片