Eingeschränkte Bildschirmunterstützung deklarieren

Obwohl wir Ihnen dringend empfehlen, Ihre App so zu gestalten, dass sie sich an alle Bildschirmgrößen und -dichten anpassen kann, ist es trotzdem möglich, dass Ihre App bestimmte Bildschirmkonfigurationen nicht unterstützt. In diesem Fall kannst du einschränken, inwieweit Android die Größe deiner App anpassen kann, oder sogar einschränken, auf welchen Geräten die App installiert werden kann, wie auf dieser Seite beschrieben.

Bevor Sie Ihre App auf bestimmte Bildschirme beschränken, sollten Sie sich mit den Methoden zur Unterstützung mehrerer Bildschirme vertraut machen und diese so gut wie möglich implementieren.

Separate Artefakte für verschiedene Bildschirme veröffentlichen

Falls es für dich nicht sinnvoll ist, eine einzelne App zu erstellen, die alle Bildschirmkonfigurationen unterstützt, kannst du bei Google Play mehrere Versionen für denselben App-Eintrag veröffentlichen. Mit dieser Funktion kannst du separate Artefakte zur Verfügung stellen, die jeweils einen anderen Satz von Bildschirmkonfigurationen unterstützen (wie in der Manifestdatei deklariert), ohne separate Einträge im Google Play Store zu erstellen.

Wenn Sie beispielsweise eine Mobil- und eine Tabletversion Ihrer App veröffentlichen möchten, aber ein APK nicht für beide Bildschirmgrößen verwenden können, können Sie zwei APKs für denselben App-Eintrag veröffentlichen. Je nach Bildschirmkonfiguration des jeweiligen Geräts lädt Google Play das APK herunter, das der Bildschirmgröße des jeweiligen Geräts entspricht. Bei der Veröffentlichung mit Android App Bundles werden die übermittelten APKs automatisch für die Bildschirmdichte optimiert. Für das Targeting auf die Bildschirmgröße muss jedoch dieselbe Methode verwendet werden.

Weitere Informationen finden Sie unter Mehrere APKs für verschiedene Bildschirmgrößen erstellen.

Maximales Seitenverhältnis angeben

Damit möglichst viele Geräte unterstützt werden, sollte das Layout einer App dynamisch angepasst werden, damit Inhalte und Steuerelemente sichtbar und gut organisiert sind.

Die meisten Anwendungen sollten außerdem anpassbar sein, damit der Nutzer sie im Mehrfenstermodus ausführen kann. Der Nutzer kann eine Aktivität mit anpassbarer Größe im Modus für geteilten Bildschirm und im freien Format starten und die Größe der Aktivität ändern, indem er an den Seiten oder Ecken zieht.

Der Mehrfenstermodus ist für alle Apps verfügbar, die unter Android 7.0 (API-Level 24) oder höher ausgeführt werden. Die Größe von Apps kann standardmäßig angepasst werden. Sie können das Attribut android:resizeableActivity=true auch explizit für eine ganze App oder bestimmte Aktivitäten festlegen.

Unter Android 12 (API-Level 31) wird standardmäßig der Mehrfenstermodus verwendet. Auf großen Bildschirmen (ab 600 dp) werden alle Anwendungen unabhängig von der Anwendungskonfiguration im Mehrfenstermodus ausgeführt. Bei resizeableActivity="false" wird die Anwendung bei Bedarf in den Kompatibilitätsmodus versetzt, um die Anzeigeabmessungen anzupassen. Auf kleinen Bildschirmen (sw < 600 dp) prüft das System die Einstellungen für minWidth, minHeight und resizeableActivity einer Aktivität, um festzustellen, ob die Aktivität im Mehrfenstermodus ausgeführt werden kann. Wenn resizeableActivity="false", unterstützt die Aktivität den Mehrfenstermodus unabhängig von der Mindestbreite und -höhe der Aktivität nicht.

Wenn Sie auf API-Level 30 und niedriger nicht möchten, dass Ihre App oder Aktivität im Mehrfenstermodus ausgeführt wird, legen Sie resizeableActivity=false fest. In diesem Fall erscheint die App immer im Vollbildmodus. Wie dies geschieht, wird vom System abhängig vom jeweiligen Android-Betriebssystem gesteuert:

  • Ist deine App auf Android 8.0 (API-Level 26) bis Android 11 (API-Level 30) ausgerichtet, füllt sie entsprechend dem Layout den gesamten Bildschirm aus.
  • Wenn Ihre App auf Android 7.1 (API-Level 25) oder niedriger ausgerichtet ist, wird die Größe der App-Oberfläche auf ein Fenster mit einem Seitenverhältnis von 16:9 (ungefähr 1,86) begrenzt. Wenn die App auf einem Gerät mit einem größeren Bildschirmseitenverhältnis ausgeführt wird, wird sie in einem 16:9-Letterbox-Bild angezeigt, sodass ein Teil des Bildschirms ungenutzt bleibt.

Wenn sich Ihr App-Layout nicht an beliebig große Seitenverhältnisse anpassen lässt, können Sie das Letterbox-Bild auf allen Ebenen des Android-Betriebssystems explizit erzwingen, indem Sie ein maximales Seitenverhältnis festlegen. Wir empfehlen ein Verhältnis von 2,4 (12:5). Ihre App wird im Letterbox-Format dargestellt, wenn sie auf einem Gerät mit einem größeren Seitenverhältnis als dem von Ihnen angegebenen Seitenverhältnis ausgeführt wird. Der ausgewählte Wert muss für Wear OS-Geräte mindestens 1,0 und für andere Geräte mindestens 1,33 sein. Wenn Sie ein Verhältnis angeben, das kleiner als diese Limits ist, schränkt das System das Seitenverhältnis Ihrer App wie oben beschrieben je nach Betriebssystemebene ein.

