Çeşitli Boyutlara Göre Öğe Hedefleme (İç İçe Yerleştirilmiş Hedefleme)

Bir öğe paketi veya paket modülündeki bir klasörü çeşitli boyutlara (doku sıkıştırma biçimi, cihaz katmanı, ülke grubu) göre hedeflemek için iç içe yerleştirilmiş hedeflemeyi kullanabilirsiniz.

İç içe yerleştirilmiş hedefleme, en fazla 2 hedefleme boyutunu birleştiren hedefleme ölçütleri tanımlamanıza olanak tanır.

Biçim

Bir klasörü birden fazla boyuta göre hedeflemek için klasör adına bir dizi hashtag son eki ekleyerek boyut listesini belirtin.

Örneğin, bir öğe klasörünü ASTC doku sıkıştırma biçimine ve 2. cihaz katmanına göre hedeflemek için hedefleme şu şekilde olur:

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

Uygulamanızı derlemek için Gradle'ı kullanıyorsanız hedefleme son ekleri, kullanıcı cihazlarına yayınlanan nihai APK'lardaki veya öğe paketlerindeki dizin adından çıkarılır.

bundletool'u doğrudan kullanıyorsanız BundleConfig.json içinde boyutların her biri için ayrı ayrı son ekin kaldırılmasını isteyip istemediğinizi belirtin. Cihaz katmanı hedefleme örneği:

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

İç içe yerleştirilmiş hedefleme, bundletool 1.14.1 veya sonraki sürümlerde ve Gradle 8.1 veya sonraki sürümleri gerektiren Android Gradle Plugin 8.2.0-alpha01 veya sonraki sürümlerde desteklenir.

Her bir hedefleme boyutunun dokümanında, yapılandırmanızı ayrı boyutlar için nasıl özelleştireceğiniz hakkında daha fazla bilgi bulabilirsiniz.

Sınırlamalar

  • En fazla 2 iç içe yerleştirilmiş boyut kullanabilirsiniz. Diğer bir deyişle, aynı anda cihaz katmanı, doku sıkıştırma biçimi ve ülkeye göre hedeflenen bir klasörü olamaz: 2. seçeneğini belirlemelisiniz.

  • İç içe yerleştirilmiş 2 boyutu, klasör yolunun düzeyinde belirtmeniz gerekir. Örneğin, #tcf_astc ve #tier_2 farklı yol segmentlerinde göründüğü için aşağıdaki klasör hedefleme yasaktır:

.../level1/src/main/assets/character-textures#tcf_astc/level1#tier_2/
  • İç içe yerleştirilmiş boyutlarınız, paketinizin tamamında aynı olmalıdır. Örneğin, cihaz katmanlarını ve ülke grubunu iç içe yerleştirdiğiniz bir öğe paketi ile ülke grubunu ve doku sıkıştırma biçimini iç içe yerleştirdiğiniz başka bir öğe paketi olamaz.

  • 2 boyut için kullandığınız değerlerin tüm pakette aynı olması ve değer kombinasyonunun tamamını belirtmeniz gerekir. Örneğin, doku sıkıştırma biçimini ve ülke grubunu iç içe yerleştirmek istiyorsanız ve 4 TCF'niz (ASTC, ETC2, PVRTC, varsayılan yedek) ve 3 ülke grubunuz (latam, sea, varsayılan yedek) varsa 12 kombinasyonun tümü için bir klasör belirtmeniz gerekir:

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/…
  • Aynı öğe paketi veya paket modülündeki farklı içerik klasörlerinde hem iç içe yerleştirilmiş hedeflemeyi hem de tek boyutlu hedeflemeyi kullanabilirsiniz. Hem tek boyutlu hedeflemede hem de iç içe yerleştirilmiş hedeflemede bir boyut kullanıyorsanız kullandığınız değer grubu her zaman aynı olmalıdır. Örneğin, tek boyutlu cihaz katmanı hedeflemede 4 katmana göre hedefleme yapamaz ve ardından ülke kümeleri veya TCF'lerle iç içe yerleştirildiğinde yalnızca 3 katman kullanamazsınız.