Norme sulla qualità principali delle app

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

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

Qualità delle app adattive

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

Segui le norme sulla qualità delle app adattive, insieme alle norme sulla qualità principali delle app, per:

  • Crea app ottimizzate per tutti i fattori di forma e le dimensioni di visualizzazione
  • Migliora il ranking delle tue app nelle schede e nella ricerca di Google Play
  • Acquisisci più utenti e aumenta la fidelizzazione utenti

Linee guida

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

Esperienza utente

I pattern di progettazione visiva e interazione standard di Android offrono 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 una UI coerente tra le versioni di Android.

Usabilità

ID Test Descrizione
Consistent_UX T-Consistent_UX,
T-SD_Card
L'app offre un'esperienza utente coerente per tutti i casi d'uso dell'app su tutti i fattori di forma.
Selettore di app T-App_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.
Sleep_Resume T-Sleep_Resume,
T-SD_Card
Quando l'app è in primo piano, viene messa in pausa quando il dispositivo entra in modalità di sospensione e riprende quando il dispositivo si riattiva.
Lock_Resume T-Lock_Resume,
T-SD_Card
Quando l'app è in primo piano, viene messa in pausa quando il dispositivo è bloccato e riprende quando il dispositivo viene sbloccato.

Interfaccia utente

ID Test Descrizione
Display_State_Parity T-Orientation_Transitions

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

Fullscreen_Display T-Orientation_Transitions

L'app riempie la finestra dell'app in entrambi gli orientamenti e non è in formato letterbox a causa di modifiche alla configurazione, tra cui l'apertura e la chiusura del dispositivo.

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

Orientation_Transitions T-Orientation_Transitions L'app gestisce le transizioni rapide tra gli orientamenti del display e l'apertura e la chiusura del dispositivo senza problemi di rendering del display e senza perdere lo stato.

Qualità visiva

ID Test Descrizione
Graphic_Quality T-Graphic_Quality

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

  • L'app utilizza drawable vettoriali ove possibile
  • L'app utilizza grafica di alta qualità per tutte le dimensioni dello schermo e i fattori di forma scelti come target
  • Nessun aliasing ai bordi di menu, pulsanti e altri elementi UI
Line_Length T-Line_Length 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.
Theme_Support T-Theme_Support I contenuti dell'app e tutti i contenuti web a cui l'app accede supportano sia il tema chiaro sia il tema scuro.
ID Test Descrizione
Back_Button_Nav T-Back_Nav L'app supporta la navigazione con il pulsante Indietro standard e non utilizza prompt personalizzati sullo schermo per il pulsante Indietro.
Back_Gesture_Nav T-Back_Nav L'app supporta la navigazione tramite gesti per tornare indietro e alla schermata Home.
State_Preservation T-State_Preservation,
T-Back_Nav

L'app mantiene il proprio stato o lo stato dell'utente 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 conservato e le eventuali transazioni stateful in attesa. Ad esempio, modifiche ai campi modificabili, ai progressi di gioco, ai menu, ai video e ad altre sezioni dell'app.

  • Quando l'app viene ripresa dal selettore di app Recenti, l'utente torna allo stato esatto in cui l'app è stata utilizzata l'ultima volta.
  • Quando l'app viene ripresa dopo che il dispositivo si riattiva dallo stato di sospensione (bloccato), l'app riporta l'utente allo stato esatto in cui si trovava l'ultima volta che l'app è stata utilizzata.
  • Quando l'app viene riavviata dalla Home o da Tutte le app, deve eseguire una delle seguenti operazioni, a seconda del tempo trascorso dall'ultimo utilizzo dell'app:
    • Se l'app è stata utilizzata di recente (minuti), ripristina lo stato dell'app il più vicino possibile a quello precedente.
    • Se è trascorso più tempo dall'ultimo utilizzo dell'app, prova a ripristinarla il più vicino possibile allo stato precedente o avviala dalla schermata Home o da un altro stato predefinito.

Notifiche

ID Test Descrizione
Notification_Quality T-Notification_Quality

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 ciò è 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.
  • Se possibile, raggruppa più notifiche in un unico gruppo di notifiche.
  • Imposta i timeout per le notifiche, se opportuno.
  • Le notifiche sono persistenti solo se sono relative a eventi in corso, come la riproduzione di musica o una telefonata. Per saperne di più, consulta la sezione Funzionalità.
