Norme sulla qualità principali delle app

il successo a lungo termine della tua app in termini di numero di installazioni e recensioni degli utenti, coinvolgimento e fidelizzazione.

Per fornire una base solida per un'app di qualità, segui le norme sulla qualità principali delle app.

Le linee guida definiscono la qualità minima che tutte le app devono soddisfare.

Qualità adattiva dell'app

Le app per Android funzionano su un'ampia gamma di dispositivi, dagli smartphone compatti a tablet, pieghevoli, computer, display connessi, sistemi di infotainment per auto, TV e XR. Le modalità di visualizzazione a finestre, come lo schermo diviso e le finestre delle app, consentono alle app di essere eseguite in porzioni ridimensionabili di uno schermo.

Segui le norme sulla qualità adattiva delle app, insieme a quelle sulla qualità principali delle app, per:

  • Creare app ottimizzate per tutti i fattori di forma e le dimensioni di visualizzazione
  • Migliorare il ranking delle tue app nelle schede e nella ricerca di Google Play
  • Acquisire più utenti e aumentare la fidelizzazione degli utenti

Linee guida

Le seguenti linee guida di base ti aiutano a creare un'app di base di alta qualità.

Esperienza utente

La tua app deve fornire un design visivo e sequenze di interazione standard Android per un'esperienza utente coerente e intuitiva.

Utilizza i componenti Material Design per creare l'interfaccia utente della tua app al posto dei componenti della piattaforma Android, ove possibile. Material Design offre un aspetto moderno di Android e un'interfaccia utente coerente tra le varie versioni di Android.

ID Test Descrizione
Usabilità
Usabilità:UX T-Usability:Core,
T-SD-Card
L'app offre un'esperienza utente coerente per tutti i casi d'uso dell'app su tutti i fattori di forma.
Usabilità:Switcher T-Usability:Switcher,
T-SD-Card
L'app passa in background quando lo stato attivo passa a un'altra app. L'app torna in primo piano quando viene riattivata dal selettore di app Recenti.
Usabilità:sonno T-Usability:Sleep,
T-SD-Card
Quando l'app è in primo piano, si mette in pausa quando il dispositivo entra in modalità di sospensione e riprende quando il dispositivo si riattiva.
Usabilità:serratura T-Usability:Lock,
T-SD-Card
Quando l'app è in primo piano, si mette in pausa quando il dispositivo è bloccato e riprende quando il dispositivo è sbloccato.
Interfaccia utente
UI:Parity T-UI:Transitions

Gli orientamenti del display e gli stati di chiusura espongono essenzialmente le stesse funzionalità e azioni e preservano la parità funzionale.

UI:Fullscreen T-UI:Transitions

L'app riempie la finestra dell'app in entrambi gli orientamenti e non presenta barre nere a causa delle modifiche alla configurazione, tra cui la chiusura e l'apertura del dispositivo.

È accettabile un letterbox leggero per compensare piccole variazioni nella geometria dello schermo.

UI:Transitions T-UI:Transitions L'app gestisce le transizioni rapide tra gli orientamenti del display e la chiusura e l'apertura del dispositivo senza problemi di rendering del display e senza perdere lo stato.
Qualità visiva
Visual:Display T-Visual:Display

L'app mostra grafica, testo, immagini e altri elementi UI senza distorsioni, sfocature o pixelizzazioni evidenti.

  • L'app utilizza risorse grafiche vettoriali, se possibile
  • L'app utilizza grafica di alta qualità per tutte le dimensioni dello schermo e i fattori di forma di destinazione
  • Nessun aliasing sui bordi di menu, pulsanti e altri elementi dell'interfaccia utente
Visuale:leggibilità T-Visual:Readability L'app garantisce la leggibilità del testo e dei blocchi di testo limitando la lunghezza delle righe a 45-75 caratteri (spazi inclusi) per ciascuna delle lingue supportate dall'app.
Elemento visivo:Temi T-Visual:temi I contenuti dell'app e tutti i contenuti web a cui accede l'app supportano sia il tema chiaro sia quello scuro.
Navigazione
T-Nav:Back L'app supporta la navigazione con il pulsante Indietro standard e non utilizza prompt personalizzati per il pulsante Indietro sullo schermo.
T-Nav:Back L'app supporta la navigazione tramite gesti per tornare indietro e andare alla schermata Home.
T-Nav:State,
T-Nav:Back

L'app mantiene lo stato dell'utente o dell'app quando non è più in primo piano e impedisce la perdita accidentale di dati a causa della navigazione a ritroso e di altre modifiche dello stato.

