Android Jetpack
Jetpack 包含一系列程式庫,可協助開發人員遵循最佳做法、減少樣板程式碼,並編寫在各 Android 版本和裝置中都能一致運作的程式碼,讓開發人員專心處理重要的程式碼。
瞭解如何使用 Jetpack
基礎課程
瞭解 Android 基本概念中必要的 Jetpack 程式庫,使用 Compose 課程並減少應用程式中的樣板
實作教學課程
實作可簡化資料層的三個 Jetpack 程式庫:LiveData、ViewModel 和 Room
立即使用 Android 範例應用程式
探索現代 Android 架構在實際應用程式中實作的方式
Jetpack 程式庫 探索所有程式庫
* 熱門和常用的程式庫優先列出
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.runtime | Compose 程式設計模型和狀態管理的基本構成元素,以及 Compose Compiler 外掛程式指定的核心執行階段。 |
compose.ui | 與裝置互動所需的 Compose UI 基礎元件,包括版面配置、繪圖及輸入。 |
concurrent | 使用協同程式將任務移出主執行緒,並充分運用 ListenableFuture。 |
constraintlayout | 使用相對定位,靈活調整小工具的位置和大小。 |
contentpager | 在背景執行緒中將所有 ContentProvider 資料進行載入和分頁。 |
coordinatorlayout | 定位頂層應用程式小工具,例如 AppBarLayout 和 FloatingActionButton。 |
core | 以最新的平台功能和 API 為目標,同時支援舊裝置。 |
core.uwb | 在支援的裝置上實作 UWB (超寬頻)。 |
憑證 | 這個程式庫可針對使用者的憑證 (包括密碼、密碼金鑰和聯合憑證) 提供整合式存取權。請使用這個程式庫提供流暢安全的登入體驗。 |
credentials.registry | 為解決這些問題,我們新增了新的註冊機制,讓應用程式以保護隱私權的方式提供數位憑證。大致來說,提供者應用程式會預先向憑證管理工具註冊所有候選數位憑證;當憑證管理工具收到應用程式針對特定數位憑證提出的要求時,就會在沙箱中執行憑證比對和使用者選取器 UI。 |
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 版本開始,由於背景檢查限制的因素,這個類別不再適用。 |
lint | Lint 檢查功能可驗證 Gradle API 的用法 |
loader | 載入在設定變更後仍然有效的 UI 資料。 |
localbroadcastmanager | 這個構件和其類別已淘汰。請改用 LiveData 或回應式串流。 |
media | 與其他應用程式共用媒體內容和控制項。已由 media2 取代。 |
media2 | 與其他應用程式共用媒體內容和控制項。 |
media3 * | 媒體用途支援程式庫。 |
mediarouter | 利用通用使用者介面,在遠端接收器裝置上啟用媒體顯示和播放功能。 |
multidex | 在搭載 Android 5 之前版本的裝置上部署含有多個 dex 檔案的應用程式。 |
metrics | 追蹤及回報應用程式的各種執行階段指標 |
palette | 擷取圖片中具有代表性的調色盤。 |
可在應用程式中新增 PDF 檢視功能的程式庫。 | |
percentlayout | 這個構件和其類別已淘汰。請改用 ConstraintLayout 和相關版面配置。 |
preference | 建立互動式設定畫面,無需存取裝置儲存空間或管理 UI。 |
透過應用程式列印相片、文件和其他圖形和圖片。 | |
privacysandbox.activity | TODO |
privacysandbox.ads | 這個程式庫可讓您整合隱私權保護 API,這種 API 屬於 Android 版 Privacy Sandbox。 |
privacysandbox.plugins | Android Privacy Sandbox Sdk Library Gradle 外掛程式 |
privacysandbox.sdkruntime | 這個程式庫可為 SdkRuntime 感知取用者提供元件 |
privacysandbox.tools | 運用 Android 版 Privacy Sandbox 功能的程式庫 |
privacysandbox.ui | TODO |
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 | 使用開始和結束版面配置為使用者介面動作製作動畫。 |
tv | 為開發人員提供 Compose 和 Material Design 功能,以便編寫電視專用應用程式 |
tvprovider | 提供 Android TV 頻道。 |
vectordrawable | 算繪向量圖形。 |
versionedparcelable | 提供穩定且精簡的二進位序列化格式,可在程序之間傳遞,或是以安全的方式保留。 |
viewpager | 以可滑動格式顯示檢視畫面或片段。如果可以的話,請改用 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 資訊方塊皆已推出穩定版,進一步提升 Wear OS 開發人員的使用體驗。這兩者互相補足,Wear Compose 可用於在 Wear 裝置上建構複雜的應用程式畫面,而 Wear 資訊方塊可用於建立應用程式資訊方塊。新的 Wear Compose 版本包含可展開項目和滑動顯示等新功能。Wear Tiles 版本現在也支援小工具動畫和平台資料繫結 (例如健康資料來源)。
- Window 1.1
- 1.1 穩定使用活動嵌入 API,讓 WhatsApp、eBay 和 Temu 等應用程式都能提供大螢幕版面配置。這個 API 提供了豐富的功能,因為開發人員可以修改分割畫面行為、檢查 (及變更) 分割畫面狀態、實作水平分割,以及在完整視窗中啟動互動視窗。
- 版本資訊
- 詳情請參閱版本資訊。