Jetifier

這個獨立的 Jetifier 工具會將支援資料庫依附元件程式庫遷移至對等的 AndroidX 套件。這項工具可讓您直接遷移個別程式庫,而不必使用 Android Studio 附帶的 Android Gradle 外掛程式。

安裝 Jetifier

如要安裝 Jetifier,請下載 ZIP 檔案並解壓縮。您的裝置必須已安裝 Java 1.8 版。

使用方式

如要處理程式庫,請傳遞目前的程式庫路徑和工具應建立的輸出檔案路徑。Jetifier 支援 JAR、AAR 和 ZIP 檔案,包括巢狀封存檔案。

./jetifier-standalone -i <source-library> -o <output-library>

選項

選項 是否必填 說明
-i, --input <path> 輸入程式庫的路徑 (JAR、AAR 或 ZIP)。
-o, --output <path> 輸出檔案的路徑。如果檔案已存在,則 Jetifier 會覆寫該檔案。
-c, --config <path> 選用自訂設定檔的路徑。
-l, --log <level> 記錄層級。允許的值包括:
  • error (錯誤)
  • warning (警告)
  • info (資訊)
  • verbose (詳細)
如未指定,則預設為「warning」。
-r 以反向模式執行 (「de-jetification」)。

範例

下列範例會在 libraryToProcess.aar 程式庫 (在目前的目錄中) 中執行公用程式,並將輸出內容寫入同一個目錄中的 result.aar

./jetifier-standalone -i libraryToProcess.aar -o result.aar

使用須知

Jetifier 會遷移指向 android.support.* 套件的 Java、XML、POM 和 ProGuard 參照,並將參照改為指向對應的 androidx.* 套件。

由於 android.support.* 的 ProGuard 萬用字元不一定能直接對應至 androidx.* 套件,因此 Jetifier 會產生所有符合資格的替代項目。

如果 android.support.* 套件中的類型不屬於任何支援資料庫成果,只要該類型有對應項目,Jetifier 仍會遷移該類型。不過,系統無法保證這項遷移作業正常運作,因為對應關係可能不夠全面,無法涵蓋所有自訂類型。

進階用法

Jetifier 公用程式支援部分進階用途。

反向模式

如果您傳遞 -r 標記,公用程式就會以「反向模式」執行。在這個模式下,公用程式會將 AndroidX API 轉換為支援資料庫中的對等項目,而不是轉換支援資料庫中的項目。舉例來說,如果您開發使用 AndroidX API 的程式庫,但也需要發布使用支援資料庫的版本,就可以採用反向模式。

範例

下列範例會在 myAndroidXLib.aar 程式庫 (在目前的目錄中) 中以反向模式執行公用程式,並將輸出內容寫入同一個目錄中的 supportLibVersion.aar

./jetifier-standalone -r -i myAndroidXLib.aar -o supportLibVersion.aar

自訂設定檔

Jetifier 工具會使用設定檔,將支援程式庫類別對應至相等的 AndroidX 項目。如有需要,您可以建立自訂設定檔來調整對應作業。您甚至可以在對應中新增原本不是支援資料庫成員的新類別;例如,您可以修改對應,以要使用 AndroidX 而寫的後繼類別取代自有類別。

如要使用自訂設定檔,請先從公用程式的 jetifier-core-*.jar 檔案擷取 default.generated.config 檔案,然後儲存檔案。對設定檔副本進行必要的編輯,並使用 -c 標記將檔案傳遞到公用程式。例如:

./jetifier-standalone -i libraryToProcess.aar -o result.aar -c myCustomMapping.config