Quando torna in primo piano, l'app ripristina lo stato salvato e tutte le transazioni stateful in attesa. Ad esempio, modifiche a campi modificabili, progressi di gioco, menu, video e altre sezioni dell'app.

  • Quando l'app viene ripresa dal selettore di app Recenti, l'utente torna esattamente allo stato in cui l'app è stata utilizzata l'ultima volta.
  • Quando l'app viene ripresa dopo che il dispositivo si riattiva dallo stato di sospensione (blocco), l'app riporta l'utente esattamente allo stato in cui è stata utilizzata l'ultima volta.
  • Quando l'app viene riavviata da Home o Tutte le app, dovrebbe eseguire una delle seguenti operazioni, a seconda del tempo trascorso dall'ultimo utilizzo:
    • Se l'app è stata utilizzata l'ultima volta poco tempo fa (pochi minuti), ripristina lo stato dell'app il più vicino possibile a quello precedente.
    • Se è passato più tempo dall'ultimo utilizzo dell'app, prova a ripristinarla il più possibile al suo stato precedente o avviala dalla schermata Home o da un altro stato predefinito.
Notifiche
Notifica:Info T-Notify:Info

Le notifiche forniscono informazioni pertinenti relative alla tua app.

  • Non utilizzare le notifiche per la promozione incrociata o la pubblicità di un altro prodotto, in quanto è severamente vietato dal Play Store.
  • I canali di notifica sono definiti in base alle best practice, anziché pubblicare tutte le notifiche da un unico canale.
  • Seleziona la priorità di notifica corretta.
  • Raggruppa più notifiche in un unico gruppo di notifiche, se possibile.
  • Imposta i timeout per le notifiche, se opportuno.
  • Le notifiche sono persistenti solo se correlate a eventi in corso, come la riproduzione di musica o una chiamata. Per saperne di più, consulta la sezione Funzionalità.
Notifica:Messaggistica T-Notify:Info

Per app di messaggistica, app social e conversazioni:

Accessibilità
Accesso:Target T-Access:Targets I touch target sono almeno 48 dp. Consulta le linee guida di Material Design su layout e tipografia.
Accesso:Contrasto T-Access:Contrast

Il testo dell'app e i contenuti in primo piano mantengono i seguenti rapporti di contrasto con lo sfondo dell'app:

  • 3:1 per testo e grafica di grandi dimensioni
  • 4,5:1 per testo di piccole dimensioni (meno di 18 pt o meno di 14 pt se il testo è in grassetto)

Scopri di più su colore e contrasto.

Accesso:Descrizione T-Access:Description Descrivi ogni elemento UI, tranne TextView, utilizzando contentDescription.

Funzionalità

La tua app deve implementare il seguente comportamento funzionale.

ID Test Descrizione
Audio
Audio:Init T-Audio:Init

Quando l'utente avvia la riproduzione audio, l'app deve eseguire una delle seguenti operazioni entro un secondo:

  • Avvia la riproduzione dell'audio
  • Fornire un indicatore visivo che indichi che i dati audio sono in fase di preparazione
Audio:Focus T-Audio:Focus L'app deve richiedere la messa a fuoco dell'audio quando inizia la riproduzione dell'audio e abbandonarla quando la riproduzione si interrompe.
Audio:Interrompi T-Audio:Interrupt L'app deve gestire le richieste di focus audio di altre app. Ad esempio, un'app potrebbe ridurre il volume di riproduzione quando un'altra app riproduce un discorso.
Audio:Background T-Audio:Background L'app deve supportare la riproduzione in background.
Audio:Notifica T-Audio:Notification Quando l'app riproduce audio in background, deve creare una notifica con lo stile MediaStyle.
Audio:Riprendi T-Audio:Resume Se l'app è in background e l'audio è in pausa, l'audio riprende quando l'app torna in primo piano oppure l'app deve indicare all'utente che la riproduzione è in pausa.
Video
Video:PIP T-Video:PiP Se l'app riproduce video, deve supportare la riproduzione in modalità Picture in picture.
Video:Encoding T-Video:Encoding Se l'app codifica video, deve farlo utilizzando lo standard di compressione video HEVC.
Condivisione
Condivisione:Sheet T-Sharing:Sheet L'app deve utilizzare il foglio di condivisione di Android quando condivide contenuti. L'app può suggerire target non disponibili per le soluzioni personalizzate.
Servizi in background
Background:Services T-Background:Services

L'app evita di eseguire servizi inutilmente lunghi in background. Per garantire il corretto funzionamento del dispositivo dell'utente.

Nota:il sistema applica varie limitazioni ai servizi in background.

Di seguito sono riportati alcuni utilizzi impropri dei servizi in background:

  • Mantenere una connessione di rete per le notifiche
  • Mantenere una connessione Bluetooth
  • Mantenere il GPS attivo

Per saperne di più, consulta la panoramica delle attività in background.

Prestazioni e stabilità

La tua app deve fornire prestazioni, stabilità, compatibilità e reattività ottimali.

