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