Conversation_Quality T-Notification_Quality

Per le app di messaggistica, le app social e le conversazioni:

Accessibilità

ID Test Descrizione
Touch_Target_Size T-Touch_Target_Size I touch target sono di almeno 48 dp. Consulta le linee guida di Material Design relative alle dimensioni dei target.
Visual_Contrast T-Visual_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 immagini 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.

Content_Description T-Content_Description Descrivi ogni elemento UI, ad eccezione di TextView, utilizzando contentDescription.

Funzionalità

La tua app deve implementare il seguente comportamento funzionale.

Audio

ID Test Descrizione
Audio_Playback_Start T-Audio_Playback_Start

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

  • Avvia la riproduzione dell'audio
  • Fornisci un indicatore visivo che mostri che i dati audio sono in fase di preparazione
Audio_Focus_Request T-Audio_Focus_Request L'app deve richiedere il focus audio quando inizia la riproduzione dell'audio e abbandonarlo quando la riproduzione si interrompe.
Audio_Focus_Change T-Audio_Focus_Change L'app deve gestire le richieste di altre app per l'audio focus. Ad esempio, un'app potrebbe ridurre il volume di riproduzione quando un'altra app riproduce un audio vocale.
Audio_Playback_Background T-Audio_Playback_Background

L'app deve supportare la riproduzione in background.

L'app deve utilizzare un servizio in primo piano per impedire al sistema di interrompere il processo dell'app quando questa non è più visibile. L'app deve inoltre mostrare una notifica persistente e non ignorabile nella barra di stato o nella schermata di blocco per informare l'utente che l'app è in esecuzione.

Gli utenti devono poter controllare la riproduzione utilizzando i controlli della notifica o della schermata di blocco oppure i controlli di un accessorio collegato.

Audio_Notification_Style T-Audio_Notification_Style Quando l'app riproduce audio in background, deve creare una notifica con lo stile MediaStyle.
Audio_Playback_Resume T-Audio_Playback_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

ID Test Descrizione
Video_PiP T-Video_PiP Se l'app riproduce video, deve supportare la riproduzione picture in picture.
Video_Encoding T-Video_Encoding Se l'app codifica i video, deve farlo utilizzando lo standard di compressione video HEVC.
Video_Playback_Background T-Video_Playback_Background