ID Test Descrizione
Prestazioni
Rendimento:avvio T- Performance:Startup L'app si carica rapidamente o fornisce un feedback sullo schermo all'utente (un indicatore di avanzamento o un segnale simile) se l'app impiega più di due secondi per caricarsi.
Rendimento:FPS T-Performance:FPS L'app esegue il rendering dei frame ogni 16 (o meno) millisecondi per visualizzare almeno 60 frame al secondo. Per assistenza in caso di problemi di rendering, vedi Rendering lento.
Rendimento:rigoroso T-Performance:Strict Se l'opzione StrictMode è attivata (vedi la sezione relativa ai test StrictMode), non sono visibili flash rossi (avvisi sul rendimento di StrictMode) durante il test dell'app.
Stabilità
Stabilità:ANR T-Stability:ANR L'app non va in arresto anomalo né blocca il thread dell'interfaccia utente causando errori ANR (Android Not Responding). Utilizza il report pre-lancio di Google Play per identificare potenziali problemi di stabilità. Dopo il deployment, monitora la pagina Android vitals nella console Google Play.
SDK
SDK:Platform T-SDK:Platform L'app viene eseguita sull'ultima versione pubblica della piattaforma Android senza arresti anomali o gravi ripercussioni sulle funzionalità principali.
SDK:Target T-SDK:Latest L'app ha come target l'ultimo SDK Android necessario per rispettare i requisiti di Google Play impostando il valore targetSdk nel file build.gradle del modulo dell'app.
SDK:Compile T-SDK:Latest L'app è creata con l'ultimo SDK Android impostando il valore compileSdk nel file build.gradle del modulo dell'app.
SDK:3P T-SDK:3P,
T-SDK:Non

Tutti gli SDK di Google o di terze parti utilizzati sono aggiornati. Eventuali miglioramenti a questi SDK relativi a stabilità, compatibilità o sicurezza devono essere disponibili per gli utenti in modo tempestivo.

Per gli SDK Google, utilizza gli SDK basati su Google Play Services, se disponibili. Questi SDK sono compatibili con le versioni precedenti, ricevono aggiornamenti automatici, riducono le dimensioni del pacchetto dell'app e utilizzano in modo efficiente le risorse sul dispositivo.

SDK:Non T-SDK:Non L'app non utilizza interfacce non SDK.
SDK:Debug T-SDK:Debug Nell'app di produzione non sono incluse librerie di debug. Le librerie di debug incluse nell'app possono causare problemi di prestazioni e di sicurezza.
Batteria
Batteria:gestisci T-Battery:Manage

L'app supporta correttamente le funzionalità di gestione dell'alimentazione Sospensione e standby delle app.

Le app possono richiedere un'esenzione dalla manutenzione dell'alimentazione. Consulta la sezione Supporto per altri casi d'uso in Ottimizzare per la sospensione e lo standby app.

Privacy e sicurezza

L'app gestisce i dati utente e le informazioni personali in modo sicuro e fornisce livelli di autorizzazione appropriati.

Le applicazioni pubblicate sul Google Play Store devono rispettare anche le norme relative ai dati utente di Google Play per proteggere la privacy degli utenti.

ID Test Descrizione
Autorizzazioni
Autorizzazioni:min T-Permissions:Min L'app richiede solo le autorizzazioni minime necessarie per supportare il caso d'uso attuale. Per alcune autorizzazioni, come la posizione, l'app utilizza una specifica grossolana anziché precisa, se possibile. Consulta la sezione Ridurre al minimo le richieste di autorizzazione.
Autorizzazioni:sensibili T-Permissions:Sensitive

L'app richiede l'autorizzazione ad accedere a dati sensibili (ad esempio gruppi di autorizzazioni SMS o Registro chiamate o posizione) o a servizi a pagamento (ad esempio Dialer o SMS) solo se direttamente correlati ai casi d'uso principali dell'app. Le implicazioni relative a queste autorizzazioni devono essere comunicate all'utente in modo ben visibile.

A seconda di come la tua app utilizza le autorizzazioni, potrebbe essere possibile un modo alternativo per soddisfare il caso d'uso dell'app senza fare affidamento sull'accesso a informazioni sensibili. Ad esempio, anziché richiedere autorizzazioni relative ai contatti di un utente, utilizza un intent implicito per richiedere l'accesso.

Autorizzazioni:runtime T-Permissions:Runtime L'app richiede le autorizzazioni di runtime quando viene richiesta la funzionalità, anziché durante l'avvio dell'app.
Autorizzazioni:spiega T-Permissions:Explain L'app spiega chiaramente perché sono necessarie le autorizzazioni.
Autorizzazioni:Degrade T-Permissions:Degrade L'app applica la riduzione controllata quando gli utenti negano o revocano un'autorizzazione. L'app non deve impedire del tutto l'accesso dell'utente.
Dati e file
Data:Sensitive T-Data:Sensitive,
T-Data:Handling
Tutti i dati sensibili sono archiviati nella memoria interna dell'app.
Dati:Log T-Data:Log Nessun dato utente personale o sensibile viene registrato nel log di sistema o in un log specifico dell'app.
Dati:ID T-Data:IDs L'app non utilizza ID hardware non reimpostabili, come l'IMEI, a scopo di identificazione.
Identità
Identity:Hints T-Identity:Hints L'app fornisce suggerimenti per la compilazione automatica delle credenziali dell'account e di altre informazioni sensibili, come i dati della carta di credito, l'indirizzo fisico e il numero di telefono.
Identità:CredMan T-Identity:CredMan L'app integra Gestore delle credenziali per Android per un'esperienza di accesso fluida che unifica il supporto per le passkey, l'identità federata e le password.
Identità:Bio T-Identity:Bio L'app supporta l'autenticazione biometrica per proteggere le transazioni finanziarie o le informazioni sensibili, come i documenti importanti dell'utente.
Componenti app
Componenti:esportazione T-Components:Export

L'app imposta l'attributo android:exported in modo esplicito per tutte le attività, i servizi, i ricevitori di trasmissione e soprattutto i fornitori di contenuti.

Vengono esportati solo i componenti dell'applicazione che condividono dati con altre app o che devono essere richiamati da altre app.

Componenti:autorizzazioni T-Components:Permissions

Tutti gli intent e le trasmissioni seguono le best practice:

Componenti:Protezione T-Components:Protection

Tutti i componenti che condividono contenuti tra le app utilizzano android:protectionLevel="signature" per le autorizzazioni personalizzate. Sono inclusi attività, servizi, ricevitori di trasmissioni e, in particolare, fornitori di contenuti.

Le app non devono fare affidamento sull'accesso a un elenco di pacchetti installati.

Reti
Rete:Traffico T-Network:Traffic Tutto il traffico di rete viene inviato tramite SSL.
Network:Config T-Network:Config L'app dichiara una configurazione di sicurezza di rete.
Network:Play T-Network:Play Se l'app utilizza Google Play Services, il fornitore di sicurezza viene inizializzato all'avvio dell'applicazione.
WebView
WebViews:Config T-WebViews:Config,
T-WebViews:Nav
Non utilizzare setAllowUniversalAccessFromFileURLs() per accedere ai contenuti locali. Utilizza invece WebViewAssetLoader.
WebView:JavaScript T-WebViews:JavaScript,
T-WebViews:Nav

I componenti WebView non utilizzano addJavaScriptInterface() con contenuti non attendibili.

Su Android 6.0 (livello API 23 e versioni successive), utilizza invece i canali di messaggi HTML.

Esecuzione
Esecuzione:bundle T-Execution:Bundles

L'app non carica dinamicamente codice dall'esterno dell'APK dell'app. Utilizza gli Android App Bundle, che includono Play Feature Delivery e Play Asset Delivery.

A partire da agosto 2021, l'utilizzo degli Android App Bundle è obbligatorio per tutte le nuove app nel Google Play Store.

Crittografia
Crypto:Algorithms T-Crypto:Algorithms L'app utilizza stringhe, algoritmi crittografici forniti dalla piattaforma e un generatore di numeri casuali. Inoltre, l'app non implementa algoritmi personalizzati.

Google Play

Consenti la pubblicazione della tua app su Google Play.

ID Test Descrizione
Norme
Play:Policies T-Play:Norme L'app rispetta rigorosamente i termini delle Norme relative ai contenuti per gli sviluppatori di Google Play, non offre contenuti inappropriati e non utilizza la proprietà intellettuale o il brand di altri.
Play:Maturità T-Play:Norme Il livello di maturità dell'app è impostato in modo appropriato in base alle linee guida per la classificazione dei contenuti.
Pagina dei dettagli dell'app
Play:Graphics T-Play:Graphics,
T-Play:Assets

La grafica della funzionalità dell'app segue le linee guida descritte in questo articolo del Centro assistenza. Assicurati che:

  • La scheda dell'app include un'immagine in primo piano di alta qualità
  • L'immagine in evidenza non contiene immagini di dispositivi, screenshot o testo piccolo illeggibile quando viene ridimensionato e visualizzato sulla dimensione dello schermo più piccola a cui è destinata la tua app
  • L'immagine in primo piano non assomiglia a una pubblicità
Play:NonAndroid T-Play:Assets Gli screenshot e i video dell'app non mostrano né fanno riferimento a dispositivi non Android.
Play:Misleading T-Play:Assets Gli screenshot o i video dell'app non rappresentano in modo fuorviante i contenuti e l'esperienza della tua app.
Assistenza utenti
Play:Bugs T-Play:Norme I bug comuni segnalati dagli utenti nella scheda Recensioni della pagina Google Play vengono risolti se sono riproducibili e si verificano su molti dispositivi diversi. Se si verifica un bug solo su alcuni dispositivi, devi comunque risolverlo se questi dispositivi sono particolarmente popolari o nuovi.

Ambiente di test

Configura un ambiente di test come segue:

  • Test dell'emulatore:l'emulatore Android è un ottimo modo per testare la tua app con diverse versioni di Android e risoluzioni dello schermo. Configura dispositivi emulati (AVD) per rappresentare le combinazioni di hardware/software e i fattori di forma più comuni per la tua base utenti di destinazione. Prova una serie di fattori di forma utilizzando i seguenti emulatori (almeno):

    • Dispositivi pieghevoli: 7,6" con display esterno (elencato in Smartphone in AVD Manager)
    • Tablet: Pixel C 9,94" (2560 px x 1800 px)
    • Test delle notifiche delle app mobile: accoppia un dispositivo mobile / emulatore con l'emulatore Wear OS: Wear OS Round 1,84"
  • Dispositivi hardware:l'ambiente di test deve includere un numero ridotto di dispositivi hardware reali che rappresentino i principali fattori di forma e le combinazioni hardware/software disponibili per i consumatori. Non devi eseguire il test su ogni� dispositivo disponibile sul mercato. Concentrati su un numero ridotto di dispositivi rappresentativi, anche utilizzando uno o due dispositivi per fattore di forma.

  • Laboratori di test dei dispositivi:puoi anche utilizzare servizi di terze parti, come Firebase Test Lab, per testare la tua app su un'ampia gamma di dispositivi.

  • Test con l'ultima versione di Android:oltre a testare le versioni di Android rappresentative per la tua base utenti di riferimento, devi sempre eseguire test con l'ultima versione di Android per assicurarti che le modifiche al comportamento più recenti non influiscano negativamente sull'esperienza utente della tua app.

Per ulteriori indicazioni sui test, inclusi test unitari, test di integrazione e test dell'interfaccia utente, consulta Principi di base dei test delle app per Android.

StrictMode

Per i test delle prestazioni, attiva StrictMode nella tua app. Utilizza StrictMode per rilevare le operazioni che potrebbero influire sulle prestazioni, sugli accessi alla rete e sulle letture e scritture dei file. Cerca operazioni potenzialmente problematiche sia sul thread principale sia su altri thread.

Configura un criterio di monitoraggio per thread utilizzando StrictMode.ThreadPolicy.Builder e attiva tutto il monitoraggio supportato in ThreadPolicy utilizzando detectAll().

Attiva la notifica visiva delle violazioni delle norme per ThreadPolicy utilizzando penaltyFlashScreen().

Test

I test di qualità principali dell'app ti aiutano a valutare la qualità fondamentale della tua app. Puoi combinare i test o integrare gruppi di test nel tuo piano di test.

Esperienza utente

ID Funzionalità Descrizione
Usabilità
T-Usability:Core Usabilità:UX

Naviga in tutte le parti dell'app: tutte le schermate, le finestre di dialogo, le impostazioni e tutti i flussi utente.

Procedi nel seguente modo:
  • Se l'applicazione consente la modifica o la creazione di contenuti, il gioco o la riproduzione di contenuti multimediali, assicurati di testare questi flussi.
  • Durante il test dell'app, introduci interruzioni da altre app, ad esempio la ricezione di una notifica o una chiamata, e applica modifiche temporanee agli attributi del dispositivo, come connettività di rete, funzionamento della batteria, disponibilità del GPS e carico del sistema.
  • Inserisci e testa tutti i flussi di acquisto in-app
T-Usability:Switcher Usabilità:selettore Da ogni schermata dell'app, passa a un'altra app in esecuzione, quindi torna all'app in fase di test utilizzando il selettore di app Recenti.
T-Usability:Sleep Usabilità:sonno Premi il tasto di accensione per mettere il dispositivo in modalità di sospensione, quindi premilo di nuovo per riattivare lo schermo.
T-Usability:Lock Usabilità:blocco Configura un blocco schermo sul dispositivo. Premi il tasto di accensione per mettere il dispositivo in sospensione (e bloccarlo). Quindi, premi di nuovo il tasto di accensione per riattivare lo schermo e sbloccare il dispositivo.
Scheda SD
T-SD-Card Usabilità:UX

Esegui test della funzionalità di base con l'app installata sulla scheda SD del dispositivo (se l'app supporta questo metodo di installazione).

Per spostare l'app su una scheda SD, consulta le Impostazioni dell'app.

Interfaccia utente
T-UI:Transitions UI:Parità,
UI:Schermo intero,
UI:Transizioni

Da ogni schermata dell'app, ruota il dispositivo tra l'orientamento orizzontale e verticale e tra lo stato chiuso e aperto almeno tre volte.