Wenn Sie das maximale Seitenverhältnis für Android 8.0 (API-Level 26) und höher festlegen möchten, müssen Sie es mit android:maxAspectRatio in Ihrem <activity>-Tag angeben. Das folgende Beispiel zeigt, wie ein maximales Seitenverhältnis von 2,4 deklariert wird:

<!-- Render on full screen up to screen aspect ratio of 2.4 -->
<!-- Use a letterbox on screens larger than 2.4 -->
<activity android:maxAspectRatio="2.4">
 ...
</activity>

Fügen Sie für Android 7.1 und niedriger ein <meta-data>-Element namens android.max_aspect in das Element <application> ein:

<!-- Render on full screen up to screen aspect ratio of 2.4 -->
<!-- Use a letterbox on screens larger than 2.4 -->
<meta-data android:name="android.max_aspect" android:value="2.4" />

Wenn Sie ein maximales Seitenverhältnis festlegen, müssen Sie auch android:resizeableActivity false festlegen. Andernfalls hat das maximale Seitenverhältnis keine Auswirkungen.

Maximale Bildschirmgröße angeben

Auch wenn du deine App nicht vollständig für verschiedene Bildschirmgrößen optimieren solltest, kann Android die meisten Apps auf größere Bildschirme dehnen. Es ist also fast nie erforderlich, eine maximale Bildschirmgröße anzugeben.

Wenn Sie mehrere APKs für verschiedene Bildschirmgrößen erstellen, müssen Sie ein APK nicht ausschließlich auf kleine Bildschirme beschränken, da Ihr für große Bildschirme optimiertes APK die größere versionCode haben sollte, sodass Google Play dieses APK immer auf Geräten mit einem großen Bildschirm zur Verfügung stellt.

Wenn du aber immer noch nicht damit zufrieden bist, wie Android die Größe deiner App für große Bildschirme anpasst, kannst du die Größenanpassung über eine bestimmte Breite hinaus deaktivieren. Gib dazu das Attribut largestWidthLimitDp im Manifest-Tag <supports-screens> an. Anstatt die Größe des Layouts zu ändern, aktiviert Android dann den Bildschirmkompatibilitätsmodus. In diesem wird das Layout so dargestellt, wie es die größte von Ihrer App unterstützte Größe wäre, und dann alle Pixel hochskaliert, um den Bildschirm zu füllen.

App nur für Tablets oder Fernseher einschränken

Mit dem Manifestelement <supports-screens> können Sie verhindern, dass Ihre App auf Mobilgeräten heruntergeladen wird.

Im folgenden Beispiel wird festgelegt, dass Ihre App nur auf großen und großen Bildschirmen installiert werden sollte:

<manifest ... >
    <supports-screens android:smallScreens="false"
                      android:normalScreens="false"
                      android:largeScreens="true"
                      android:xlargeScreens="true"/>
    ...
</manifest>

App nur auf bestimmte Größen und Dichten beschränken

Mit dem Manifestelement <compatible-screens> kannst du die genauen Bildschirmgrößen und -dichten definieren, die deine App unterstützt. Wir raten jedoch davon ab, da jede Kombination aus Größe und Dichte, die Sie nicht angeben, als Bildschirmkonfiguration betrachtet wird, mit der Ihre App nicht kompatibel ist. Mit diesem Element können Sie Ihre App also auf vielen Geräten blockieren, die sie tatsächlich unterstützen kann.

Das Element <compatible-screens> muss ein oder mehrere <screen>-Elemente enthalten. Jedes <screen>-Element gibt eine Bildschirmkonfiguration an, mit der deine App kompatibel ist. Dazu werden die Attribute android:screenSize und android:screenDensity verwendet. Jedes <screen>-Element muss beide Attribute enthalten, um eine individuelle Bildschirmkonfiguration anzugeben. Wenn eines der Attribute fehlt, ist das Element ungültig (externe Dienste wie Google Play ignorieren es).

So sieht der Manifesteintrag aus, wenn Ihre App nur mit kleinen und normalen Bildschirmgrößen und einem Teil der Bildschirmdichten kompatibel ist:

<manifest ... >
    <compatible-screens>
        <!-- all small size screens -->
        <screen android:screenSize="small" android:screenDensity="ldpi" />
        <screen android:screenSize="small" android:screenDensity="mdpi" />
        <screen android:screenSize="small" android:screenDensity="hdpi" />
        <screen android:screenSize="small" android:screenDensity="xhdpi" />
        <!-- all normal size screens -->
        <screen android:screenSize="normal" android:screenDensity="ldpi" />
        <screen android:screenSize="normal" android:screenDensity="mdpi" />
        <screen android:screenSize="normal" android:screenDensity="hdpi" />
        <screen android:screenSize="normal" android:screenDensity="xhdpi" />
    </compatible-screens>
    ...
    <application ... >
        ...
    <application>
</manifest>

Alle Kombinationen aus Größe und Dichte, die hier nicht explizit deklariert sind, können nicht installiert werden.