L'app supporta la riproduzione in background dei video quando non è l'app in primo piano, anche quando la finestra dell'app è:

  • Ridotto a icona
  • Dietro altre finestre o UI di sistema (ad esempio, l'area notifiche o la schermata Home/di blocco)
  • Fuori dallo schermo visibile del computer

Condivisione

ID Test Descrizione
System_Sharesheet T-System_Sharesheet L'app deve utilizzare Android Sharesheet per la condivisione di contenuti. L'app può suggerire target non disponibili per le soluzioni personalizzate.

Servizi in background

ID Test Descrizione
Background_Service_Optimization T-Background_Service_Optimization

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 esempi di utilizzo non corretto dei servizi in background:

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

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

Prestazioni e stabilità

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

Prestazioni

ID Test Descrizione
App_Startup_Time T-App_Startup_Time L'app si carica rapidamente o fornisce un feedback sullo schermo all'utente (un indicatore di avanzamento o un segnale simile) se il caricamento richiede più di due secondi.
Rendering_Performance T-Rendering_Performance L'app esegue il rendering dei frame ogni 16 millisecondi (o meno) per visualizzare almeno 60 frame al secondo. Per assistenza in caso di problemi di rendering, consulta Rendering lento.
StrictMode_Compliance T-StrictMode_Compliance Con StrictMode attivato (consulta la sezione relativa ai test di StrictMode), non sono visibili flash rossi (avvisi sul rendimento di StrictMode) durante il test dell'app.

Stabilità

ID Test Descrizione
Stability_ANR T-Stability_ANR L'app non si arresta in modo 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

ID Test Descrizione
Android_Platform_Compatibility T-Android_Platform_Compatibility L'app viene eseguita sull'ultima versione pubblica della piattaforma Android senza arrestarsi in modo anomalo o influire gravemente sulla funzionalità di base.
Target_SDK_Version T-Target_SDK_Version L'app ha come target l'SDK Android più recente necessario per l'allineamento ai requisiti di Google Play impostando il valore targetSdk nel file build.gradle del modulo dell'app.
Compile_SDK_Version T-Target_SDK_Version L'app è stata creata con l'SDK Android più recente impostando il valore compileSdk nel file build.gradle del modulo dell'app.
SDK_Maintenance T-SDK_Maintenance,
T-Non_SDK_Interfaces

Gli SDK di Google o di terze parti utilizzati sono aggiornati. Eventuali miglioramenti a questi SDK relativi a stabilità, compatibilità o sicurezza devono essere messi a disposizione degli 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 applicativo e utilizzano in modo efficiente le risorse on-device.

Non_SDK_Interfaces T-Non_SDK_Interfaces L'app non utilizza interfacce non SDK.
Production_Build_Quality T-Production_Build_Quality Nell'app di produzione non sono incluse librerie di debug. Le librerie di debug incluse nell'app possono causare problemi di prestazioni e sicurezza.

Batteria

ID Test Descrizione
Power_Management T-Power_Management

L'app supporta correttamente le funzionalità di gestione del consumo energetico Doze e Standby delle app.

Le app possono richiedere un'esenzione per la manutenzione dell'alimentazione. Consulta la sezione Supporto per altri casi d'uso in Ottimizza per Doze e Standby delle 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 inoltre rispettare le norme relative ai dati utente di Google Play per proteggere la privacy degli utenti.

Autorizzazioni

ID Test Descrizione
Minimize_Permissions T-Minimize_Permissions L'app richiede solo le autorizzazioni minime necessarie per supportare il caso d'uso corrente. Per alcune autorizzazioni, ad esempio la posizione, l'app utilizza una specifica approssimativa anziché esatta, se possibile. Consulta la sezione Riduci al minimo le richieste di autorizzazione.
Sensitive_Permissions T-Sensitive_Permissions

L'app richiede l'autorizzazione ad accedere a dati sensibili (ad esempio gruppi di autorizzazioni SMS o Registri 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 un'informativa in evidenza.

A seconda di come la tua app utilizza le autorizzazioni, potrebbe essere possibile un modo alternativo per soddisfare il caso d'uso della tua 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.

Runtime_Permissions T-Runtime_Permissions L'app richiede le autorizzazioni di runtime quando viene richiesta la funzionalità, anziché durante l'avvio dell'app.
Permission_Rationale T-Permission_Rationale L'app spiega chiaramente perché sono necessarie le autorizzazioni.
Graceful_Degradation T-Graceful_Degradation L'app applica la riduzione controllata quando gli utenti negano o revocano un'autorizzazione. L'app non deve impedire completamente l'accesso degli utenti.

Dati e file

ID Test Descrizione
Sensitive_Data_Storage T-Sensitive_Data_Storage,
T-Sensitive_Data_Handling
Tutti i dati sensibili vengono archiviati nella memoria interna dell'app.
Sensitive_Data_Logging T-Sensitive_Data_Logging Nessun dato utente personale o sensibile viene registrato nel log di sistema o in un log specifico dell'app.
Hardware_IDs T-Hardware_IDs L'app non utilizza ID hardware non reimpostabili, come l'IMEI, per scopi di identificazione.

Backup e ripristino dei dati

ID Test Descrizione
App_Data_Backup T-App_Data_Backup

L'app conserva i dati utente, le impostazioni e lo stato dell'app nei backup sul cloud e nei trasferimenti da dispositivo a dispositivo (D2D).

Implementa il backup automatico e configura android:dataExtractionRules per garantire un ripristino dei dati senza problemi durante la configurazione di un nuovo dispositivo o la reinstallazione dell'app.

App_Logins_Restoration T-App_Logins_Restoration

L'app ripristina automaticamente gli account utente e lo stato di accesso quando un utente configura un nuovo dispositivo.

Implementa Restore Credentials utilizzando Gestore delle credenziali per autenticare nuovamente gli utenti in modo automatico senza forzare i flussi di accesso manuale o di recupero dell'account.

Identità

ID Test Descrizione
Autofill_Hints T-Autofill_Hints L'app fornisce suggerimenti per la compilazione automatica delle credenziali dell'account e di altre informazioni sensibili, come dati della carta di credito, indirizzo fisico e numero di telefono.
Credential_Manager T-Credential_Manager L'app integra Gestore delle credenziali per Android per un'esperienza di accesso fluida che unifica il supporto per passkey, identità federata e password.
Biometric_Authentication T-Biometric_Authentication L'app supporta l'autenticazione biometrica per proteggere le transazioni finanziarie o le informazioni sensibili, ad esempio i documenti importanti degli utenti.

Componenti app

ID Test Descrizione
Component_Export T-Component_Export

L'app imposta l'attributo android:exported in modo esplicito per tutte le attività, i servizi, i broadcast receiver e, in particolare, i provider di contenuti.

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

Component_Permissions T-Component_Permissions

Tutti gli intent e i broadcast seguono le best practice:

Component_Protection T-Component_Protection

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

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

Networking

ID Test Descrizione
Network_Security_Traffic T-Network_Security_Traffic Tutto il traffico di rete viene inviato tramite SSL.
Network_Security_Configuration T-Network_Security_Configuration L'app dichiara una configurazione di sicurezza di rete.
Security_Provider_Initialization T-Security_Provider_Initialization Se l'app utilizza Google Play Services, il provider di sicurezza viene inizializzato all'avvio dell'applicazione.

WebView

ID Test Descrizione
WebView_Asset_Loader T-WebView_Asset_Loader,
T-WebView_Navigation
Non utilizzare setAllowUniversalAccessFromFileURLs() per accedere ai contenuti locali. Utilizza invece WebViewAssetLoader.
WebView_JavaScript T-WebView_JavaScript,
T-WebView_Navigation

Visualizzazioni web: non utilizzare addJavaScriptInterface() con contenuti non attendibili.

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

Esecuzione

ID Test Descrizione
App_Bundles T-App_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

ID Test Descrizione
Cryptographic_Algorithms T-Cryptographic_Algorithms L'app utilizza algoritmi crittografici e un generatore di numeri casuali efficaci forniti dalla piattaforma. Inoltre, l'app non implementa algoritmi personalizzati.

Google Play

Attiva la pubblicazione della tua app su Google Play.

Norme

ID Test Descrizione
Play_Content_Policies T-Play_Content_Policies 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_Content_Rating T-Play_Content_Policies 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

ID Test Descrizione
Play_Feature_Graphic T-Play_Feature_Graphic,
T-Play_Graphic_Assets

L'immagine in primo piano dell'app segue le linee guida descritte in questo articolo di assistenza. Verifica quanto segue:

  • La scheda dell'app include un'immagine in primo piano di alta qualità
  • L'immagine in evidenza non contiene immagini del dispositivo, screenshot o testo di piccole dimensioni che risulta illeggibile quando viene ridotto e visualizzato sulle dimensioni dello schermo più piccole scelte come target per la tua app
  • L'immagine in primo piano non assomiglia a una pubblicità
Play_Device_References T-Play_Graphic_Assets Gli screenshot e i video dell'app non mostrano o fanno riferimento a dispositivi non Android.
Play_Misleading_Content T-Play_Graphic_Assets Gli screenshot o i video dell'app non rappresentano i contenuti e l'esperienza della tua app in modo fuorviante.

Assistenza utenti

ID Test Descrizione
Play_User_Reviews T-Play_Content_Policies I bug comuni segnalati dagli utenti nella scheda Recensioni della pagina di Google Play vengono risolti se sono riproducibili e si verificano su molti dispositivi diversi. Se un bug si verifica 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 con l'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 i fattori di forma e le combinazioni hardware/software più comuni per la tua base utenti di destinazione. Testa una serie di fattori di forma utilizzando i seguenti emulatori (come minimo):

    • Pieghevoli: pieghevole da 7,6" con display esterno (questo è elencato in Smartphone in Gestione AVD)
    • Tablet: Pixel C 9,94" (2560 x 1800 px)
    • Test delle notifiche dell'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 fattori di forma e le combinazioni hardware/software chiave disponibili per i consumatori. Non è necessario eseguire test su ogni dispositivo presente sul mercato. Concentrati su un numero ridotto di dispositivi rappresentativi, utilizzando anche 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.

  • Esegui i test con l'ultima versione di Android:oltre a testare le versioni di Android rappresentative della tua base utenti target, devi sempre eseguire i test con l'ultima versione di Android per assicurarti che le ultime modifiche al comportamento non influiscano negativamente sull'esperienza utente della tua app.

Per ulteriori indicazioni sui test, inclusi i test delle unità, i test di integrazione e i test dell'interfaccia utente, consulta Concetti fondamentali sul test di app per Android.

StrictMode

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

Configura una policy 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 policy per ThreadPolicy utilizzando penaltyFlashScreen().

Test

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

Esperienza utente

Esegui test per un'esperienza utente coerente e intuitiva.

Usabilità

ID Funzionalità Descrizione
T-Consistent_UX Consistent_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 gameplay o la riproduzione di contenuti multimediali, assicurati di testare questi flussi.
  • Durante i test dell'app, introduci interruzioni da altre app, ad esempio la ricezione di una notifica o di una chiamata, e applica modifiche temporanee agli attributi del dispositivo, come la connettività di rete, il funzionamento della batteria, la disponibilità del GPS e il carico del sistema.
  • Inserisci e testa tutti i flussi di acquisto in-app
T-App_Switcher App_Switcher 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-Sleep_Resume Sleep_Resume Premi il tasto di accensione per attivare la modalità di sospensione del dispositivo, quindi premilo di nuovo per riattivare lo schermo.
T-Lock_Resume Lock_Resume Configura un blocco schermo sul dispositivo. Premi il tasto di accensione per mettere il dispositivo in modalità di sospensione (che blocca il dispositivo). Quindi, premi di nuovo il tasto di accensione per riattivare lo schermo e sbloccare il dispositivo.

Scheda SD

ID Funzionalità Descrizione
T-SD_Card Consistent_UX

Esegui test delle funzionalità di base con l'app installata su una 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

ID Funzionalità Descrizione
T-Orientation_Transitions Display_State_Parity,
Fullscreen_Display,
Orientation_Transitions

Da ogni schermata dell'app, ruota il dispositivo tra gli orientamenti orizzontale e verticale e tra gli stati aperto e chiuso almeno tre volte.

Verifica che l'app esegua le seguenti operazioni:
  • Offre la parità delle funzioni in tutti gli orientamenti del display e gli stati di apertura
  • Riempie la finestra dell'app in tutti gli orientamenti del display e gli stati di piegatura e non è in formato letterbox
  • Mantiene lo stato e non presenta problemi di rendering durante le transizioni rapide tra gli orientamenti e l'apertura e la chiusura del dispositivo

Qualità visiva

ID Funzionalità Descrizione
T-Graphic_Quality Graphic_Quality Utilizza tutte le funzionalità della tua app. Verifica che tutti gli elementi visivi, inclusi grafica, testo, immagini e altri elementi UI, non presentino distorsioni, sfocature o pixelizzazione.
T-Line_Length Line_Length

Esamina tutti i blocchi di testo nell'app. Verifica che la lunghezza delle righe del testo e dei blocchi di testo sia limitata a 45-75 caratteri (spazi inclusi) per garantire la 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-Theme_Support Theme_Support 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.
ID Funzionalità Descrizione
T-Back_Nav Back_Button_Nav,
Back_Gesture_Nav

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

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

T-State_Preservation State_Preservation Dalla schermata di ogni 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

ID Funzionalità Descrizione
T-Notification_Quality Notification_Quality,
Conversation_Quality
Attiva e osserva nel riquadro notifiche tutti i tipi di notifiche che l'app può mostrare. Espandi le notifiche, se applicabile (Android 4.1 e versioni successive), e tocca tutte le azioni disponibili.

Accessibilità

ID Funzionalità Descrizione
T-Touch_Target_Size Touch_Target_Size Verifica che i touch target mantengano dimensioni e posizioni coerenti e accessibili per tutte le dimensioni e configurazioni del display. Per informazioni sull'accessibilità, consulta Accessibility Scanner.
T-Visual_Contrast Visual_Contrast Verifica il contrasto di tutti gli elementi visivi.
T-Content_Description Content_Description Verifica che tutti gli elementi UI diversi da TextView abbiano descrizioni dei contenuti.

Funzionalità

Verifica che la tua app implementi il seguente comportamento funzionale.

Audio

ID Funzionalità Descrizione
T-Audio_Playback_Start Audio_Playback_Start Avviare la riproduzione audio. Verifica che l'app inizi a riprodurre l'audio entro un secondo o fornisca un indicatore visivo che i dati audio sono in fase di preparazione per la riproduzione.
T-Audio_Focus_Request Audio_Focus_Request Avviare la riproduzione audio. L'app deve richiedere il focus audio. Quando la riproduzione audio si interrompe, l'app deve rinunciare al controllo dell'audio (ciò avviene automaticamente per le app che hanno come target Android 12 (livello API 31) e versioni successive).
T-Audio_Focus_Change Audio_Focus_Change Avviare la riproduzione audio. Avvia la riproduzione audio in un'altra app. La tua app dovrebbe rispondere alla modifica della selezione audio e interrompere la riproduzione audio o ridurre il volume di riproduzione.
T-Audio_Playback_Background Audio_Playback_Background

Avviare 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 e mostrare una notifica nella barra di stato. Verifica di poter gestire la riproduzione utilizzando i controlli visualizzati nella notifica.

Blocca lo schermo del dispositivo. L'app dovrebbe continuare a riprodurre l'audio in background e mostrare una notifica nella schermata di blocco. Verifica di poter gestire la riproduzione utilizzando i controlli visualizzati nella notifica.

T-Audio_Notification_Style Audio_Notification_Style Avviare la riproduzione audio. Interagisci con un'altra app non audio come app in primo piano. Verifica che la tua app continui a riprodurre l'audio in background e che abbia creato una notifica con lo stile MediaStyle. Consulta la sezione Interagire correttamente con i controlli multimediali.
T-Audio_Playback_Resume Audio_Playback_Resume Avviare la riproduzione audio. Interagisci con un'altra app non audio come app in primo piano. Interagisci con la tua app per renderla l'app principale. L'audio dovrebbe riprendere o il volume dovrebbe essere ripristinato. In caso contrario, l'app deve indicare all'utente che la riproduzione è in pausa.

Video

ID Funzionalità Descrizione
T-Video_PiP Video_PiP Attiva la riproduzione di video dell'app in modalità Picture in picture.
T-Video_Encoding Video_Encoding Verifica che l'app codifichi i video utilizzando lo standard di compressione video HEVC.
T-Video_Playback_Background Video_Playback_Background Avvia la riproduzione del video. Riduci a icona la finestra dell'app, apri un'altra app per spostare la finestra dell'app in background. Sui dispositivi con funzionalità desktop, sposta la finestra dell'app fuori dal desktop visibile. Verifica che la riproduzione del video continui senza interruzioni in tutti i casi.

Condivisione

ID Funzionalità Descrizione
T-System_Sharesheet System_Sharesheet Crea un intent e avvia un'attività chiamando startActivity() con l'intent come argomento. Consulta Utilizza Android Sharesheet. L'app dovrebbe mostrare Android Sharesheet.

Servizi in background

ID Funzionalità Descrizione
T-Background_Service_Optimization Background_Service_Optimization

Utilizza tutte le funzionalità principali della tua app. Verifica che non vengano avviati servizi in background di lunga durata.

Passa a un'altra app per inviare l'app in background. Vai a Impostazioni e controlla se la tua 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à

Verifica le prestazioni, la stabilità e la perfezione visiva.

Prestazioni

ID Funzionalità Descrizione
T-App_Startup_Time App_Startup_Time Avvia l'app. Verifica che l'app si carichi rapidamente o fornisca un indicatore di avanzamento o un segnale simile se l'app impiega più di due secondi per caricarsi.
T-Rendering_Performance Rendering_Performance Utilizza tutte le funzionalità principali dell'app. Verifica che l'app esegua il rendering di almeno 60 frame al secondo. Utilizza l'opzione Profilo rendering HWUI per testare la tua app.
T-StrictMode_Compliance StrictMode_Compliance

Attiva StrictMode nella tua app. Utilizza tutte le funzionalità principali. Verifica che l'app non generi avvisi relativi alle prestazioni di StrictMode, ovvero che non siano visibili flash rossi durante il test dell'app. I flash rossi indicano prestazioni scadenti relative allo spazio di 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à

ID Funzionalità Descrizione
T-Stability_ANR Stability_ANR Utilizza tutte le funzionalità principali della tua app. Verifica che l'app non si arresti in modo anomalo o non 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

ID Funzionalità Descrizione
T-Android_Platform_Compatibility Android_Platform_Compatibility Esegui la tua app sulla versione pubblica più recente della piattaforma Android. Utilizza tutte le funzionalità principali. Verifica che l'app non si arresti in modo anomalo e che venga eseguita senza alcuna perdita delle funzionalità di base.
T-Target_SDK_Version Target_SDK_Version,
Compile_SDK_Version
Esamina il file manifest di Android e la configurazione di compilazione per assicurarti che l'applicazione sia compilata con l'SDK più recente disponibile (targetSdk e compileSdk).
T-SDK_Maintenance SDK_Maintenance Controlla il file build.gradle della tua app per verificare se sono presenti dipendenze obsolete.
T-Non_SDK_Interfaces Non_SDK_Interfaces 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-Production_Build_Quality Production_Build_Quality Controlla il file build.gradle dell'app per verificare se sono incluse librerie di debug.

Batteria

ID Funzionalità Descrizione
T-Power_Management Power_Management

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

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

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

Privacy e sicurezza

Verifica la presenza delle protezioni per la privacy e la sicurezza previste dagli utenti.

Autorizzazioni

ID Funzionalità Descrizione
T-Minimize_Permissions Minimize_Permissions 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-Sensitive_Permissions Sensitive_Permissions Utilizza tutte le funzionalità della tua app che richiedono autorizzazioni. Verifica che l'app richieda l'autorizzazione per accedere a dati o servizi sensibili solo per i casi d'uso principali dell'app. Verifica che le implicazioni della concessione dell'autorizzazione per dati e servizi sensibili siano comunicate chiaramente all'utente.
T-Runtime_Permissions Runtime_Permissions Utilizza tutte le funzionalità della tua app che richiedono autorizzazioni. Verifica che le autorizzazioni vengano richieste in modo lazy, ovvero solo quando si accede alle funzionalità, anziché durante l'avvio dell'app.
T-Permission_Rationale Permission_Rationale Utilizza tutte le funzionalità della tua app che richiedono autorizzazioni. Verifica che l'app spieghi all'utente perché sono necessarie le autorizzazioni.
T-Graceful_Degradation Graceful_Degradation 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

ID Funzionalità Descrizione
T-Sensitive_Data_Storage Sensitive_Data_Storage Esamina tutti i dati archiviati nella memoria interna. Verifica che i dati archiviati esternamente non siano dati sensibili.
T-Sensitive_Data_Handling Sensitive_Data_Storage Esamina il modo in cui i dati caricati dallo spazio di archiviazione esterno vengono gestiti ed elaborati.
T-Sensitive_Data_Logging Sensitive_Data_Logging Utilizza tutte le funzionalità principali dell'app mentre monitori il log del dispositivo. Verifica che non vengano registrate informazioni private degli utenti.
T-Hardware_IDs Hardware_IDs Utilizzare tutte le funzionalità principali dell'app. Verifica che l'app non utilizzi ID hardware, ad esempio l'IMEI, per scopi di identificazione.

Backup e ripristino dei dati

ID Funzionalità Descrizione
T-App_Data_Backup App_Data_Backup

Configura le preferenze locali, i database e le impostazioni delle app su un dispositivo principale. Esegui un backup sul cloud o un trasferimento da dispositivo a dispositivo (D2D) su un nuovo dispositivo.

Avvia l'app sul dispositivo di destinazione dopo il trasferimento e verifica che le preferenze locali, lo stato del database e le impostazioni utente vengano ripristinati correttamente in base alle regole di backup automatico. Per procedure di test dettagliate, consulta Esegui il test di backup e ripristino.

T-App_Logins_Restoration App_Logins_Restoration

Configura una sessione con accesso eseguito su un dispositivo principale utilizzando passkey, password o Accedi con Google. Esegui un backup sul cloud o un trasferimento da dispositivo a dispositivo (D2D) su un nuovo dispositivo.

Avvia l'app sul dispositivo di destinazione dopo il trasferimento e verifica che l'autenticazione venga ripristinata automaticamente utilizzando Restore Credentials senza visualizzare schermate di accesso o richiedere il recupero dell'account. Per procedure di test dettagliate, consulta Test delle credenziali di ripristino.

Identità

ID Funzionalità Descrizione
T-Autofill_Hints Autofill_Hints Utilizza tutte le funzionalità dell'app che richiedono l'input dell'utente. Verifica che l'app fornisca suggerimenti per la compilazione automatica dei campi di immissione per dati quali le credenziali dell'account e altre informazioni sensibili.
T-Credential_Manager Credential_Manager Accedi alla tua app. Verifica che l'app integri Gestore delle credenziali per Android per un'esperienza di accesso che unifica il supporto per passkey, identità federata e password.
T-Biometric_Authentication Biometric_Authentication 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 degli utenti, con l'autenticazione biometrica.

Componenti app

ID Funzionalità Descrizione
T-Component_Export Component_Export Esamina tutti i componenti dell'applicazione definiti nel file manifest Android per lo stato di esportazione appropriato. La proprietà esportata deve essere impostata esplicitamente per tutti i componenti.
T-Component_Permissions Component_Permissions 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-Component_Protection Component_Protection Esamina tutti i provider di contenuti definiti nel file manifest di Android. Assicurati che ogni provider abbia un protectionLevel appropriato.

Networking

ID Funzionalità Descrizione
T-Network_Security_Traffic Network_Security_Traffic Dichiara una configurazione di sicurezza di rete che disattivi il traffico di dati in chiaro, quindi testa l'app.
T-Network_Security_Configuration Network_Security_Configuration Esamina la configurazione di sicurezza di rete dell'app. Verifica che non vengano rilevati errori di linting nella configurazione.
T-Security_Provider_Initialization Security_Provider_Initialization Verifica che il provider di sicurezza sia inizializzato all'avvio dell'applicazione per Google Play Services.

WebView

ID Funzionalità Descrizione
T-WebView_Asset_Loader WebView_Asset_Loader Esamina la configurazione di sicurezza di rete dell'app. Verifica che non vengano rilevati errori di linting nella configurazione.
T-WebView_JavaScript WebView_JavaScript Per ogni WebView, vai a una pagina che richiede JavaScript.
T-WebView_Navigation WebView_Asset_Loader,
WebView_JavaScript
In ogni WebView, prova a navigare verso siti e contenuti che non vengono caricati direttamente dalla tua app.

Esecuzione

ID Funzionalità Descrizione
T-App_Bundles App_Bundles Verifica che l'app utilizzi Android App Bundle e non carichi dinamicamente il codice dall'esterno dell'APK dell'app.

Crittografia

ID Funzionalità Descrizione
T-Cryptographic_Algorithms Cryptographic_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

Verifica che la tua app sia pronta per Google Play.

Norme

ID Funzionalità Descrizione
T-Play_Content_Policies Play_Content_Policies,
Play_Content_Rating,
Play_User_Reviews
Accedi a Google Play Console per esaminare il tuo profilo sviluppatore, la descrizione dell'app, gli screenshot, l'immagine in primo piano, la classificazione dei contenuti e il feedback degli utenti.

Pagina dei dettagli dell'app

ID Funzionalità Descrizione
T-Play_Feature_Graphic Play_Feature_Graphic Scarica l'immagine in primo piano e gli screenshot e riducili in modo che corrispondano alle dimensioni di visualizzazione sui dispositivi e sui fattori di forma che hai scelto come target.
T-Play_Graphic_Assets Play_Feature_Graphic,
Play_Device_References,
Play_Misleading_Content
Esamina tutti gli asset grafici, i contenuti multimediali, il testo, le librerie di codice e altri contenuti inclusi nell'app o nel download del file di espansione.

Archivia

Versioni precedenti delle norme sulla qualità principali delle app: