Android wurde für den Betrieb auf vielen verschiedenen Geräten entwickelt, wie z. B. Smartphones, Tablets und Fernseher. Die große Auswahl an Geräten bietet großes Potenzial Zielgruppe für Ihre App. Damit deine App auf allen Geräten funktioniert, muss sie Funktionsvariabilität tolerieren und eine flexible Benutzeroberfläche bereitstellen, Bildschirmkonfigurationen zu optimieren.
Zur Unterstützung der Gerätekompatibilität bietet Android ein dynamisches App-Framework, in dem Sie konfigurationsspezifische App-Ressourcen in statischen Dateien bereitstellen können, z. B. unterschiedliche XML-Layouts für unterschiedliche Bildschirmgrößen. Android, dann lädt die entsprechenden Ressourcen basierend auf der aktuellen Gerätekonfiguration. Wenn Sie Ihr App-Design und zusätzliche App-Ressourcen im Voraus planen, können Sie ein einzelnes Anwendungspaket (APK) veröffentlichen, das die Nutzerfreundlichkeit auf einer Vielzahl von Geräten optimiert.
Bei Bedarf kannst du die Funktionsanforderungen deiner App und festlegen, auf welchen Gerätetypen Ihre App aus dem Google Play Store installiert werden darf. In diesem Dokument wird erläutert, wie Sie festlegen können, welche Geräte Zugriff auf Ihre Apps haben, und wie Sie Ihre Apps so vorbereiten, dass Sie die richtige Zielgruppe erreichen.
Was bedeutet „Kompatibilität“? meinen?
Bei der Android-Entwicklung gibt es zwei Arten von Kompatibilität: Gerätekompatibilität und App-Kompatibilität.
Da Android ein Open-Source-Projekt ist, kann jeder Hardwarehersteller um ein Gerät zu entwickeln, auf dem das Android-Betriebssystem ausgeführt wird. Ein Gerät ist jedoch nur dann „Android-kompatibel“, wenn es Apps ausführen kann, die für die Android-Ausführungsumgebung geschrieben wurden. Die genauen Details der Android-Ausführungsumgebung werden durch das Android-Kompatibilitätsprogramm definiert. Jedes Gerät muss die Kompatibilitätstest-Suite bestehen (CTS) nicht kompatibel sind.
Als App-Entwickler müssen Sie sich keine Gedanken darüber machen, Android-kompatibel, da nur Geräte, die Android-kompatibel sind, Google Play Store herunter. Wenn ein Nutzer Ihre App also über den Google Play Store installiert, verwendet er ein Android-kompatibles Gerät.
Sie müssen jedoch überlegen, ob Ihre App mit den einzelnen potenzielle Gerätekonfiguration. Da Android auf einer Vielzahl von Gerätekonfigurationen ausgeführt wird, sind einige Funktionen nicht auf allen Geräten verfügbar. Beispielsweise sind manche Geräte eventuell nicht mit einem Kompasssensor ausgestattet. Wenn die Hauptfunktion Ihrer App Kompasssensor erforderlich ist, ist deine App nur mit Geräten kompatibel, diese Funktion einbauen.
Verfügbarkeit Ihrer App für Geräte steuern
Android unterstützt eine Vielzahl von Funktionen, die deine App über die Plattform nutzen kann. APIs Einige Funktionen sind hardwarebasiert, z. B. ein Kompasssensor. einige sind softwarebasiert, z. B. App-Widgets und einige hängen von der Plattformversion ab. Nicht jedes Gerät unterstützt alle Funktionen, daher musst du möglicherweise die App-Einstellungen Verfügbarkeit für Geräte basierend auf den erforderlichen Funktionen deiner App.
Um möglichst viele Nutzer für Ihre App zu erreichen, sollten Sie mit einem einzigen APK oder AAB so viele Gerätekonfigurationen wie möglich unterstützen. In den meisten Fällen können Sie dies tun, indem Sie optionale Features zur Laufzeit bereitstellende App Ressourcen mit Alternativen für unterschiedliche Konfigurationen, wie z. B. für unterschiedliche Bildschirmgrößen. Sie können die Verfügbarkeit Ihrer App über den Google Play Store anhand der folgenden Gerätemerkmale auf bestimmte Geräte beschränken:
Gerätefunktionen
Um die Verfügbarkeit Ihrer App basierend auf Gerätefunktionen zu verwalten, definiert Android Funktions-IDs für alle Hardware- oder Softwarefunktionen, die möglicherweise nicht auf allen Geräten verfügbar sind. Die Funktions-ID für den Kompasssensor ist beispielsweise FEATURE_SENSOR_COMPASS
und die für App-Widgets FEATURE_APP_WIDGETS
.
Falls erforderlich, können Sie verhindern, dass Nutzer Ihre App installieren, wenn ihre Geräte eine erforderliche Funktion nicht bieten. Deklarieren Sie dazu die Funktion mit einem <uses-feature>
-Element in der Manifestdatei Ihrer App.
Wenn Ihre App beispielsweise auf einem Gerät ohne Kompasssensor keinen Sinn ergibt, können Sie den Kompasssensor mit dem folgenden Manifest-Tag als Anforderung deklarieren:
<manifest ... > <uses-feature android:name="android.hardware.sensor.compass" android:required="true" /> ... </manifest>
Der Google Play Store vergleicht die für Ihre App erforderlichen Funktionen mit den auf dem Gerät jedes Nutzers verfügbaren Funktionen, um festzustellen, ob Ihre App mit jedem Gerät kompatibel ist. Verfügt das Gerät nicht über alle Funktionen, App erfordert, kann der Nutzer die App nicht installieren.
Wenn für die Hauptfunktion Ihrer App jedoch keine Gerätefunktion erforderlich ist, setzen Sie das Attribut required
auf "false"
und prüfen Sie die Gerätefunktion zur Laufzeit.
Wenn die App-Funktion auf dem aktuellen Gerät nicht verfügbar ist, reduzieren Sie die entsprechende App-Funktion mit gradueller Fehlertoleranz. Sie können beispielsweise abfragen, ob eine Funktion
verfügbar durch Anruf
hasSystemFeature()
wie hier:
if (!packageManager.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) { // This device doesn't have a compass. Turn off the compass feature. disableCompassFeature() }
PackageManager pm = getPackageManager(); if (!pm.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) { // This device doesn't have a compass. Turn off the compass feature. disableCompassFeature(); }
Informationen zu allen Filtern, mit denen Sie die Verfügbarkeit Ihrer App im Google Play Store steuern können, finden Sie in der Dokumentation zu Filtern bei Google Play.
Plattform-Version
Auf verschiedenen Geräten laufen möglicherweise unterschiedliche Versionen der Android-Plattform, z. B. Android 12 oder Android 13. Mit jeder nachfolgenden Plattformversion werden häufig APIs hinzugefügt. in der vorherigen Version nicht verfügbar. Um anzugeben, welche APIs verfügbar sind, gibt jede Plattformversion eine API-Ebene an. Android 12 ist z. B. API-Level 31 und Android 13 API-Level 33.
Sie müssen die
minSdkVersion
und
targetSdkVersion
Werte in der Datei build.gradle
:
android { defaultConfig { applicationId = "com.example.myapp" // Defines the minimum API level required to run the app. minSdkVersion(30) // Specifies the API level used to test the app. targetSdkVersion(33) ... } }
android { defaultConfig { applicationId 'com.example.myapp' // Defines the minimum API level required to run the app. minSdkVersion 30 // Specifies the API level used to test the app. targetSdkVersion 33 ... } }
Weitere Informationen zur Datei build.gradle
finden Sie unter Build konfigurieren.
Jede neue Android-Version ist mit Apps kompatibel, die mit den APIs der vorherigen Plattformversionen erstellt wurden. Ihre App ist also mit zukünftigen Android-Versionen kompatibel, wenn Sie die dokumentierten Android APIs verwenden.
Wenn Ihre App jedoch APIs verwendet, die in einer neueren Plattformversion hinzugefügt wurden, diese aber nicht für die Hauptfunktionen benötigt, prüfen Sie die API-Ebene zur Laufzeit und reduzieren Sie die entsprechenden Funktionen bei zu niedrigem API-Level schrittweise. Setzen Sie in diesem Fall minSdkVersion
auf den niedrigsten Wert.
die für die Hauptfunktion Ihrer App möglich ist, und vergleichen Sie dann
Version,
SDK_INT
,
mit der Codenamen-Konstante
Build.VERSION_CODES
der der API-Ebene entspricht, die Sie prüfen möchten, wie unten
Beispiel:
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) { // Running on something older than API level 11, so disable // the drag and drop features that use ClipboardManager APIs. disableDragAndDrop() }
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) { // Running on something older than API level 11, so disable // the drag and drop features that use ClipboardManager APIs. disableDragAndDrop(); }
Bildschirmkonfiguration
Android läuft auf Geräten unterschiedlicher Größe wie Smartphones, Tablets und Fernsehern. Bis Geräte nach ihrem Bildschirmtyp kategorisiert, definiert Android zwei Merkmale für jedes Gerät: Bildschirmgröße (die physische Größe des Bildschirms) und Bildschirmdichte (die physische Dichte der Pixel auf dem Bildschirm, DPI). Um die verschiedenen Konfigurationen zu vereinfachen, werden diese Varianten von Android in Gruppen zusammengefasst, die die Ausrichtung erleichtern:
- Vier allgemeine Größen: klein, normal, groß und sehr groß
- Mehrere allgemeine Dichten: mdpi (mittel), hdpi (hoch), xhdpi (extra hoch), xxhdpi (besonders hoch) und andere
Deine App ist standardmäßig mit allen Bildschirmgrößen und -dichten kompatibel, da das System Anpassungen am UI-Layout und an den Bildressourcen vornimmt, die für jeden Bildschirm erforderlich sind. Stellen Sie optimierte Bitmapbilder für gängige Bildschirmdichten bereit.
Optimieren Sie die Nutzerfreundlichkeit, indem Sie nach Möglichkeit flexible Layouts verwenden. Wenn es Layouts für große Konfigurationsänderungen gibt, z. B. Hoch- und Querformat oder große und kleine Fenstergrößen, sollten Sie auch alternative Layouts bereitstellen, die für kleinere Konfigurationsänderungen flexibel sind. So wird die Nutzerfreundlichkeit auf Geräten wie Tablets, Smartphones und faltbaren Mobilgeräten verbessert. Es ist auch hilfreich, wenn sich die Fenstergröße im Mehrfenstermodus ändert.
Informationen zum Erstellen alternativer Ressourcen für verschiedene Bildschirme und zum Einschränken Ihrer App auf bestimmte Bildschirmgrößen finden Sie in der Übersicht zur Bildschirmkompatibilität und in den Qualitätsrichtlinien für Apps mit großem Bildschirm.
Verfügbarkeit Ihrer App aus geschäftlichen Gründen steuern
Sie können die Verfügbarkeit Ihrer App nicht nur aufgrund von Gerätemerkmalen einschränken, sondern auch aus geschäftlichen oder rechtlichen Gründen. In solchen Fällen bietet der Google Play Store Filteroptionen in der Play Console, mit denen Sie die Leistung Ihrer App aus nichttechnischen Gründen, z. B. aufgrund des Gebietsschemas oder der drahtlosen Verbindung. Netzbetreiber.
Filtern nach technischer Kompatibilität, z. B. erforderliche Hardware basierend auf Informationen in Ihrem APK oder AAB. -Datei. Die Filterung aus nicht technischen Gründen, z. B. aufgrund des geografischen Gebiets, erfolgt jedoch immer in der Google Play Console.
Weitere Informationen:
- Übersicht über App-Ressourcen
- Informationen zur Strukturierung von Android-Apps, um Apps voneinander zu trennen Ressourcen aus dem App-Code und wie Sie alternative Ressourcen für bestimmte Gerätekonfigurationen.
- Filter bei Google Play
- Informationen dazu, wie der Google Play Store App auf verschiedenen Geräten zu installieren.
- Berechtigungen auf Android-Geräten
- Wie Android den App-Zugriff auf bestimmte APIs mit einem Berechtigungssystem einschränkt der die Einwilligung des Nutzers zur Verwendung dieser APIs durch Ihre App erfordert.