Cihaz hedefleme (beta)

Cihaz hedefleme, uygulama paketinizin hangi bölümlerinin belirli cihazlara dağıtılacağı üzerinde daha ayrıntılı kontrol sahibi olmanızı sağlar. Örneğin, büyük bir öğenin yalnızca yüksek RAM'e sahip cihazlara yayınlanmasını sağlayabilir veya bir öğenin farklı sürümlerini farklı cihazlara yayınlayabilirsiniz.

Aşağıdakiler gibi cihaz özelliklerini hedefleyebilirsiniz:

  • Cihaz modeli
  • Cihaz RAM'i
  • Sistem özellikleri
  • Çip üzerinde sistem (API düzeyi en az 31 olan cihazlar için)

Gerekli adımlara genel bakış

Cihaz hedeflemeyi etkinleştirmek için aşağıdaki adımlar gereklidir:

  1. Cihaz gruplarınızı bir XML dosyasında tanımlayın.
  2. Paketinizin hangi bölümlerinin hangi cihaz gruplarına gönderileceğini belirtin.
  3. [İsteğe bağlı] Yapılandırmanızı yerel olarak test edin.
  4. Paketinizi (XML dosyasını içeren) Google Play'e yükleyin.

Android Gradle eklentisi sürümünü kontrol etme

Cihaz hedeflemeyi kullanmak için Android Gradle eklentinizin (AGP) en az 8.10.0-alpha01 sürümüne sahip olduğundan emin olun. Bu paket, Android Studio Meerkat 2 ve sonraki sürümlerde bulunur.

Android Gradle eklentisinde cihaz hedeflemeyi etkinleştirme

Cihaz hedefleme, gradle.properties dosyanızda açıkça etkinleştirilmiş olmalıdır:

android.experimental.enableDeviceTargetingConfigApi=true

Cihaz hedefleme yapılandırması XML dosyası oluşturma

Cihaz hedefleme yapılandırma dosyası, özel cihaz gruplarınızı tanımladığınız bir XML dosyasıdır. Örneğin, en az 8 GB RAM'e sahip tüm cihazları içeren high_ram adlı bir cihaz grubu tanımlayabilirsiniz:

<config:device-targeting-config
    xmlns:config="http://schemas.android.com/apk/config">

    <config:device-group name="high_ram">
        <config:device-selector ram-min-bytes="8000000000"/>
    </config:device-group>

</config:device-targeting-config>

Cihaz grubu, en fazla 5 cihaz seçiciden oluşur. Bir cihaz, cihaz seçicilerinden herhangi birini karşılıyorsa cihaz grubuna dahil edilir.

Cihaz seçici bir veya daha fazla cihaz özelliğine sahip olabilir. Bir cihaz, seçicinin tüm cihaz özellikleriyle eşleşirse seçilir.

Kullanılabilir cihaz özellikleri

  • device_ram: Cihazın RAM gereksinimleri
    • min_bytes (dahildir): Gerekli minimum RAM (bayt cinsinden)
    • max_bytes (özel): Gerekli maksimum RAM (bayt cinsinden)
  • included_device_ids: Bu seçiciye dahil edilecek cihaz modelleri(grup başına en fazla 10.000 device_id). Cihaz, listedeki bir device_id ile eşleşirse bu özellik karşılanır.
    • build_brand: Cihaz üreticisi
    • build_device: Cihaz modeli kodu
  • excluded_device_ids: Bu seçicide hariç tutulacak cihaz modelleri(grup başına en fazla 10.000 device_id). Cihaz, listedeki hiçbir device_id ile eşleşmezse bu özellik karşılanır.
    • build_brand: Cihaz üreticisi
    • build_device: Cihaz modeli kodu
  • required_system_features: Bu seçici tarafından dahil edilmesi gereken özellikler (grup başına en fazla 100 özellik). Bu özelliği karşılamak için cihazın bu listedeki tüm sistem özelliklerine sahip olması gerekir.

    Sistem özellik referansı

    • ad: Sistem özelliği
  • forbidden_system_features: Bu seçici tarafından cihaza dahil edilmesi gerekmeyen özellikler (grup başına en fazla 100 özellik). Bu listedeki sistem özelliklerinden herhangi birine sahip olan cihazlar bu özelliği karşılamıyordur.

    Sistem özellik referansı

    • ad: Sistem özelliği
  • system-on-chip: Bu seçiciye eklenecek çip üzerinde sistemler. Bu özelliği karşılamak için cihazın bu listedeki bir çipe sahip olması gerekir. Sistem çipleri yalnızca API düzeyi en az 31 olan cihazlarda hedeflenmelidir.

