Penargetan perangkat memberi Anda kontrol yang lebih baik atas bagian app bundle mana yang dikirim ke perangkat tertentu. Misalnya, Anda dapat memastikan bahwa aset besar hanya dikirim ke perangkat dengan RAM tinggi, atau Anda dapat mengirimkan versi aset yang berbeda ke perangkat yang berbeda.
Anda dapat menargetkan properti perangkat seperti:
- Model perangkat
- RAM Perangkat
- Fitur sistem
- Sistem di chip (untuk perangkat dengan API level minimal 31)
Ringkasan langkah-langkah yang diperlukan
Langkah-langkah berikut diperlukan untuk mengaktifkan penargetan perangkat:
- Tentukan grup perangkat Anda dalam file XML.
- Tentukan bagian paket yang harus dikirim ke grup perangkat mana.
- [Opsional] Uji konfigurasi Anda secara lokal.
- Upload paket Anda (yang berisi file XML) ke Google Play.
Memeriksa versi Plugin Android Gradle
Untuk menggunakan penargetan perangkat, pastikan versi Plugin Android Gradle (AGP) Anda setidaknya 8.10.0-alpha01. Paket ini dikemas dengan Android Studio Meerkat 2 dan yang lebih tinggi.
Mengaktifkan penargetan perangkat di Plugin Android Gradle
Penargetan perangkat harus diaktifkan secara eksplisit dalam file gradle.properties
Anda:
android.experimental.enableDeviceTargetingConfigApi=true
Membuat file XML konfigurasi penargetan perangkat
File konfigurasi penargetan perangkat adalah file XML tempat Anda menentukan
grup perangkat kustom. Misalnya, Anda dapat menentukan grup perangkat bernama
high_ram
yang berisi semua perangkat dengan RAM minimal 8 GB:
<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>
Grup perangkat terdiri dari maksimal 5 pemilih perangkat. Perangkat disertakan dalam grup perangkat jika memenuhi salah satu pemilih perangkatnya.
Pemilih perangkat dapat memiliki satu atau beberapa properti perangkat. Perangkat akan dipilih jika cocok dengan semua properti perangkat pemilih.
Properti perangkat yang tersedia
- device_ram: Persyaratan RAM perangkat
- min_bytes (inklusif): RAM minimum yang diperlukan (dalam byte)
- max_bytes (eksklusif): RAM maksimum yang diperlukan (dalam byte)
- included_device_ids: Model perangkat yang akan disertakan dalam pemilih ini
(maks. 10.000 device_ids per grup). Properti ini terpenuhi jika
perangkat cocok dengan device_id apa pun dalam daftar.
- build_brand: Produsen perangkat
- build_device: Kode model perangkat
- excluded_device_ids: Model perangkat yang akan dikecualikan dalam pemilih ini
(maks. 10.000 device_ids per grup). Properti ini terpenuhi jika
perangkat tidak cocok dengan device_id dalam daftar.
- build_brand: Produsen perangkat
- build_device: Kode model perangkat
required_system_features: Fitur yang diperlukan perangkat agar disertakan oleh pemilih ini (maks. 100 fitur per grup). Perangkat harus memiliki semua fitur sistem dalam daftar ini untuk memenuhi properti ini.
Referensi fitur sistem
- name: Fitur sistem
forbidden_system_features: Fitur yang tidak boleh disertakan oleh pemilih ini (maks. 100 fitur per grup). Jika perangkat memiliki salah satu fitur sistem dalam daftar ini, perangkat tidak memenuhi properti ini.
Referensi fitur sistem
- name: Fitur sistem
system-on-chip: Sistem di chip yang akan disertakan dalam pemilih ini. Perangkat harus memiliki chip dalam daftar ini untuk memenuhi properti ini. Sistem di chip hanya dapat ditargetkan di perangkat dengan API level minimal 31.
- manufacturer: Produsen sistem di chip
- model: Model sistem dalam chip
Menyertakan beberapa properti dalam satu pemilih akan membuat AND logis, misalnya:
<config:device-selector ram-min-bytes="7000000000">
<config:included-device-id brand="google" device="flame"/>
</config:device-selector>
akan membuat kondisi untuk semua perangkat dengan RAM > 7 GB DAN merupakan Pixel 4, yang juga ditulis sebagai berikut:
Jika Anda menginginkan kondisi ATAU, buat pemilih terpisah dalam satu grup perangkat, misalnya:
<config:device-selector ram-min-bytes="7000000000"/>
<config:device-selector>
<config:included-device-id brand="google" device="flame"/>
</config:device-selector>
akan membuat kondisi untuk semua perangkat dengan RAM > 7 GB ATAU merupakan Pixel 4, yang juga ditulis sebagai berikut:
Berikut adalah contoh yang menunjukkan semua kemungkinan properti perangkat:
<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>
Kode model perangkat dan produsen perangkat resmi
Anda dapat menemukan pemformatan yang benar untuk produsen dan kode model perangkat menggunakan Katalog Perangkat di Konsol Google Play, dengan salah satu dari opsi berikut:
Memeriksa setiap perangkat menggunakan Katalog Perangkat, dan menemukan produsen dan kode model di lokasi seperti yang ditunjukkan pada contoh di bawah ini (Untuk Google Pixel 4a, produsennya adalah "Google" dan kode modelnya adalah "sunfish"):
Mendownload CSV perangkat yang didukung, dan menggunakan Produsen dan Kode Model untuk masing-masing kolom build_brand dan build_device.
Menyertakan file konfigurasi penargetan perangkat dalam app bundle
Tambahkan kode berikut ke file build.gradle
modul utama Anda:
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
adalah jalur file konfigurasi Anda yang relatif terhadap
modul utama. Tindakan ini memastikan bahwa file konfigurasi dikemas dengan
app bundle Anda.
Klausa deviceGroup
memastikan bahwa APK yang dihasilkan dari app bundle Anda
dibagi menurut grup perangkat.
Penargetan perangkat untuk Play Feature Delivery
Untuk menggunakan penargetan perangkat dengan Play Feature Delivery, lihat dokumentasi untuk pengiriman bersyarat.