本頁將說明準備 GCP 專案所需的屬性和選項 發布 Android 程式庫專案 使用 Android Gradle 外掛程式 (AGP)。 即使您在建立 請查看下列指引 可以管理叢集設定,像是節點 資源調度、安全性和其他預先設定項目
選擇命名空間
Android 程式庫必須宣告命名空間,才能產生不重複的命名空間
R
類別。這個命名空間應密切符合
程式庫的根類別套件,可避免使用者匯入一般
類別及其 R
類別中的類別。
從 AGP 7.0 開始,您可以將
命名空間
在應用程式的 build.gradle
檔案中,如以下程式碼範例所示:
Groovy
android { namespace = 'com.example.library' }
Kotlin
android { namespace = "com.example.library" }
命名空間是向開發人員顯示的程式庫屬性,不
應用程式身分的相關訊息,這個 ID 是使用
applicationId
敬上
資源。
在舊版 AGP 中,兩者都有 applicationId
屬性 (用於
應用程式) 和 namespace
屬性 (適用於程式庫) 可以使用
資訊清單的 package
造成混淆。
選擇 minSdkVersion
值
在程式庫發布程序中,選取程式庫的 minSdkVersion
值是相當重要的環節。minSdkVersion
值應反映程式碼可支援的最低 Android 版本。
選擇 minSdkVersion
值時,請注意下列事項:
一般而言,選擇較低的
minSdkVersion
值可讓 媒體庫通常只有在應用程式才能執行程式庫的程式碼 會明確呼叫該物件應用程式仍可在符合下列條件的 Android 版本上執行 低於程式庫依附元件所需的值 (如果不是,該程式庫) 對應用程式核心功能來說至關重要 - 呼叫前都要進行執行階段檢查 程式庫。因此,為程式庫設定夠低的
minSdkVersion
值, 這個程式庫可嵌入應用程式中,並盡可能呼叫,這樣您就能觸及更多 使用者。選擇較高的
minSdkVersion
值可能會導致應用程式無法納入 資源庫。資訊清單合併工具,這是 AGP 中的一個步驟,可合併資訊清單檔案 應用程式及其依附元件會強制執行 依附元件的
minSdkVersion
高於應用程式。選擇較高的
minSdkVersion
值可能會促使應用程式開發人員停用 資訊清單合併工具安全檢查,導致後續建構程序發生問題。使用資訊清單合併工具會導致應用程式專案無法納入
minSdkVersion
高於應用程式本身的程式庫 (應用程式開發人員) 可能會停用資訊清單合併工具的安全檢查功能,盡量避免 發生錯誤。不過,這可能導致下游實際發生不相容的問題。在特殊情況下,建議您選擇較高的
minSdkVersion
值, 程式庫的資訊清單,其中包含廣播接收器或 系統會自動觸發其程式碼在這種情況下,請選擇較高的
minSdkVersion
值,確保程式碼能順利執行。 或者,您也可以停用該自動行為,讓應用程式選擇不採用 完成適當的檢查後 才執行程式庫
如要允許嵌入應用程式,請使用
RequiresApi
註解
程式庫,向呼叫端發出執行階段檢查。Android 版
Lint 會使用 RequiresApi
資訊檢查程式碼。其他資源
請參閱這篇文章
含有註解進行檢查
設定 AAR 中繼資料
Android 程式庫封裝成 Android ARchive (AAR) 檔案的組成部分AAR 中繼資料內含屬性 AGP 會使用程式庫。如果程式庫遭到不相容 並完成 AAR 中繼資料設定後,使用者會看到錯誤訊息 訊息,協助他們解決問題。
選擇 minCompileSdk 值
從版本 4.1 開始,AGP 會支援 minCompileSdk
,代表
compileSdk
敬上
供使用者專案使用的工具如果程式庫包含資訊清單項目
包含使用較新平台屬性的資源
設定此值。
您可以在 defaultConfig{}
中設定 minCompileSdk
值。
模組層級 build.gradle
中的 productFlavors{}
和 buildTypes{}
區塊
檔案:
Groovy
android { defaultConfig { aarMetadata { minCompileSdk = 29 } } productFlavors { foo { ... aarMetadata { minCompileSdk = 30 } } } }
Kotlin
android { defaultConfig { aarMetadata { minCompileSdk = 29 } } productFlavors { register("foo") { ... aarMetadata { minCompileSdk = 30 } } } }
如果您在多個位置設定 minCompileSdk
值,Gradle 會在建構程序中以下列順序優先採用這些位置的設定:
buildTypes{}
productFlavors{}
defaultConfig{}
以上述範例為例,其中兩個值都定義了 minCompileSdk
「defaultConfig{}
」和「productFlavors{}
」已優先顯示「productFlavors{}
」
且 minCompileSdk
設為 30。
進一步瞭解 Gradle 在結合程式碼和資源時優先採用設定。詳情請參閱使用原始碼建構 設定。
啟用測試韌體
測試固件 通常用於設定要測試的程式碼或協助 元件。從版本 7.1 開始,AGP 可以建立程式庫的測試韌體 以及動態功能專案
發布供他人使用的程式庫時,請考慮建立測試
API 韌體。您可以在模組層級 build.gradle
檔案中啟用測試韌體:
Groovy
android { testFixtures { enable = true } }
Kotlin
android { testFixtures { enable = true } }
啟用測試韌體後,Gradle 就會自動建立
可寫入測試韌體的 src/testFixtures
來源集。
詳情請參閱 Gradle 的使用說明 測試韌體。