langfristigen Erfolg Ihrer App in Bezug auf Anzahl der Installationen und Nutzerrezensionen, Interaktionen und Bindung.
Um eine solide Grundlage für eine hochwertige App zu schaffen, sollten Sie die Qualitätsrichtlinien für Apps beachten.
In den Richtlinien wird die Mindestqualität definiert, die alle Apps erfüllen müssen.
Adaptive App-Qualität
Android-Apps laufen auf einer Vielzahl von Geräten – von kompakten Smartphones über Tablets, faltbare Geräte, Computer, verbundene Displays, Infotainmentsysteme im Auto, Fernseher und XR-Geräte. Mit Fenstermodi wie dem Splitscreen und dem Desktop-Freiform-Fenster können Apps in anpassbaren Bereichen eines Bildschirms ausgeführt werden.
Beachten Sie die Qualitätsrichtlinien für adaptive Apps in Verbindung mit den Qualitätsrichtlinien für Apps, um:
- Für alle Formfaktoren und Displaygrößen optimierte Apps erstellen
- Apps in Google Play-Einträgen und in der Suche höher einstufen lassen
- Mehr Nutzer gewinnen und die Nutzerbindung steigern
Richtlinien
Die folgenden grundlegenden Richtlinien helfen Ihnen, eine einfache, hochwertige App zu entwickeln.
Nutzerfreundlichkeit
Ihre App sollte das visuelle Design und die Interaktionsmuster von Android verwenden, um eine einheitliche und intuitive Nutzererfahrung zu bieten.
Verwenden Sie nach Möglichkeit Material Design-Komponenten, um die Benutzeroberfläche Ihrer App anstelle von Android-Plattformkomponenten zu erstellen. Material Design bietet ein modernes Android-Look-and-Feel sowie eine einheitliche Benutzeroberfläche für alle Android-Versionen.
| ID | Tests | Beschreibung |
|---|---|---|
| Nutzerfreundlichkeit | ||
| Nutzerfreundlichkeit:UX | T-Usability:Core, T-SD-Card |
Die App bietet bei allen Anwendungsfällen und auf allen Formfaktoren eine einheitliche Nutzererfahrung. |
| Nutzerfreundlichkeit:Umschalter | T-Usability:Switcher, T-SD-Card |
Die App wird in den Hintergrund verschoben, wenn der Fokus auf eine andere App wechselt. Die App wird in den Vordergrund zurückgeholt, wenn sie über die Auswahl für kürzlich verwendete Apps reaktiviert wird. |
| Nutzerfreundlichkeit:Schlaf | T-Usability:Sleep, T-SD-Card |
Wenn die App die Vordergrund-App ist, wird sie pausiert, wenn das Gerät in den Ruhemodus wechselt, und fortgesetzt, wenn das Gerät wieder aktiviert wird. |
| Bedienbarkeit:Schloss | T-Usability:Lock, T-SD-Card |
Wenn die App im Vordergrund ausgeführt wird, wird die Wiedergabe angehalten, wenn das Gerät gesperrt wird, und fortgesetzt, wenn das Gerät entsperrt wird. |
| Benutzeroberfläche | ||
| UI:Parity | T-UI:Transitions |
Die Displayausrichtungen und Faltzustände bieten im Wesentlichen dieselben Funktionen und Aktionen und sorgen für funktionale Parität. |
| UI:Fullscreen | T-UI:Transitions |
Die App füllt das App-Fenster in beiden Ausrichtungen aus und wird aufgrund von Konfigurationsänderungen, z. B. beim Auf- und Zuklappen des Geräts, nicht im Letterbox-Format dargestellt. Ein geringfügiges Letterboxing zur Kompensation kleiner Abweichungen bei der Bildschirmgeometrie ist zulässig. |
| Benutzeroberfläche:Übergänge | T-UI:Transitions | Die App verarbeitet schnelle Übergänge zwischen Bildschirmausrichtungen und das Ein- und Ausklappen des Geräts ohne Probleme bei der Darstellung und ohne Verlust des Status. |
| Visuelle Qualität | ||
| Visuell:Display | T-Visual:Display |
Die App zeigt Grafiken, Text, Bilder und andere UI-Elemente ohne erkennbare Verzerrungen, Unschärfe oder Verpixelung an.
|
| Visuell:Lesbarkeit | T-Visual:Readability | Die App sorgt für eine gute Lesbarkeit von Text und Textblöcken, indem die Zeilenlänge für jede der unterstützten Sprachen auf 45 bis 75 Zeichen (einschließlich Leerzeichen) begrenzt wird. |
| Visuell:Designs | T-Visual:Themes | Die Inhalte der App und alle Webinhalte, auf die über die App zugegriffen wird, unterstützen sowohl helle als auch dunkle Designs. |
| Navigation | ||
| Nav:BackButton | T-Nav:Back | Die App unterstützt die standardmäßige Zurück-Schaltflächen-Navigation und verwendet keine benutzerdefinierten Aufforderungen für die Zurück-Schaltfläche auf dem Bildschirm. |
| Nav:BackGesture | T-Nav:Back | Die App unterstützt die Bedienung über Gesten zum Zurückgehen und Aufrufen des Startbildschirms. |
| Nav:State | T-Nav:State, T-Nav:Back |
Die App behält den Nutzer- oder App-Status bei, wenn die App den Vordergrund verlässt, und verhindert einen versehentlichen Datenverlust durch Rückwärtsnavigation und sonstige Statusänderungen. Wenn die App in den Vordergrund zurückkehrt, wird der beibehaltene Status und alle ausstehenden zustandsorientierten Transaktionen wiederhergestellt. Dazu gehören z. B. Änderungen an bearbeitbaren Feldern, Spielverlauf, Menüs, Videos und anderen Bereichen der App.
|
| Benachrichtigungen | ||
| Benachrichtigen:Info | T-Notify:Info |
Benachrichtigungen enthalten relevante Informationen zu Ihrer App.
|
| Benachrichtigen:Messaging | T-Notify:Info |
Für Messaging-Apps, soziale Apps und Unterhaltungen:
|
| Bedienungshilfen | ||
| Zugriff:Ziele | T-Access:Targets | Berührungszielbereiche sind mindestens 48 dp groß. Weitere Informationen finden Sie in den Material Design-Richtlinien zu Layout und Typografie. |
| Access:Contrast | T-Access:Contrast |
Der App-Text und die Vordergrundinhalte haben die folgenden Kontrastverhältnisse zum App-Hintergrund:
|
| Zugriff:Beschreibung | T-Access:Description | Beschreiben Sie jedes UI-Element, mit Ausnahme von TextView, mit contentDescription. |
Funktionalität
Ihre App sollte die folgenden Funktionen bieten.
| ID | Tests | Beschreibung |
|---|---|---|
| Audio | ||
| Audio:Init | T-Audio:Init |
Wenn der Nutzer die Audiowiedergabe startet, sollte die App innerhalb einer Sekunde eine der folgenden Aktionen ausführen:
|
| Audio:Focus | T-Audio:Focus | Die App sollte Audiofokus anfordern, wenn die Audiowiedergabe beginnt, und den Audiofokus aufgeben, wenn die Wiedergabe beendet wird. |
| Audio:Unterbrechen | T-Audio:Interrupt | Die App sollte Anfragen anderer Apps zum Audiofokus verarbeiten. Eine App kann beispielsweise die Wiedergabelautstärke verringern, wenn eine andere App Sprache wiedergibt. |
| Audio:Background | T-Audio:Background | Die App muss die Wiedergabe im Hintergrund unterstützen. |
| Audio:Benachrichtigung | T-Audio:Notification | Wenn die App Audio im Hintergrund wiedergibt, muss sie eine Benachrichtigung mit dem Stil MediaStyle erstellen. |
| Audio:Fortsetzen | T-Audio:Resume | Wenn die App im Hintergrund ausgeführt wird und die Audiowiedergabe pausiert ist, wird sie fortgesetzt, wenn die App wieder in den Vordergrund wechselt. Alternativ muss die App dem Nutzer anzeigen, dass die Wiedergabe pausiert ist. |
| Video | ||
| Video:BiB | T-Video:PiP | Wenn die App Videos abspielt, sollte sie die Bild-im-Bild-Wiedergabe unterstützen. |
| Video:Codierung | T-Video:Encoding | Wenn die App Videos codiert, sollte sie dies mit dem HEVC-Videokomprimierungsstandard tun. |
| Teilen | ||
| Freigabe:Tabelle | T-Sharing:Sheet | Die App sollte beim Teilen von Inhalten das Android Sharesheet verwenden. Die App kann Ziele vorschlagen, die für benutzerdefinierte Lösungen nicht verfügbar sind. |
| Hintergrunddienste | ||
| Hintergrund:Dienste | T-Background:Services |
Die App vermeidet unnötig lange Dienste im Hintergrund. Um einen reibungslosen Betrieb des Geräts des Nutzers zu gewährleisten. Hinweis:Das System wendet verschiedene Einschränkungen für Hintergrunddienste an. Die folgenden Anwendungsfälle sind nicht für Hintergrunddienste geeignet:
Weitere Informationen finden Sie unter Hintergrundaufgaben – Übersicht. |
Leistung und Stabilität
Ihre App sollte optimale Leistung, Stabilität, Kompatibilität und Reaktionsschnelligkeit bieten.
| ID | Tests | Beschreibung |
|---|---|---|
| Leistung | ||
| Leistung:Startup | T- Performance:Startup | Die App wird schnell geladen oder bietet dem Nutzer Feedback auf dem Bildschirm (eine Fortschrittsanzeige oder einen ähnlichen Hinweis), wenn das Laden der App länger als zwei Sekunden dauert. |
| Leistung:FPS | T-Performance:FPS | Die App rendert alle 16 Millisekunden (oder weniger) Frames, um mindestens 60 Frames pro Sekunde anzuzeigen. Hilfe bei Rendering-Problemen finden Sie unter Langsames Rendern. |
| Leistung:Streng | T-Performance:Strict | Wenn StrictMode aktiviert ist (siehe den Testabschnitt StrictMode), sind beim Testen der App keine roten Blitze (Leistungswarnungen von StrictMode) zu sehen. |
| Stabilität | ||
| Stabilität:ANR | T-Stability:ANR | Die App stürzt nicht ab und blockiert den UI-Thread nicht, was zu ANR-Fehlern (Android Not Responding) führt. Mit dem Pre-Launch-Bericht von Google Play können Sie potenzielle Stabilitätsprobleme erkennen. Behalten Sie nach der Bereitstellung die Seite Android Vitals in der Google Play Console im Blick. |
| SDK | ||
| SDK:Platform | T-SDK:Platform | Die App wird auf der neuesten öffentlichen Version der Android-Plattform ausgeführt, ohne abzustürzen oder die Kernfunktionen erheblich zu beeinträchtigen. |
| SDK:Target | T-SDK:Latest | Die App ist auf das neueste Android-SDK ausgerichtet, das erforderlich ist, um die Google Play-Anforderungen zu erfüllen. Dazu wird der Wert targetSdk in der build.gradle-Datei des App-Moduls festgelegt. |
| SDK:Compile | T-SDK:Latest | Die App wurde mit dem neuesten Android SDK erstellt, indem der Wert compileSdk in der build.gradle-Datei des App-Moduls festgelegt wurde. |
| SDK:3P | T-SDK:3P, T-SDK:Non |
Alle verwendeten Google- oder Drittanbieter-SDKs sind auf dem neuesten Stand. Alle Verbesserungen an diesen SDKs in Bezug auf Stabilität, Kompatibilität oder Sicherheit sollten den Nutzern zeitnah zur Verfügung stehen. Verwenden Sie für Google-SDKs nach Möglichkeit SDKs, die auf Google Play-Diensten basieren. Diese SDKs sind abwärtskompatibel, erhalten automatische Updates, verringern die Größe Ihres App-Pakets und nutzen die Ressourcen auf dem Gerät effizient. |
| SDK:Non | T-SDK:Non | Die App verwendet keine Nicht-SDK-Schnittstellen. |
| SDK:Debug | T-SDK:Debug | Die Produktions-App enthält keine Debug-Bibliotheken. Debug-Bibliotheken in der App können zu Leistungs- und Sicherheitsproblemen führen. |
| Akku | ||
| Akku:Verwalten | T-Battery:Manage (T-Battery: Verwalten) |
Die App unterstützt die Funktionen zur Energieverwaltung Doze und App-Standby ordnungsgemäß. Apps können eine Ausnahme von der Stromwartung beantragen. Weitere Informationen finden Sie unter Unterstützung für andere Anwendungsfälle im Artikel Für Doze und App-Standby optimieren. |
Datenschutz und Sicherheit
Die App verarbeitet Nutzerdaten und personenbezogene Daten sicher und bietet angemessene Berechtigungsstufen.
Apps, die im Google Play Store veröffentlicht werden, müssen zum Schutz der Daten von Nutzern auch den Richtlinien für Nutzerdaten von Google Play entsprechen.
| ID | Tests | Beschreibung |
|---|---|---|
| Berechtigungen | ||
| Berechtigungen:Min | T-Permissions:Min | Die App fordert nur die absolut erforderlichen Berechtigungen an, die für den aktuellen Anwendungsfall benötigt werden. Bei einigen Berechtigungen, z. B. für den Standort, verwendet die App nach Möglichkeit eine grobe anstelle einer genauen Spezifikation. Weitere Informationen finden Sie unter Berechtigungsanfragen minimieren. |
| Berechtigungen:Sensibel | T-Berechtigungen:Sensibel |
Die App fordert die Berechtigung für den Zugriff auf vertrauliche Daten (z. B. Berechtigungsgruppen für SMS oder Anrufliste oder Standort) oder kostenpflichtige Dienste (z. B. Dialer oder SMS) nur an, wenn dies in direktem Zusammenhang mit den Hauptanwendungsfällen der App steht. Die Auswirkungen dieser Berechtigungen müssen dem Nutzer deutlich offengelegt werden. Je nachdem, wie Ihre App die Berechtigungen verwendet, ist möglicherweise eine alternative Möglichkeit zur Erfüllung des Anwendungsfalls Ihrer App möglich, ohne auf den Zugriff auf vertrauliche Informationen angewiesen zu sein. Anstatt beispielsweise Berechtigungen für die Kontakte eines Nutzers anzufordern, verwenden Sie einen impliziten Intent, um Zugriff anzufordern. |
| Berechtigungen:Laufzeit | T-Permissions:Runtime | Die App fordert Laufzeitberechtigungen an, wenn die entsprechende Funktion angefordert wird, und nicht beim Start der App. |
| Berechtigungen:Erläutern | T-Permissions:Explain | Die App erklärt deutlich, warum Berechtigungen erforderlich sind. |
| Berechtigungen:Herabstufung | T-Permissions:Degrade | Die App arbeitet mit gradueller Fehlertoleranz, wenn Nutzer eine Berechtigung ablehnen oder widerrufen. Die App darf den Nutzerzugriff nicht vollständig verhindern. |
| Daten und Dateien | ||
| Data:Sensitive | T-Data:Sensitive, T-Data:Handling |
Alle vertraulichen Daten werden im internen Speicher der App gespeichert. |
| Data:Log | T-Data:Log | Es werden keine personenbezogenen oder vertraulichen Nutzerdaten im Systemlog oder in einem app-spezifischen Log protokolliert. |
| Data:IDs | T-Data:IDs | Die App verwendet keine nicht zurücksetzbaren Hardware-IDs wie die IMEI zu Identifikationszwecken. |
| Identitäts- | ||
| Identity:Hints | T-Identity:Hints | Die App bietet Vorschläge zum automatischen Ausfüllen von Anmeldedaten und anderen vertraulichen Informationen wie Kreditkartendaten, Adressen und Telefonnummern. |
| Identität:CredMan | T-Identity:CredMan | Die App ist in den Credential Manager für Android eingebunden, um eine nahtlose Anmeldung zu ermöglichen und die Unterstützung für Passkeys, Verbundidentitäten und Passwörter zu vereinheitlichen. |
| Identität:Biografie | T-Identity:Bio | Die App unterstützt die biometrische Authentifizierung zum Schutz von Finanztransaktionen oder sensiblen Informationen wie wichtigen Nutzerdokumenten. |
| App-Komponenten | ||
| Komponenten:Exportieren | T-Components:Export |
Die App legt das Attribut Nur Anwendungskomponenten, die Daten mit anderen Apps teilen oder die von anderen Apps aufgerufen werden sollen, werden exportiert. |
| Komponenten:Berechtigungen | T-Components:Permissions |
Alle Intents und Broadcasts entsprechen den Best Practices:
|
| Komponenten:Schutz | T-Components:Protection |
Alle Komponenten, die Inhalte zwischen Apps teilen, verwenden Apps sollten nicht auf den Zugriff auf eine Liste der installierten Pakete angewiesen sein. |
| Netzwerke | ||
| Network:Traffic | T-Network:Traffic | Der gesamte Netzwerkverkehr wird über SSL gesendet. |
| Network:Config | T-Network:Config | Die App deklariert eine Netzwerksicherheitskonfiguration. |
| Netzwerk:Play | T-Network:Play | Wenn die App Google Play-Dienste verwendet, wird der Sicherheitsanbieter beim Start der Anwendung initialisiert. |
| WebViews | ||
| WebViews:Config | T-WebViews:Config, T-WebViews:Nav |
Verwenden Sie nicht setAllowUniversalAccessFromFileURLs() , um auf lokale Inhalte zuzugreifen. Verwenden Sie stattdessen WebViewAssetLoader. |
| WebViews:JavaScript | T-WebViews:JavaScript, T-WebViews:Nav |
In WebViews wird Unter Android 6.0 (API-Level 23 und höher) sollten Sie stattdessen HTML-Nachrichtenkanäle verwenden. |
| Umsetzung | ||
| Ausführung:Bundles | T-Execution:Bundles |
Die App lädt keinen Code dynamisch von außerhalb des APKs der App. Verwenden Sie Android App Bundles, die Play Feature Delivery und Play Asset Delivery enthalten. Seit August 2021 ist die Verwendung von Android App Bundles für alle neuen Apps im Google Play Store obligatorisch. |
| Kryptografie | ||
| Crypto:Algorithms | T-Crypto:Algorithms | Die App verwendet einen String, von der Plattform bereitgestellte kryptografische Algorithmen und einen Zufallszahlengenerator. Außerdem werden in der App keine benutzerdefinierten Algorithmen implementiert. |
Google Play
Aktivieren Sie die Veröffentlichung Ihrer App bei Google Play.
| ID | Tests | Beschreibung | |
|---|---|---|---|
| Richtlinien | |||
| Play:Policies | T-Play:Richtlinien | Die App hält sich strikt an die Bedingungen der Google Play-Inhaltsrichtlinie für Entwickler, bietet keine unangemessenen Inhalte und verwendet nicht das geistige Eigentum oder die Marke anderer. | |
| Play:Maturity | T-Play:Richtlinien | Die Altersfreigabe der App wird gemäß den Richtlinien zur Altersfreigabe festgelegt. | |
| App-Detailseite | |||
| Play:Graphics | T-Play:Graphics, T-Play:Assets |
Die Vorstellungsgrafik der App entspricht den Richtlinien in diesem Hilfeartikel. Stellen Sie Folgendes sicher:
|
|
| Play:NonAndroid | T-Play:Assets | App-Screenshots und ‑Videos zeigen oder verweisen nicht auf Nicht-Android-Geräte. | |
| Play:Irreführend | T-Play:Assets | App-Screenshots oder ‑Videos stellen den Inhalt und die Nutzung Ihrer App nicht auf irreführende Weise dar. | |
| Nutzer-Support | |||
| Play:Bugs | T-Play:Richtlinien | Von Nutzern häufig gemeldete Fehler auf dem Tab Rezensionen der Google Play-Seite werden behoben, wenn sie reproduzierbar sind und auf vielen verschiedenen Geräten auftreten. Wenn ein Fehler nur auf wenigen Geräten auftritt, sollten Sie ihn trotzdem beheben, wenn diese Geräte besonders beliebt oder neu sind. | |
Testumgebung
So richten Sie eine Testumgebung ein:
Emulatortests:Mit dem Android-Emulator können Sie Ihre App unter verschiedenen Android-Versionen und Bildschirmauflösungen testen. Richten Sie emulierte Geräte (AVDs) ein, um die häufigsten Formfaktoren und Hardware-/Softwarekombinationen für Ihre Zielgruppe zu repräsentieren. Testen Sie verschiedene Formfaktoren mit den folgenden Emulatoren (mindestens):
- Faltbare Smartphones: 7,6 Zoll großes faltbares Display mit Außendisplay (wird im AVD Manager unter „Smartphones“ aufgeführt)
- Tablet: Pixel C mit 9,94 Zoll (2.560 × 1.800 Pixel)
- Testen von Benachrichtigungen in mobilen Apps: Koppeln Sie ein Mobilgerät oder einen Emulator mit dem Wear OS-Emulator: Wear OS Round 1.84″.
Hardwaregeräte:Ihre Testumgebung sollte eine kleine Anzahl von tatsächlichen Hardwaregeräten umfassen, die die wichtigsten Formfaktoren und Hardware-/Softwarekombinationen repräsentieren, die für Verbraucher verfügbar sind. Sie müssen nicht auf jedem Gerät testen, das auf dem Markt ist. Konzentrieren Sie sich auf eine kleine Anzahl repräsentativer Geräte, auch wenn Sie nur ein oder zwei Geräte pro Formfaktor verwenden.
Gerätetestlabore:Sie können auch Drittanbieterdienste wie Firebase Test Lab verwenden, um Ihre App auf einer Vielzahl von Geräten zu testen.
Mit der neuesten Android-Version testen:Sie sollten nicht nur repräsentative Android-Versionen für Ihre Zielgruppe testen, sondern auch immer die neueste Android-Version, um sicherzustellen, dass sich die neuesten Verhaltensänderungen nicht negativ auf die Nutzerfreundlichkeit Ihrer App auswirken.
Weitere Informationen zum Testen, einschließlich Einheitentests, Integrationstests und UI-Tests, finden Sie unter Grundlagen des Testens von Android-Apps.
StrictMode
Aktivieren Sie für Leistungstests StrictMode in Ihrer App. Verwenden Sie StrictMode, um Vorgänge zu erfassen, die sich auf die Leistung, den Netzwerkzugriff sowie das Lesen und Schreiben von Dateien auswirken könnten. Suchen Sie sowohl im Hauptthread als auch in anderen Threads nach potenziell problematischen Vorgängen.
Richten Sie eine Richtlinie für das Monitoring pro Thread mit StrictMode.ThreadPolicy.Builder ein und aktivieren Sie das gesamte unterstützte Monitoring in der ThreadPolicy mit detectAll().
Aktivieren Sie visuelle Benachrichtigungen zu Richtlinienverstößen für die ThreadPolicy mit penaltyFlashScreen().
Tests
Mit den Tests zur grundlegenden App-Qualität können Sie die grundlegende Qualität Ihrer App bewerten. Sie können die Tests kombinieren oder Gruppen von Tests in Ihren Testplan einbinden.
Nutzerfreundlichkeit
| ID | Funktion | Beschreibung |
|---|---|---|
| Nutzerfreundlichkeit | ||
| T-Usability:Core | Benutzerfreundlichkeit:UX |
Rufen Sie alle Bereiche der App auf, also alle Bildschirme, Dialogfelder, Einstellungen und Nutzerflüsse. Gehen Sie so vor:
|
| T-Usability:Switcher | Bedienbarkeit:Umschalter | Wechseln Sie auf jedem App-Bildschirm zu einer anderen laufenden App und kehren Sie dann über die App-Umschaltfunktion Zuletzt verwendet zur getesteten App zurück. |
| T-Usability:Sleep | Bedienbarkeit:Schlaf | Drücke die Ein/Aus-Taste, um das Gerät in den Ruhemodus zu versetzen, und drücke sie dann noch einmal, um das Display zu aktivieren. |
| T-Usability:Lock | Bedienbarkeit:Verriegeln | Richten Sie eine Displaysperre auf dem Gerät ein. Drücken Sie die Ein/Aus-Taste, um das Gerät in den Ruhemodus zu versetzen und zu sperren. Drücke dann noch einmal die Ein/Aus-Taste, um das Display zu aktivieren und das Gerät zu entsperren. |
| SD-Karte | ||
| T-SD-Karte | Benutzerfreundlichkeit:UX |
Führen Sie Hauptfunktionstests mit der App aus, die auf der SD-Karte eines Geräts installiert ist (sofern die App diese Installationsmethode unterstützt). Informationen zum Verschieben der App auf eine SD-Karte finden Sie in den Einstellungen der App. |
| Benutzeroberfläche | ||
| T-UI:Transitions | UI:Parity, UI:Fullscreen, UI:Transitions |
Drehen Sie das Gerät auf jedem App-Bildschirm mindestens dreimal zwischen Hoch- und Querformat und zwischen zugeklapptem und aufgeklapptem Zustand. Prüfen Sie, ob die App Folgendes tut:
|
| Visuelle Qualität | ||
| T-Visual:Display | Visuell:Display | Verwenden Sie alle Funktionen Ihrer App. Prüfen Sie, ob alle visuellen Elemente, einschließlich Grafiken, Text, Bilder und anderer UI-Elemente, frei von Verzerrungen, Unschärfe oder Verpixelung sind. |
| T-Visual:Readability | Visuell:Lesbarkeit |
Prüfen Sie alle Textblöcke in der App. Achten Sie darauf, dass die Zeilenlänge von Text und Textblöcken aus Gründen der Lesbarkeit auf 45 bis 75 Zeichen (einschließlich Leerzeichen) begrenzt ist. Prüfen Sie Folgendes:
|
| T-Visual:Themes | Visual → Themes | Prüfen Sie, ob der gesamte Text sowohl im hellen als auch im dunklen Design gut lesbar ist. Prüfen Sie, ob alle Bilder sowohl im hellen als auch im dunklen Design gut zu erkennen sind und ästhetisch wirken. |
| Navigation | ||
| T-Nav:Back | Nav:BackButton, Nav:BackGesture |
Rufen Sie alle Bereiche der App auf, also alle Bildschirme, Dialogfelder, Einstellungen und Nutzerflüsse. Drücke auf jedem App-Bildschirm die Schaltfläche Zurück oder verwende die Wischgeste „Zurück“. Die App sollte zum vorherigen Bildschirm oder zum Startbildschirm zurückkehren. |
| T-Nav:State | Nav:State | Drücken Sie auf jedem App-Bildschirm die Startseite-Taste des Geräts oder wischen Sie bei der Gestennavigation nach oben. Starten Sie die App dann über den Bildschirm Alle Apps neu. |
| Benachrichtigungen | ||
| T-Notify:Info | Notify:Info, Notify:Messaging |
Lösen Sie alle Arten von Benachrichtigungen aus, die die App anzeigen kann, und beobachten Sie sie in der Benachrichtigungsleiste. Erweitern Sie Benachrichtigungen, sofern möglich (Android 4.1 und höher), und tippen Sie auf alle verfügbaren Aktionen. |
| Bedienungshilfen | ||
| T-Access:Targets | Zugriff:Ziele | Prüfen Sie, ob die Berührungsziele für alle Displaygrößen und ‑konfigurationen eine einheitliche, zugängliche Größe und Position haben. Informationen zur Barrierefreiheit finden Sie unter Accessibility Scanner. |
| T-Access:Contrast | Zugriff:Kontrast | Prüfen Sie den Kontrast aller visuellen Elemente. |
| T-Access:Description | Access:Description | Prüfen Sie, ob alle UI-Elemente außer TextView Inhaltsbeschreibungen haben. |
Funktionalität
| ID | Funktion | Beschreibung |
|---|---|---|
| Audio | ||
| T-Audio:Init | Audio:Init | Audiowiedergabe starten Prüfen Sie, ob die App innerhalb einer Sekunde mit der Audiowiedergabe beginnt oder einen visuellen Hinweis darauf gibt, dass die Audiodaten für die Wiedergabe vorbereitet werden. |
| T-Audio:Focus | Audio:Fokus | Audiowiedergabe starten Die App sollte Audiofokus anfordern. Wenn die Audiowiedergabe beendet wird, sollte die App den Audiofokus aufgeben. Das geschieht automatisch bei Apps, die auf Android 12 (API‑Level 31) und höher ausgerichtet sind. |
| T-Audio:Interrupt | Audio:Interrupt | Audiowiedergabe starten Starte die Audiowiedergabe in einer anderen App. Deine App sollte auf die Änderung des Audiofokus reagieren und die Audiowiedergabe beenden oder die Lautstärke verringern. |
| T-Audio:Background | Audio:Background (Audio:Hintergrund) | Audiowiedergabe starten Interagiere mit einer anderen Nicht-Audio-App als Vordergrund-App. Die App sollte weiterhin Audio im Hintergrund abspielen. |
| T-Audio:Notification | Audio:Notification | Audiowiedergabe starten Interagiere mit einer anderen Nicht-Audio-App als Vordergrund-App. Prüfe, ob deine App weiterhin Audioinhalte im Hintergrund wiedergibt und eine Benachrichtigung mit dem Stil MediaStyle erstellt hat. Weitere Informationen finden Sie unter Mit der Mediensteuerung zusammenarbeiten. |
| T-Audio:Resume | Audio:Resume | Audiowiedergabe starten Interagieren Sie mit einer anderen App, die keine Audio-App ist, sodass sie zur Vordergrund-App wird. Interagieren Sie dann mit Ihrer App, damit sie zur obersten App wird. Die Audiowiedergabe sollte fortgesetzt oder die Lautstärke wiederhergestellt werden. Andernfalls sollte die App dem Nutzer anzeigen, dass die Wiedergabe pausiert ist. |
| T-Video:BiB | Video:BiB | Aktivieren Sie die Videowiedergabe in Apps im Bild-im-Bild-Modus. |
| T-Video:Codierung | Video:Codierung | Prüfen Sie, ob die App Videos mit dem HEVC-Videokomprimierungsstandard codiert. |
| Teilen | ||
| Freigabe:Tabelle | Erstellen Sie eine Absicht und starten Sie eine Aktivität, indem Sie startActivity() mit der Absicht als Argument aufrufen. Weitere Informationen finden Sie unter Android Sharesheet verwenden. In Ihrer App sollte das Android-Sharesheet angezeigt werden. |
|
| Hintergrunddienste | ||
| CR-6 | Hintergrund:Dienste | Verwenden Sie alle wichtigen Funktionen Ihrer App. Prüfen Sie, ob keine lang andauernden Hintergrunddienste gestartet werden. Wechseln Sie zu einer anderen App, um Ihre App in den Hintergrund zu verschieben. Rufen Sie die Einstellungen auf und prüfen Sie, ob für Ihre App Dienste im Hintergrund ausgeführt werden. Gehen Sie unter Android 4.0 und höher zum Bildschirm Apps und suchen Sie die App auf dem Tab Wird ausgeführt. |
Leistung und Stabilität
| ID | Funktion | Beschreibung |
|---|---|---|
| Leistung | ||
| T-Leistung:Startup | Leistung:Start | Starten Sie Ihre App. Prüfen Sie, ob die App schnell geladen wird oder eine Fortschrittsanzeige oder ähnliche Hinweise eingeblendet werden, wenn das Laden der App länger als zwei Sekunden dauert. |
| T-Performance:FPS | Leistung:FPS | Verwenden Sie alle wichtigen Funktionen Ihrer App. Prüfen Sie, ob die App mindestens 60 Frames pro Sekunde rendert. Mit der Option HWUI-Rendering-Profil können Sie Ihre App testen. |
| T-Performance:Strict | Leistung:Streng |
Aktivieren Sie Achten Sie genau auf die Garbage Collection und ihre Auswirkungen auf die Nutzerfreundlichkeit. |
| Stabilität | ||
| T-Stability:ANR | Stabilität:ANR | Verwenden Sie alle wichtigen Funktionen Ihrer App. Prüfen Sie, ob die App abstürzt oder den UI-Thread blockiert, was zu ANR-Fehlern („Android Not Responding“) führt. Sehen Sie sich den Pre-Launch-Bericht von Google Play an, um potenzielle Stabilitätsprobleme zu erkennen. |
| SDK | ||
| T-SDK:Platform | SDK:Platform | Führen Sie Ihre App auf der neuesten öffentlichen Version der Android-Plattform aus. Alle wichtigen Funktionen verwenden. Prüfen Sie, ob die App abstürzt und ob die Hauptfunktionen ohne Einschränkungen ausgeführt werden. |
| T-SDK:Latest | SDK:Target, SDK:Compile |
Prüfen Sie die Android-Manifestdatei und die Build-Konfiguration, um sicherzustellen, dass die Anwendung mit dem aktuellsten verfügbaren SDK (targetSdk und compileSdk) erstellt wird. |
| T-SDK:3P | SDK:3P | Prüfen Sie die Datei build.gradle Ihrer App auf veraltete Abhängigkeiten. |
| T-SDK:Non | SDK:Non | Verwenden Sie das Lint-Tool von Android Studio, um die Verwendung von Nicht-SDK-Schnittstellen zu erkennen. Informationen zu alternativen Testmethoden finden Sie unter Einschränkungen für Nicht-SDK-Schnittstellen. |
| T-SDK:Debug | SDK:Debug | Prüfen Sie die build.gradle-Datei Ihrer App auf enthaltene Debug-Bibliotheken. |
| Akku | ||
| T-Battery:Manage | Akku:Verwalten |
Alle wichtigen App-Funktionen im Doze- und App-Standby-Modus verwenden Prüfen Sie, ob Wecker, Timer, Benachrichtigungen und Synchronisierungen im Wartungszeitraum von Doze und beim Beenden des App-Standby-Modus ordnungsgemäß funktionieren. Testen Sie das Verhalten von Stromsparmodus und App-Standby mit ADB-Befehlen. Informationen zu Anforderungen und Richtlinien finden Sie unter Mit Stromsparmodus und App-Standby testen. Um einen unerwarteten Akkuverbrauch zu diagnostizieren, verwenden Sie den Android Studio Power Profiler oder das Tool Battery Historian in Kombination mit geplanten Hintergrundaufgaben. |
Datenschutz und Sicherheit
| ID | Funktion | Beschreibung |
|---|---|---|
| Berechtigungen | ||
| T-Permissions:Min | Berechtigungen:Min | Sehen Sie sich alle Berechtigungen an, die Ihre App benötigt – in der Manifestdatei, zur Laufzeit und in den App-Einstellungen auf dem Gerät (Einstellungen > App-Info). |
| T-Permissions:Sensitive | Berechtigungen:Sensibel | Verwenden Sie alle Funktionen Ihrer App, für die Berechtigungen angefordert werden. Prüfen Sie, ob die App nur für wichtige Anwendungsfälle der App Berechtigungen für den Zugriff auf sensible Daten oder Dienste anfordert. Prüfen Sie, ob die Auswirkungen der Erteilung der Berechtigung für vertrauliche Daten und Dienste dem Nutzer klar mitgeteilt werden. |
| T-Permissions:Runtime | Berechtigungen:Laufzeit | Verwenden Sie alle Funktionen Ihrer App, für die Berechtigungen erforderlich sind. Prüfen Sie, ob die Berechtigungen verzögert angefordert werden, d. h. erst, wenn auf die Funktionen zugegriffen wird, und nicht beim Start der App. |
| T-Permissions:Explain | Berechtigungen:Erläutern | Verwenden Sie alle Funktionen Ihrer App, für die Berechtigungen erforderlich sind. Prüfen Sie, ob die App dem Nutzer erklärt, warum die Berechtigungen erforderlich sind. |
| T-Permissions:Degrade | Berechtigungen:Herabstufen | Verwenden Sie alle Funktionen Ihrer App, für die Berechtigungen erforderlich sind. Berechtigungen verweigern oder widerrufen Prüfen Sie, ob die App einen alternativen Anwendungsfall bietet und weiterhin funktioniert. |
| Daten und Dateien | ||
| T-Data:Sensitive | Data:Sensitive | Überprüfen Sie alle Daten, die im internen Speicher gespeichert sind. Prüfen Sie, ob extern gespeicherte Daten keine sensiblen Daten sind. |
| T-Data:Handling | Data:Sensitive | Prüfen Sie, wie die aus dem externen Speicher geladenen Daten verarbeitet werden. |
| T-Data:Log | Daten:Protokoll | Verwenden Sie alle wichtigen App-Funktionen und beobachten Sie dabei das Geräteprotokoll. Prüfen Sie, ob keine privaten Nutzerinformationen protokolliert werden. |
| T-Data:IDs | Data:IDs | Alle wichtigen App-Funktionen verwenden. Prüfen Sie, ob die App keine Hardware-IDs wie die IMEI zu Identifikationszwecken verwendet. |
| Identitäts- | ||
| T-Identity:Hints | Identity:Hints | Alle App-Funktionen verwenden, für die eine Nutzereingabe erforderlich ist. Prüfen Sie, ob die App Vorschläge zum automatischen Ausfüllen von Eingabefeldern für Daten wie Anmeldedaten und andere vertrauliche Informationen anbietet. |
| T-Identity:CredMan | Identity:CredMan | Melden Sie sich in Ihrer App an. Prüfen Sie, ob die App den Credential Manager für Android für die Anmeldung verwendet, um die Unterstützung für Passkeys, Verbundidentität und Passwörter zu vereinheitlichen. |
| T-Identity:Bio | Identity:Bio | Alle App-Funktionen nutzen, für die eine Authentifizierung erforderlich ist. Prüfen Sie, ob die App Finanztransaktionen oder vertrauliche Informationen wie wichtige Nutzerdokumente mit biometrischer Authentifizierung schützt. |
| App-Komponenten | ||
| T-Components:Export | Components:Export | Prüfen Sie alle in der Android-Manifestdatei definierten Anwendungskomponenten auf den entsprechenden Exportstatus. Die exportierte Eigenschaft muss für alle Komponenten explizit festgelegt werden. |
| T-Components:Berechtigungen | Komponenten:Berechtigungen | Prüfen Sie alle Berechtigungen, die Ihre App benötigt, in der Manifestdatei, zur Laufzeit und in den App-Einstellungen auf dem Gerät (Einstellungen > App-Info). |
| T-Components:Protection | Komponenten:Schutz | Überprüfen Sie alle in der Android-Manifestdatei definierten Contentanbieter. Achten Sie darauf, dass jeder Anbieter eine entsprechende protectionLevel hat. |
| Netzwerke | ||
| T-Network:Traffic | Network:Traffic | Deklarieren Sie eine Netzwerksicherheitskonfiguration, die Klartext-Datenverkehr deaktiviert, und testen Sie die App. |
| T-Network:Config | Network:Config | Prüfen Sie die Netzwerksicherheitskonfiguration der App. Prüfen Sie, ob Lint-Prüfungen für die Konfiguration fehlschlagen. |
| T-Network:Play | Netzwerk:Play | Prüfen Sie, ob der Sicherheitsanbieter beim Start der Anwendung für die Google Play-Dienste initialisiert wird. |
| WebViews | ||
| T-WebViews:Config | WebViews:Config | Prüfen Sie die Netzwerksicherheitskonfiguration der App. Prüfen Sie, ob Lint-Prüfungen für die Konfiguration fehlschlagen. |
| T-WebViews:JavaScript | WebViews:JavaScript | Rufen Sie für jedes WebView eine Seite auf, für die JavaScript erforderlich ist. |
| T-WebViews:Nav | WebViews:Config, WebViews:JavaScript |
Versuchen Sie in jeder WebView, zu Websites und Inhalten zu navigieren, die nicht direkt von Ihrer App geladen werden. |
| Umsetzung | ||
| T-Execution:Bundles | Ausführung:Bundles | Prüfen Sie, ob die App Android App Bundles verwendet und keinen Code dynamisch von außerhalb des APK der App lädt. |
| Kryptografie | ||
| T-Crypto:Algorithms | Crypto:Algorithms | Prüfen Sie, ob die App starke, plattformbereitgestellte kryptografische Algorithmen und einen Zufallszahlengenerator verwendet. Prüfen Sie außerdem, ob in der App benutzerdefinierte Algorithmen implementiert sind. |
Google Play
| ID | Funktion | Beschreibung |
|---|---|---|
| Richtlinien | ||
| T-Play:Policies | Play:Policies, Play:Maturity, Play:Bugs |
Melden Sie sich in der Google Play Console an, um Ihr Entwicklerprofil, die App-Beschreibung, Screenshots, das Titelbild, die Altersfreigabe und das Nutzerfeedback zu prüfen. |
| App-Detailseite | ||
| T-Play:Graphics | Play:Graphics | Laden Sie Ihre Feature-Grafik und Screenshots herunter und passen Sie sie an die Displaygrößen der Geräte und Formfaktoren an, die Sie anvisieren. |
| T-Play:Assets | Play:Graphics, Play:NonAndroid, Play:Misleading |
Prüfen Sie alle grafischen Assets, Medien, Texte, Codebibliotheken und anderen Inhalte, die in der App oder im Download der Erweiterungsdatei enthalten sind. |
Archivieren
Frühere Versionen der Qualitätsrichtlinien für Apps: