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>

選項

下表列出了 Jetifier 工具指令的可用選項:

選項 是否必需提供? 說明
-i--input <path> 輸入程式庫的路徑 (JAR、AAR 或 ZIP)。
-o--output <path> 輸出檔案的路徑。如果檔案已存在,則 Jetifier 會覆寫該檔案。
-c--config <path> 選用自訂設定檔的路徑。
-l--log <level> 記錄層級。允許的值包括:
  • 發生錯誤
  • warning (警告)
  • info (資訊)
  • verbose (詳細)
如未指定,則預設為「warning」。
-r 以反向模式執行 (「de-jetification」)。
-rebuildTopOfTree,
--rebuildTopOfTree
根據產生的 POM 檔案重新建構 Maven 發行版本的 ZIP 檔案。
如果已設定,系統會將所有重寫的程式庫視為支援資料庫的一部分。Jetification 不需要。
-s--strict 欠缺規則時不會進行遞補;而是擲回錯誤。
-stripSignatures,
--stripSignatures
處理已簽署的程式庫時,不擲回錯誤;改為移除簽名檔案。
-t-timestamp <arg> 作為封存項目修改時間的時間戳記政策。值:keepPrevious (預設) 紀元時間或現在。

範例

下列範例會在 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 而寫的後繼類別來取代自有類別。

如要使用自訂的設定檔:

  1. 從公用程式的 jetifier-core-*.jar 檔案擷取檔案 default.generated.config,然後儲存該檔案。
  2. 對設定檔副本進行必要的編輯。
  3. 將檔案傳遞到具有 -c 旗標的公用程式。

例如:

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