Tek bir seçiciye birden fazla mülk eklemek mantıksal bir VE koşulu oluşturur. Örneğin:

  <config:device-selector ram-min-bytes="7000000000">
      <config:included-device-id brand="google" device="flame"/>
  </config:device-selector>

7 GB'tan fazla RAM'e sahip VE Pixel 4 olan tüm cihazlar için koşulu oluşturur. Bu koşul aşağıdaki şekilde de yazılabilir:

VEYA koşulu istiyorsanız tek bir cihaz grubunda ayrı seçiciler oluşturun. Örneğin:

  <config:device-selector ram-min-bytes="7000000000"/>
  <config:device-selector>
        <config:included-device-id brand="google" device="flame"/>
  </config:device-selector>

koşulunu oluşturur. Bu koşul, 7 GB'tan fazla RAM'e sahip tüm cihazlar VEYA Pixel 4 için geçerlidir. Bu koşul aşağıdaki şekilde de yazılabilir:

Olası tüm cihaz özelliklerini gösteren bir örnek aşağıda verilmiştir:

<config:device-targeting-config
    xmlns:config="http://schemas.android.com/apk/config">

    <config:device-group name="myCustomGroup1">
      <config:device-selector ram-min-bytes="8000000000">
        <config:included-device-id brand="google" device="redfin"/>
        <config:included-device-id brand="google" device="sailfish"/>
        <config:included-device-id brand="good-brand"/>
        <config:excluded-device-id brand="google" device="caiman"/>
        <config:system-on-chip manufacturer="Sinclair" model="ZX80"/>
        <config:system-on-chip manufacturer="Commodore" model="C64"/>
      </config:device-selector>
      <config:device-selector ram-min-bytes="16000000000"/>
    </config:device-group>

    <config:device-group name="myCustomGroup2">
      <config:device-selector ram-min-bytes="4000000000" ram-max-bytes="8000000000">
        <config:required-system-feature name="android.hardware.bluetooth"/>
        <config:required-system-feature name="android.hardware.location"/>
        <config:forbidden-system-feature name="android.hardware.camera"/>
        <config:forbidden-system-feature name="mindcontrol.laser"/>
      </config:device-selector>
    </config:device-group>

</config:device-targeting-config>

Resmî cihaz üreticisi ve cihaz modeli kodları

Google Play Console'daki cihaz kataloğunu kullanarak cihaz üreticisi ve model kodu için doğru biçimlendirmeyi aşağıdaki yöntemlerden birini kullanarak bulabilirsiniz:

  • Cihaz Kataloğu'nu kullanarak cihazları tek tek inceleyin ve aşağıdaki örnekte gösterilen konumlarda üretici ile model kodunu bulun (Google Pixel 4a için üretici "Google", model kodu ise "sunfish"tir):

    cihaz kataloğundaki Pixel 4a sayfası

    cihaz kataloğundaki Pixel 4a sayfası

  • Desteklenen cihazların CSV dosyasını indirip build_brand ve build_device alanları için sırasıyla Üretici ve Model Kodu'nu kullanın.

Cihaz hedefleme yapılandırma dosyanızı uygulama paketinize ekleme

Ana modülünüzün build.gradle dosyasına aşağıdakileri ekleyin:

android {
  ...
  bundle {
    deviceTargetingConfig = file('device_targeting_config.xml')
    deviceGroup {
      enableSplit = true   // split bundle by #group
      defaultGroup = "other"  // group used for standalone APKs
    }
  }
  ...
}

device_targeting_config.xml, yapılandırma dosyanızın ana modüle göre yoludur. Bu işlem, yapılandırma dosyanızın uygulama paketinizle birlikte paketlenmesini sağlar.

deviceGroup yan tümcesi, paketinizden oluşturulan APK'ların cihaz gruplarına göre bölünmesini sağlar.

Play Feature Delivery için cihaz hedefleme

Play Feature Delivery ile cihaz hedeflemeyi kullanmak için koşullu yayınlama dokümanlarını inceleyin.