Verifica che l'app faccia quanto segue:
  • Fornisce la parità di funzionalità in tutti gli orientamenti del display e gli stati di chiusura
  • Riempie la finestra dell'app in tutti gli orientamenti di visualizzazione e stati di piegatura e non presenta letterbox
  • Mantiene lo stato e non presenta problemi di rendering durante le transizioni rapide tra orientamenti e apertura e chiusura del dispositivo
Qualità visiva
T-Visual:Display Visuale:display Utilizza tutte le funzionalità dell'app. Verifica che tutti gli elementi visivi, inclusi grafica, testo, immagini e altri elementi dell'interfaccia utente, non presentino distorsioni, sfocature o pixelizzazione.
T-Visual:Readability Aspetto visivo:leggibilità

Esamina tutti i blocchi di testo nell'app. Verifica che la lunghezza della riga di testo e del blocco di testo sia limitata a 45-75 caratteri (inclusi gli spazi) per una migliore leggibilità.

Verifica quanto segue:
  • La composizione è accettabile in tutti i fattori di forma supportati
  • Nessuna lettera o parola tagliata
  • Nessun ritorno a capo improprio all'interno di pulsanti o icone
  • Spaziatura sufficiente tra il testo e gli elementi circostanti
T-Visual:Themes Elemento visivo:temi Verifica che tutto il testo sia leggibile nei temi chiaro e scuro. Verifica che tutti gli elementi visivi siano chiaramente distinguibili ed esteticamente gradevoli nei temi chiaro e scuro.
Navigazione
T-Nav:Back Nav:BackButton,
Nav:BackGesture

Naviga in tutte le parti dell'app: tutte le schermate, le finestre di dialogo, le impostazioni e tutti i flussi utente.

Da ogni schermata dell'app, premi il pulsante Indietro o utilizza il gesto di scorrimento indietro. L'app dovrebbe passare alla schermata precedente o alla schermata Home.

T-Nav:State Nav:State Da ogni schermata dell'app, premi il tasto Home del dispositivo o scorri verso l'alto nella navigazione tramite gesti, quindi riavvia l'app dalla schermata Tutte le app.
Notifiche
T-Notify:Info Notify:Info,
Notify:Messaging
Attiva e osserva nel riquadro delle notifiche tutti i tipi di notifiche che l'app può visualizzare. Espandi le notifiche, se applicabile (Android 4.1 e versioni successive), e tocca tutte le azioni disponibili.
Accessibilità
T-Access:Targets Accesso:target Verifica che i target di tocco mantengano dimensioni e posizione coerenti e accessibili per tutte le dimensioni e le configurazioni del display. Per informazioni sull'accessibilità, consulta Accessibility Scanner.
T-Access:Contrast Accesso:Contrasto Verifica il contrasto di tutti gli elementi visivi.
T-Access:Description Access:Description Verifica che tutti gli elementi UI, ad eccezione di TextView, abbiano descrizioni dei contenuti.

Funzionalità

ID Funzionalità Descrizione
Audio
T-Audio:Init Audio:Init Avvia la riproduzione audio. Verifica che entro un secondo l'app inizi a riprodurre l'audio o fornisca un indicatore visivo che i dati audio vengono preparati per la riproduzione.
T-Audio:Focus Audio:Focus Avvia la riproduzione audio. L'app deve richiedere il focus audio. Quando la riproduzione audio si interrompe, l'app deve rilasciare l'audio focus (cosa che avviene automaticamente per le app che hanno come target Android 12 (livello API 31) e versioni successive).
T-Audio:Interrupt Audio:Interrupt Avvia la riproduzione audio. Avvia la riproduzione audio in un'altra app. La tua app deve rispondere alla modifica della messa a fuoco audio e interrompere la riproduzione audio o ridurre il volume di riproduzione.
T-Audio:Background Audio:sfondo Avvia la riproduzione audio. Interagisci con un'altra app non audio come app in primo piano. L'app dovrebbe continuare a riprodurre l'audio in background.
T-Audio:Notification Audio:Notifica Avvia la riproduzione audio. Interagisci con un'altra app non audio come app in primo piano. Verifica che la tua app continui a riprodurre audio in background e abbia creato una notifica con lo stile MediaStyle. Consulta la sezione Utilizzo dei controlli multimediali.
T-Audio:Resume Audio:Riprendi Avvia la riproduzione audio. Interagisci con un'altra app non audio come app in primo piano. Interagisci con la tua app per portarla in primo piano. La riproduzione audio dovrebbe riprendere o il volume dovrebbe essere ripristinato. In caso contrario, l'app deve indicare all'utente che la riproduzione è in pausa.
T-Video:PiP Video:PiP Attiva la riproduzione video delle app in modalità Picture in picture.
T-Video:Encoding Video:codifica Verifica che l'app codifichi il video utilizzando lo standard di compressione video HEVC.
Condivisione
Condivisione:foglio Crea un intent e avvia un'attività chiamando startActivity() con l'intent come argomento. Vedi Utilizzare il foglio di condivisione di Android. L'app dovrebbe mostrare il foglio di condivisione di Android.
Servizi in background
CR-6 Contesto:servizi

