Mit der Ausrichtung auf Geräte können Sie genauer steuern, welche Teile Ihres App-Bundles auf bestimmten Geräten bereitgestellt werden. So kannst du beispielsweise dafür sorgen, dass ein großes Asset nur an Geräte mit viel RAM gesendet wird, oder unterschiedliche Versionen eines Assets an verschiedene Geräte senden.
Sie können Anzeigen auf Geräteeigenschaften wie die folgenden ausrichten:
- Gerätemodell
- Geräte-RAM
- Systemfunktionen
- System-on-a-Chip (für Geräte mit mindestens API-Level 31)
Übersicht über die erforderlichen Schritte
So aktivieren Sie die Geräteausrichtung:
- Definieren Sie Ihre Gerätegruppen in einer XML-Datei.
- Geben Sie an, welche Teile Ihres Bundles an welche Gerätegruppen gesendet werden sollen.
- [Optional] Konfiguration lokal testen
- Laden Sie Ihr Bundle (mit der XML-Datei) bei Google Play hoch.
Version des Android Gradle-Plug-ins prüfen
Wenn Sie das Geräte-Targeting verwenden möchten, muss die Version Ihres Android Gradle-Plug-ins (AGP) mindestens 8.10.0-alpha01 sein. Diese Funktion ist in Android Studio Meerkat 2 und höher enthalten.
Geräte-Targeting im Android Gradle-Plug-in aktivieren
Das Geräte-Targeting muss in Ihrer gradle.properties
-Datei explizit aktiviert sein:
android.experimental.enableDeviceTargetingConfigApi=true
XML-Datei für die Gerätekonfiguration erstellen
Die Konfigurationsdatei für die Geräteausrichtung ist eine XML-Datei, in der Sie Ihre benutzerdefinierten Gerätegruppen definieren. Sie können beispielsweise eine Gerätegruppe namens high_ram
definieren, die alle Geräte mit mindestens 8 GB RAM enthält:
<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>
Eine Gerätegruppe besteht aus bis zu fünf Geräteselektoren. Ein Gerät wird in eine Gerätegruppe aufgenommen, wenn es mindestens eine der Geräteauswahlen erfüllt.
Eine Geräteauswahl kann eine oder mehrere Geräteeigenschaften haben. Ein Gerät wird ausgewählt, wenn es mit allen Geräteeigenschaften des Sellektors übereinstimmt.
Verfügbare Geräteeigenschaften
- device_ram: RAM-Anforderungen des Geräts
- min_bytes (inclusive): Mindestens erforderlicher RAM (in Byte)
- max_bytes (ausschließlich): Maximaler erforderlicher RAM (in Byte)
- included_device_ids: Gerätemodelle, die in diese Auswahl eingeschlossen werden sollen
(maximal 10.000 device_ids pro Gruppe). Diese Property ist erfüllt, wenn das Gerät mit einer der device_id in der Liste übereinstimmt.
- build_brand: Gerätehersteller
- build_device: Gerätemodellcode
- excluded_device_ids: Gerätemodelle, die in dieser Auswahl ausgeschlossen werden sollen
(maximal 10.000 device_ids pro Gruppe). Diese Property ist erfüllt, wenn das Gerät mit keiner device_id in der Liste übereinstimmt.
- build_brand: Gerätehersteller
- build_device: Gerätemodellcode
required_system_features: Funktionen, die ein Gerät haben muss, um von dieser Auswahl berücksichtigt zu werden (maximal 100 Funktionen pro Gruppe). Ein Gerät muss alle Systemfunktionen in dieser Liste haben, um diese Property zu erfüllen.
- name: Eine Systemfunktion
forbidden_system_features: Funktionen, die ein Gerät nicht haben darf, müssen in dieser Auswahl enthalten sein (maximal 100 Funktionen pro Gruppe). Wenn ein Gerät eine der Systemfunktionen in dieser Liste hat, erfüllt es diese Eigenschaft nicht.
- name: Eine Systemfunktion
System-on-a-Chip: Systems-on-a-Chip, die in diese Auswahl aufgenommen werden sollen. Ein Gerät muss einen Chip in dieser Liste haben, um diese Property zu erfüllen. System-on-Chips können nur auf Geräte mit mindestens API-Level 31 ausgerichtet werden.
- manufacturer: Hersteller des System-on-a-Chip
- model: System-on-a-Chip-Modell
Wenn Sie mehrere Properties in einer einzigen Auswahl einschließen, wird eine logische UND-Verknüpfung erstellt. Beispiel:
<config:device-selector ram-min-bytes="7000000000">
<config:included-device-id brand="google" device="flame"/>
</config:device-selector>
wird die Bedingung für alle Geräte mit mehr als 7 GB RAM UND Pixel 4 erstellt. Sie kann auch so geschrieben werden:
Wenn Sie eine OR-Bedingung verwenden möchten, erstellen Sie separate Auswahlkriterien in einer einzelnen Gerätegruppe, z. B.:
<config:device-selector ram-min-bytes="7000000000"/>
<config:device-selector>
<config:included-device-id brand="google" device="flame"/>
</config:device-selector>
wird die Bedingung für alle Geräte mit mehr als 7 GB RAM ODER für Pixel 4 erstellt. Sie kann auch so geschrieben werden:
Hier ein Beispiel mit allen möglichen Geräteeigenschaften:
<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>
Offizielle Codes für Gerätehersteller und Gerätemodelle
Die richtige Formatierung für den Gerätehersteller und den Modellcode finden Sie im Gerätekatalog der Google Play Console. Gehen Sie dazu so vor:
Prüfen Sie einzelne Geräte mit dem Gerätekatalog und suchen Sie den Hersteller- und Modellcode an den Stellen, die im folgenden Beispiel gezeigt werden. Bei Google Pixel 4a lautet der Hersteller „Google“ und der Modellcode „sunfish“:
Laden Sie eine CSV-Datei mit unterstützten Geräten herunter und verwenden Sie die Werte Hersteller und Modellcode für die Felder build_brand und build_device.
Konfigurationsdatei für die Geräteausrichtung in das App-Bundle aufnehmen
Fügen Sie der Datei build.gradle
Ihres Hauptmoduls Folgendes hinzu:
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
ist der Pfad Ihrer Konfigurationsdatei relativ zum Hauptmodul. So wird sichergestellt, dass Ihre Konfigurationsdatei mit Ihrem App-Bundle verpackt wird.
Die Klausel deviceGroup
sorgt dafür, dass die aus Ihrem Bundle generierten APKs nach Gerätegruppen aufgeteilt werden.
Geräte-Targeting für Play Feature Delivery
Informationen zur Verwendung der Ausrichtung auf Geräte mit Play Feature Delivery finden Sie in der Dokumentation zur bedingten Auslieferung.