按多種維度指定資產 (巢狀指定功能)

如要依多種維度 (紋理壓縮格式、裝置層級、國家/地區組合) 指定資產包或套件模組中的資料夾,您可以使用巢狀指定功能。

巢狀指定功能可讓您定義最多 2 個指定維度的指定條件。

格式

如要依據多個維度指定資料夾,請在資料夾名稱的一系列主題標記後置字串中指明維度清單。

舉例來說,如要依據紋理壓縮格式 ASTC 和裝置層級 2 指定資產資料夾,指定路徑會像這樣:

...
.../level1/src/main/assets/character-textures#tcf_astc#tier_2/
...

如果您使用 Gradle 建構應用程式,系統會從提供給使用者裝置的最終 APK 或資產包中,移除目錄名稱內的指定後置字串。

如果您直接使用 bundletool,請在 BundleConfig.json 中指明是否要單獨移除每個維度的後置字串。以裝置層級指定功能為例會像這樣:

{
  ...
  "optimizations": {
    "splitsConfig": {
      "splitDimension": [
      ...
      {
        "value": "DEVICE_TIER",
        "negate": false,
        "suffixStripping": {
          "enabled": true,
      }],
    }
  }
}

巢狀指定功能適用於 bundletool 1.14.1 以上版本,以及 Android Gradle 外掛程式 8.2.0-alpha01 以上版本 (需要 Gradle 8.1 以上版本)。

如要進一步瞭解如何自訂個別維度的設定,請參閱各指定目標維度的說明文件。

限制

  • 您最多可以使用 2 個巢狀結構維度。也就是說,您無法同時根據裝置層級、紋理壓縮格式和國家/地區組合指定資料夾;您只能選擇 2 個維度。

  • 您應在資料夾路徑的同一層級指定 2 個巢狀結構維度。舉例來說,由於 #tcf_astc 和 #tier_2 出現在不同的路徑區段中,因此系統不允許指定下列資料夾:

.../level1/src/main/assets/character-textures#tcf_astc/level1#tier_2/
  • 請注意,整個套件中的巢狀結構維度都必須相同。舉例來說,您不能同時有針對裝置層級和國家/地區組合,建立巢狀結構的資產包,以及另一個針對國家/地區組合和紋理壓縮格式建立巢狀結構的資產包。

  • 此外,用於這 2 個維度的值在整個套件中都需相同,且您必須指定完整的值組合。舉例來說,假設您要針對紋理壓縮格式和國家/地區組合建立巢狀結構,而且有 4 個 TCF (ASTC、ETC2、PVRTC、預設備用項目) 和 3 個國家/地區組合 (拉丁美洲、海洋、預設備用項目),您就必須為全部 12 個組合指定資料夾:

level1/textures#countries_latam#tcf_astc/…
level1/textures#countries_latam#tcf_etc2/…
level1/textures#countries_latam#tcf_pvrtc/…
level1/textures#countries_latam/…
level1/textures#countries_sea#tcf_astc/…
level1/textures#countries_sea#tcf_etc2/…
level1/textures#countries_sea#tcf_pvrtc/…
level1/textures#countries_sea/…
level1/textures#tcf_astc/…
level1/textures#tcf_etc2/…
level1/textures#tcf_pvrtc/…
level1/textures/…
  • 在相同的資產包或套件模組中,您可以對不同的內容資料夾,同時採用巢狀指定和單一維度指定功能。如果您同時使用單一維度指定和巢狀指定功能中的維度,那麼您所用的值組合必須一律相同。舉例來說,在使用單一維度的裝置層級指定功能時,您無法依據 4 個層級指定目標,之後在以國家/地區組合或 TCF 建立巢狀結構時,也就不能只使用 3 個層級。