Utilizza tutte le funzionalità principali dell'app. Verifica che non vengano avviati servizi in background a lunga esecuzione.

Passa a un'altra app per inviare l'app in background. Vai a Impostazioni e controlla se l'app ha servizi in esecuzione in background. Su Android 4.0 e versioni successive, vai alla schermata App e trova l'app nella scheda In esecuzione.

Prestazioni e stabilità

ID Funzionalità Descrizione
Prestazioni
T- Performance:Startup Prestazioni:avvio Avvia l'app. Verifica che l'app si carichi rapidamente o fornisca un indicatore di avanzamento o un segnale simile se il caricamento richiede più di due secondi.
T-Performance:FPS Prestazioni:FPS Utilizza tutte le funzionalità principali della tua app. Verifica che l'app esegua il rendering di almeno 60 frame al secondo. Utilizza l'opzione Rendering HWUI profilo per testare la tua app.
T-Performance:Strict Prestazioni:rigoroso

Attiva StrictMode nella tua app. Utilizza tutte le funzionalità principali. Verifica che l'app non produca StrictMode avvisi di prestazioni, ovvero che non siano visibili flash rossi durante il test dell'app. I flash rossi indicano un comportamento anomalo in relazione all'archiviazione, all'accesso alla rete o alla gestione della memoria (ad esempio perdite di memoria).

Presta molta attenzione alla garbage collection e al suo impatto sull'esperienza utente.

Stabilità
T-Stability:ANR Stabilità:ANR Utilizza tutte le funzionalità principali della tua app. Verifica che l'app non si arresti in modo anomalo o blocchi il thread dell'interfaccia utente causando errori ANR (Android Not Responding). Esamina il report pre-lancio di Google Play per identificare potenziali problemi di stabilità.
SDK
T-SDK:Platform SDK:Platform Esegui la tua app sull'ultima versione pubblica della piattaforma Android. Utilizzare tutte le funzionalità principali. Verifica che l'app non si arresti in modo anomalo e che funzioni senza perdita di funzionalità di base.
T-SDK:Latest SDK:Target,
SDK:Compila
Esamina il file manifest Android e la configurazione di build per assicurarti che l'applicazione sia creata in base all'SDK più recente disponibile (targetSdk e compileSdk).
T-SDK:3P SDK:3P Controlla il file build.gradle della tua app per eventuali dipendenze obsolete.
T-SDK:Non SDK:Non Utilizza lo strumento lint di Android Studio per rilevare l'utilizzo di interfacce non SDK. Per metodi di test alternativi, consulta Limitazioni relative alle interfacce non SDK.
T-SDK:Debug SDK:Debug Controlla il file build.gradle della tua app per verificare la presenza di librerie di debug incluse.
Batteria
T-Battery:Manage Batteria:gestisci

Utilizzare tutte le principali funzionalità delle app nelle modalità di sospensione e Standby delle app. Verifica che sveglie, timer, notifiche e sincronizzazioni funzionino correttamente nella finestra di manutenzione di Doze e quando l'app esce dalla modalità Standby app.

Testa il comportamento di sospensione e standby delle app utilizzando i comandi ADB (consulta Test con sospensione e standby delle app per requisiti e linee guida).

Per diagnosticare un consumo anomalo della batteria, utilizza Android Studio Power Profiler o lo strumento Battery Historian in combinazione con il lavoro in background pianificato.

Privacy e sicurezza

ID Funzionalità Descrizione
Autorizzazioni
T-Permissions:Min Autorizzazioni:min Esamina tutte le autorizzazioni richieste dalla tua app nel file manifest, in fase di runtime e nelle impostazioni dell'app sul dispositivo (Impostazioni > Informazioni app).
T-Permissions:Sensitive Autorizzazioni:sensibili Utilizza le funzionalità della tua app che richiedono autorizzazioni. Verifica che l'app richieda l'autorizzazione ad accedere a servizi o dati sensibili solo per i casi d'uso principali dell'app. Verifica che le implicazioni della concessione dell'autorizzazione a dati e servizi sensibili siano comunicate chiaramente all'utente.
T-Permissions:Runtime Autorizzazioni:runtime Utilizza tutte le funzionalità della tua app che richiedono autorizzazioni. Verifica che le autorizzazioni vengano richieste in modo differito, ovvero solo quando si accede alle funzionalità, anziché all'avvio dell'app.
T-Permissions:Explain Autorizzazioni:spiega Utilizza tutte le funzionalità della tua app che richiedono autorizzazioni. Verifica che l'app spieghi all'utente perché sono necessarie le autorizzazioni.
T-Permissions:Degrade Autorizzazioni:downgrade Utilizza tutte le funzionalità della tua app che richiedono autorizzazioni. Nega o revoca le autorizzazioni. Verifica che l'app fornisca un caso d'uso alternativo e continui a funzionare.
Dati e file
T-Data:Sensitive Data:Sensitive Esamina tutti i dati archiviati nella memoria interna. Verifica che i dati archiviati esternamente non siano dati sensibili.
T-Data:Handling Data:Sensitive Esamina come vengono gestiti ed elaborati i dati caricati da un'unità di archiviazione esterna.
T-Data:Log Dati:Log Utilizza tutte le funzionalità principali dell'app durante il monitoraggio del log del dispositivo. Verifica che non vengano registrate informazioni private dell'utente.
T-Data:IDs Dati:ID Utilizzare tutte le funzionalità principali dell'app. Verifica che l'app non utilizzi ID hardware come l'IMEI a scopo di identificazione.
Identità
T-Identity:Hints Identity:Hints Utilizza tutte le funzionalità dell'app che richiedono l'input dell'utente. Verifica che l'app fornisca suggerimenti per compilare automaticamente i campi di input per dati quali le credenziali dell'account e altre informazioni sensibili.
T-Identity:CredMan Identity:CredMan Accedi alla tua app. Verifica che l'app integri Credential Manager per Android per un'esperienza di accesso che unifica il supporto per le passkey, l'identità federata e le password.
T-Identity:Bio Identità:bio Utilizzare tutte le funzionalità dell'app che richiedono l'autenticazione. Verifica che l'app protegga le transazioni finanziarie o le informazioni sensibili, come i documenti importanti dell'utente, con l'autenticazione biometrica.
Componenti app
T-Components:Export Componenti:esportazione Esamina tutti i componenti dell'applicazione definiti nel file manifest di Android per lo stato di esportazione appropriato. La proprietà esportata deve essere impostata in modo esplicito per tutti i componenti.
T-Components:Permissions Componenti:autorizzazioni Esamina tutte le autorizzazioni richieste dalla tua app nel file manifest, in fase di runtime e nelle impostazioni dell'app sul dispositivo (Impostazioni > Informazioni app).
T-Components:Protection Componenti:protezione Esamina tutti i fornitori di contenuti definiti nel file manifest di Android. Assicurati che ogni fornitore abbia un protectionLevel appropriato.
Reti
T-Network:Traffic Rete:traffico Dichiara una configurazione di sicurezza di rete che disattiva il traffico di testo non criptato, quindi testa l'app.
T-Network:Config Network:Config Controlla la configurazione della sicurezza di rete dell'app. Verifica che nessun controllo lint sulla configurazione non vada a buon fine.
T-Network:Play Rete:Play Verifica che il fornitore di sicurezza sia inizializzato all'avvio dell'applicazione per i servizi Google Play.
WebView
T-WebViews:Config WebViews:Config Controlla la configurazione della sicurezza di rete dell'app. Verifica che nessun controllo lint sulla configurazione non vada a buon fine.
T-WebViews:JavaScript WebView:JavaScript Per ogni WebView, vai a una pagina che richiede JavaScript.
T-WebViews:Nav WebViews:Config,
WebViews:JavaScript
In ogni WebView, prova a navigare su siti e contenuti che non vengono caricati direttamente dalla tua app.
Esecuzione
T-Execution:Bundles Esecuzione:bundle Verifica che l'app utilizzi Android App Bundle e non carichi dinamicamente codice dall'esterno dell'APK dell'app.
Crittografia
T-Crypto:Algorithms Crypto:Algorithms Verifica che l'app utilizzi algoritmi crittografici e un generatore di numeri casuali efficaci forniti dalla piattaforma. Verifica inoltre che l'app non implementi algoritmi personalizzati.

Google Play

ID Funzionalità Descrizione
Norme
T-Play:Policies Play:Policies,
Play:Maturity,
Play:Bugs
Accedi a Google Play Console per esaminare il tuo profilo sviluppatore, la descrizione dell'app, gli screenshot, la grafica in primo piano, la classificazione dei contenuti e il feedback degli utenti.
Pagina dei dettagli dell'app
T-Play:Graphics Play:Graphics Scarica la grafica in evidenza e gli screenshot e ridimensionali in modo che corrispondano alle dimensioni di visualizzazione sui dispositivi e sui fattori di forma che prendi di mira.
T-Play:Assets Play:Graphics,
Play:NonAndroid,
Play:Misleading
Esamina tutti gli asset grafici, i contenuti multimediali, il testo, le librerie di codice e gli altri contenuti inclusi nel download dell'app o del file di espansione.

Archive

Versioni precedenti delle norme sulla qualità principali delle app: