Android Jetpack簡介


參考

https://developer.android.com/jetpack

https://developer.android.com/jetpack/androidx

把語言改為English可以查看androidx所有文檔

https://developer.android.com/jetpack/androidx/migrate

Android Jetpack

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

Jetpack 包含與平台 API 解除捆綁的 androidx.* 軟件包庫。這意味着,它可以提供向后兼容性,且比 Android 平台的更新頻率更高,以此確保您始終可以獲取最新且最好的 Jetpack 組件版本。

隨着Android 9.0(API級別28)的發布,有一個名為AndroidX的支持庫的新版本,它是Jetpack的一部分。 AndroidX庫包含現有的支持庫,還包括最新的Jetpack組件。

您可以繼續使用支持庫。 歷史工件(那些版本為27及更早版本,打包為android.support。*)將繼續在Google Maven上提供。 但是,所有新的庫開發都將在AndroidX庫中進行。

我們建議在所有新項目中使用AndroidX庫。 您還應該考慮將現有項目遷移到AndroidX。

JetpackAndroidX的關系

Jetpack是此項目的代號,AndroidX是Jetpack的包含的支持庫的具體位置。

所以Jetpack和AndroidX不會特別進行區別。

當然Jetpack好像還包含其他東西,所以一般用Jetpack來代表Google此次的新項目。

AndroidX 概覽

AndroidX 是 Android 團隊用於在 Jetpack 中開發、測試、打包和發布庫以及對其進行版本控制的開源項目。

AndroidX 對原始 Android 支持庫進行了重大改進。與支持庫一樣,AndroidX 與 Android 操作系統分開提供,並與各個 Android 版本向后兼容。AndroidX 完全取代了支持庫,不僅提供同等的功能,而且提供了新的庫。此外,AndroidX 還包括以下功能:

l AndroidX 中的所有軟件包都使用一致的命名空間,以字符串 androidx 開頭。原support支持庫軟件包已映射到對應的 androidx.* 軟件包。有關所有舊類到新類以及舊編譯工件到新編譯工件的完整映射,請參 閱遷移到 AndroidX

l 與支持庫不同,AndroidX 軟件包會單獨維護和更新。androidx 軟件包使用嚴格的語義版本控制,從版本 1.0.0 開始。您可以單獨更新項目中的 AndroidX 庫。

語義版本控制:MAJOR.MINOR.PATCH (主版本號.次版本號.補丁版本號)

l 所有新支持庫的開發工作都將在 AndroidX 庫中進行。這包括維護原始支持庫工件和引入新的 Jetpack 組件。

使用 AndroidX

如需了解如何遷移現有項目,請參 閱遷移到 AndroidX

如果要在新項目中使用 AndroidX,則需要將compileSdkVersion設置為 Android 9.0(API 級別 28)或更高版本,並在項目根目錄的 gradle.properties 文件中 將以下兩個 Android Gradle 插件標記 設置為 true。

l android.useAndroidX:如果設置為 true,Android 插件會使用相應的 AndroidX 庫,而非支持庫。如果未指定,則該標記默認為 false。

l android.enableJetifier:如果設置為 true,Android 插件會重寫其二進制文件,自動遷移現有的第三方庫以使用 AndroidX。如果未指定,則該標記默認為 false。

遷移到 AndroidX

AndroidX 將原始支持庫 API 替換為 androidx 命名空間中的軟件包。只有軟件包和 Maven artifact名稱發生了變化;類、方法和字段名稱沒有改變。

注意:我們建議遷移時在單獨的分支中工作。此外,還應設法避免在執行遷移時重構代碼。

前提條件

遷移之前,請先將您的應用依賴的Android支持庫 更新到最新版本:28.0.0

這是因為,1.0.0 版本的 AndroidX 庫 是與支持庫 28.0.0版本 等效的二進制文件。

使用 Android Studio 遷移現有項目

使用 Android Studio 3.2 及更高版本,您只需從菜單欄中依次選擇 Refactor > Migrate to AndroidX,即可將現有項目遷移到 AndroidX。

重構命令使用兩個標記。默認情況下,這兩個標記在 gradle.properties 文件中都設為 true:

l android.useAndroidX=true

l android.enableJetifier=true

注意:內置的 Android Studio 遷移功能可能並不是一切都能處理。根據您的編譯配置,您可能需要手動更新編譯腳本和 Proguard 映射。

例如,如果您在一個單獨的編譯文件中維護依賴項配置,請使用下面提到的映射文件來檢查依賴項並將其更新為對應的 AndroidX 軟件包。

To migrate an existing project that does not use any third-party libraries with dependencies that need converting, you can set the android.useAndroidX flag to true and the android.enableJetifier flag to false.

要遷移 一個不使用任何需要轉換的依賴項的第三方庫的現有項目,可以將 android.useAndroidX 標記設置為 true,並將 android.enableJetifier 標記設置為 false。

原支持包的映射

https://developer.android.com/jetpack/androidx/migrate/artifact-mappings

下表列出了一些常用的支持包的改變。

com.android.support:appcompat-v7

androidx.appcompat:appcompat:1.0.0

com.android.support:design

com.google.android.material:material:1.0.0-rc01

com.android.support:cardview-v7

androidx.cardview:cardview:1.0.0

com.android.support:multidex

androidx.multidex:multidex:2.0.0

com.android.support:support-fragment

androidx.fragment:fragment:1.0.0

com.android.support:support-v4

androidx.legacy:legacy-support-v4:1.0.0

com.android.support:recyclerview-v7

androidx.recyclerview:recyclerview:1.0.0

com.android.support:support-annotations

androidx.annotation:annotation:1.0.0

com.android.support:drawerlayout

androidx.drawerlayout:drawerlayout:1.0.0

類映射

https://developer.android.com/jetpack/androidx/migrate/class-mappings

下表列出了從舊命名空間到新 androidx 軟件包的當前映射。

wps58

Android X 最新版本查看

https://developer.android.com/jetpack/androidx/versions


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM