Um eine einheitliche und hochwertige Nutzererfahrung zu bieten und Probleme zu vermeiden, die zu Fehlern in der Compatibility Test Suite (CTS) führen, müssen Sie die hier beschriebenen WM-Grundprinzipien (WindowManager) implementieren. Diese Grundprinzipien tragen dazu bei, die Richtlinien zur Qualität von Auto-Apps einzuhalten. Diese Grundprinzipien gelten für:
Android-Versionen mit einer Architektur für den Mehrfenstermodus, die in Android 14 eingeführt und in Android 15 mit der skalierbaren UI fortgesetzt wurde
Skalierbare Android-UI und Ihre eigenen benutzerdefinierten Implementierungen
Wenn Sie die Grundprinzipien anwenden, können Sie die meisten Probleme im Zusammenhang mit CTS-Compliance- und Funktionstests proaktiv vermeiden.
Terminologie
- Invariant
- Eine logische Bedingung, die während der Ausführung einer App immer erfüllt ist und zu struktureller Integrität führt. Eine Invariante fungiert als Grenzregel.
- Spezielle Aktivität
- Diese kritische App-Aktivität, auch als Auto-UI-Aktivität oder System-UI-Aktivität bezeichnet, hat einen eigenen Bereich auf dem Bildschirm, der immer oder die meiste Zeit sichtbar ist, auch wenn der Nutzer Home drückt, z. B. eine primäre Navigations- oder Cluster-App.
- Standardaktivität
- Jede Standard-App-Aktivität, die nicht für die Kernbenutzeroberfläche des Systems entscheidend ist, z. B. eine Drittanbieter-Media-App, die über das App-Raster gestartet wird.
WM-Grundprinzipien
Um die CTS-Compliance zu maximieren, wenden Sie diese Grundprinzipien in Ihren WM-Implementierungen an.
Stabile Konfiguration beim Starten der Aktivität verwenden
Starten Sie jede neue Standardaktivität mit einer einzelnen WM-Übergang, der die endgültige Position, Größe und Dichte festlegt. Sie dürfen nicht sofort nach dem ersten Übergang einen zweiten Übergang auslösen, der die Fensterkonfiguration der zugrunde liegenden Aufgabe ändert (z. B. Größe oder Dichte). Andernfalls wird die Konfiguration sofort nach dem Erstellen der Aktivität geändert.
Standardaktivitäten in den Status „Beendet“ verschieben
Wenn der Nutzer zur Startaufgabe oder zum Startbildschirm navigiert, müssen Sie alle laufenden Standardaktivitäten in den Status „Beendet“ verschieben, um den vorhersehbaren Android-App-Lebenszyklus beizubehalten, der für CTS-Tests erforderlich ist. Weitere Informationen zu den Erwartungen an den App-Lebenszyklus in Automotive-Umgebungen finden Sie unter Nutzung verhindern, wenn Einschränkungen der Nutzererfahrung aktiv sind.
Verhindern, dass Inhalte von Standardaktivitäten verdeckt werden
Zeichnen Sie keine benutzerdefinierten Dekorationen oder UI-Elemente, die den Inhalt einer Standardaktivität verdecken. Wenn Sie benutzerdefinierte Overlays zeichnen (z. B. eine benutzerdefinierte Klimasteuerungsleiste), müssen Sie die Abmessungen mit SystemOverlay-Einzügen an das System melden. Verwenden Sie für Android 15 und höher DecorPanel in der skalierbaren UI. Apps
verwenden diese Einzüge, um Inhalte sicher zu layouten.
Overlays bei Anfragen im immersiven Modus ausblenden
Wenn eine App den immersiven Modus anfordert, müssen Sie alle temporären benutzerdefinierten UI-Elemente ausblenden und die zugehörigen SystemOverlay-Einzüge entfernen. Permanente Verdeckungen beeinträchtigen die Pixelerwartungen einer App. Weitere Informationen dazu, wie Apps den immersiven Modus anfordern
und verarbeiten, finden Sie unter
Systemleisten, immersiver Modus und Edge-to-Edge-Rendering.
Abgerundete Ecken nur auf Displayebene anwenden
Wenden Sie abgerundete Ecken nur auf Displayebene an. Verwenden Sie dazu die entsprechenden Ressourcenkonfigurationen in frameworks/base. Wenden Sie keine beliebigen abgerundeten Ecken auf die Oberfläche einer Standardaktivität an.
Andernfalls werden UI-Elementtests beeinträchtigt. Als vorübergehende Maßnahme können Sie denselben Radius für abgerundete Ecken für das Display angeben, den Sie auf die Oberfläche der Standardaktivität anwenden.
App-Größe bei Anfragen im immersiven Modus beibehalten
Wenn eine App den immersiven Modus anfordert, ändern Sie nicht die Größe des App-Fensters. Andernfalls wird eine störende Konfigurationsänderung ausgelöst. Bieten Sie stattdessen eine vom Nutzer steuerbare Vollbildschaltfläche an, um die App zu maximieren.