Qualità principale dell'app

Ultimo aggiornamento: 17 maggio 2021

Un modo utile per valutare l'eccellenza delle app consiste nell'esaminare i flussi di lavoro nella tua app e valutarne l'uniformità e la sicurezza.

Questo elenco di controllo definisce un insieme di criteri di qualità fondamentali e test associati per aiutarti a valutare la qualità della tua app. Alcuni di questi criteri potrebbero essere facilmente sfuggiti e i test ti aiutano a ricordarti di includerli nei piani di test.

L'elenco di controllo evidenzia la qualità minima che tutte le app devono soddisfare. Probabilmente il test andrà ben oltre quanto descritto qui.

Ogni voce dell'elenco di controllo della qualità ha un ID univoco che potrebbe essere utile utilizzare quando comunichi con il tuo team. Puoi anche visualizzare la versione precedente di queste linee guida.

Esperienza visiva

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

Area ID Test Descrizione
Navigazione VX-N1 RP-3 L'app supporta la navigazione con pulsante Indietro standard e non utilizza prompt di tipo "Pulsante Indietro" personalizzati sullo schermo.
VX-N2 RP-3 L'app supporta la navigazione tramite gesti per tornare indietro / andare alla schermata Home.
VX-N3 RP-1
RP-3
RP-5

L'app conserva e ripristina correttamente lo stato dell'utente o dell'app.

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 torni in primo piano, l'app deve ripristinare lo stato conservato e qualsiasi transazione stateful significativa in attesa. Alcuni esempi sono: modifiche a campi modificabili, avanzamento del gioco, menu, video e altre sezioni dell'app o del gioco.

  1. Quando l'app viene ripresa dal selettore di app recenti, l'app riporta l'utente allo stato esatto in cui era stata utilizzata l'ultima volta.
  2. 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 è stata utilizzata l'ultima volta.
  3. Quando l'app viene riavviata dalla schermata Home o Tutte le app, dovrebbe essere eseguita una delle seguenti operazioni, a seconda del tempo trascorso dall'ultimo utilizzo:
    • Se l'app è stata utilizzata l'ultima volta da poco tempo (minuti), ripristina lo stato dell'app il più vicino possibile a quello precedente.
    • Se è trascorso più tempo dall'ultimo utilizzo dell'app, prova a ripristinare l'app il più vicino possibile allo stato precedente oppure ad avviarla dalla schermata Home o da qualche altro stato predefinito.
Notifiche VX-S1 RP-9

Le notifiche seguono le linee guida per la progettazione. In particolare:

  1. Le notifiche non vengono utilizzate per la promozione incrociata o per pubblicizzare un altro prodotto, in quanto è severamente vietato dal Play Store.
  2. I canali di notifica vengono definiti in base alle best practice, anziché ricevere tutte le notifiche da un singolo canale.
  3. Selezionare la priorità di notifica corretta.
  4. Se possibile, più notifiche vengono raggruppate in un unico gruppo di notifiche.
  5. Ove opportuno, imposta i timeout per le notifiche.
  6. Le notifiche sono persistenti solo se correlate a eventi in corso, ad esempio la riproduzione di musica o una telefonata. Per maggiori informazioni, consulta la sezione Funzionalità.
VX-S2 RP-9

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

  1. Utilizza le notifiche di MessagingStyle per le conversazioni.
  2. Supportare l'azione di risposta diretta.
  3. Supporta le scorciatoie per le conversazioni e implementa le best practice per ottenere il ranking migliore per le condivisioni dirette.
  4. Supporta le bolle.
UI e grafica VX-U1 RP-5

L'app supporta l'orientamento orizzontale e verticale e gli stati dei dispositivi piegati e aperti.

Gli orientamenti e gli stati di piegatura espongono sostanzialmente le stesse caratteristiche e azioni e preservano la parità funzionale.

VX-U2 RP-5

L'app riempie la finestra dell'app in entrambi gli orientamenti e non presenta effetti speciali a causa delle modifiche alla configurazione, incluse la chiusura e l'apertura del dispositivo.

È ammesso un letterbox di minore entità per compensare piccole variazioni nella geometria dello schermo.

VX-U3 RP-5 L'app gestisce correttamente le transizioni rapide tra gli orientamenti del display e la chiusura e apertura del dispositivo senza problemi di rendering del display e senza perdere lo stato.
Qualità visiva VX-V1 RP-tutti

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

  1. Se possibile, l'app deve utilizzare Drawables vettoriali.
  2. L'app fornisce grafica di alta qualità per tutte le dimensioni dello schermo e i fattori di forma scelti come target.
  3. Non è visibile alcun alias ai bordi di menu, pulsanti e altri elementi dell'interfaccia utente.
VX-V2 RP-tutti

L'app mostra blocchi di testo e di testo in modo accettabile per ciascuna delle lingue supportate.

  1. La composizione è accettabile in tutti i fattori di forma supportati.
  2. Non sono visibili lettere o parole di interruzione.
  3. Non è visibile alcun ritorno a capo automatico inappropriato all'interno di pulsanti o icone.
  4. La spaziatura tra il testo e gli elementi circostanti è sufficiente.
VX-V3 RP-tutti I contenuti dell'app e tutti i contenuti web a cui fa riferimento l'app supportano il tema scuro.
Accessibilità VX-A1 RP-tutti

I touch target devono avere una dimensione di almeno 48 dp. Scopri di più.

VX-A2 RP-tutti

Il testo e i contenuti in primo piano dell'app devono mantenere un rapporto di contrasto di colore sufficientemente elevato con lo sfondo:

  • 3.0:1 per testo / grafica di grandi dimensioni
  • 4, 5:1 per testo piccolo (testo inferiore a 18 pt o se il testo è in grassetto e minore di 14 pt)

Scopri di più su colore e contrasto.

VX-A3 RP-tutti Descrivi ogni elemento dell'interfaccia utente, tranne TextView, utilizzando contentDescription.

Funzionalità

L'app deve implementare il comportamento funzionale previsto.

Area ID Test Descrizione
Audio FN-A1 RP-1
RP-8
L'audio riprende quando l'app torna in primo piano o indica all'utente che la riproduzione è in pausa.
FN-A2 RP-1
RP-2
RP-8
Se la riproduzione audio è una funzionalità principale, l'app deve supportare la riproduzione in background.
FN-A3 RP-0

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

  1. Avvia la riproduzione dell'audio.
  2. Fornire un indicatore visivo del fatto che i dati audio sono in fase di preparazione.
FN-A4 RP-0 L'app dovrebbe richiedere l'audio attivo quando la riproduzione dell'audio inizia e abbandona lo stato attivo quando la riproduzione si interrompe.
FN-A5 RP-0 L'app deve gestire le richieste di altre app relative all'audio. Ad esempio, un'app potrebbe ridurre il volume di riproduzione quando un'altra app riproduce la voce.
Contenuti multimediali FN-M1 RP-0
RP-6
RP-8
Se l'app riproduce l'audio in background, deve creare una notifica con stile con MediaStyle.
FN-M2 RP-0 Se l'app riproduce video, dovrebbe supportare la riproduzione Picture in picture.
FN-M3 RP-0 Se l'app codifica i video, deve utilizzare lo standard di compressione video HEVC.
Condivisione FN-S1 RP-0 L'app deve utilizzare Android Sharesheet per condividere contenuti. Può suggerire target non disponibili per soluzioni personalizzate.
Servizio in background FN-B1 RP-6 L'app evita di eseguire in background servizi inutilmente lunghi. Per garantire il corretto funzionamento del dispositivo dell'utente, il sistema applica varie limitazioni per i servizi in background. Non sono considerati buoni utilizzi dei servizi in background:
  • Mantenere una connessione di rete per le notifiche
  • Mantenere una connessione Bluetooth
  • Mantenere il GPS acceso

Scopri come scegliere la soluzione giusta per il tuo lavoro.

Prestazioni e stabilità

L'app deve fornire le prestazioni, la stabilità, la compatibilità e la reattività previste dagli utenti.

Area ID Test Descrizione
Stabilità PS-S1 RP-tutti
SD-1
L'app non si arresta in modo anomalo o non blocca il thread dell'interfaccia utente causando errori ANR (Android non risponde). Utilizza il report pre-lancio di Google Play per identificare potenziali problemi di stabilità. Dopo il deployment, presta attenzione alla pagina Android Vitals nella Developer Console di Google Play.
Esibizione PS-P1 RP-tutti
SD-1
L'app si carica rapidamente o fornisce un feedback sullo schermo all'utente (un indicatore di avanzamento o un segnale simile) se il caricamento dell'app richiede più di due secondi.
PS-P2 RP-tutti
SD-1
Le app dovrebbero eseguire il rendering dei frame ogni 16 ms per raggiungere 60 frame al secondo. Gli sviluppatori possono utilizzare l'opzione Rendering HWUI del profilo nei test. In caso di problemi, hai a disposizione strumenti per diagnosticare più facilmente il rendering lento.
PS-P3 PM-1 Se la modalità StrictMode è attiva (vedi la sezione Test StrictMode di seguito), non sono visibili lampi di colore rosso (avvisi di prestazioni da StrictMode) durante il test dell'app. Eventuali lampeggiamenti di colore rosso indicano comportamenti dannosi in merito allo spazio di archiviazione, all'accesso alla rete o a perdite di memoria.
SDK PS-T1 RP-0 L'app viene eseguita sull'ultima versione pubblica della piattaforma Android senza arresti anomali o senza compromettere gravemente la funzionalità di base.
PS-T2 SP1 L'app ha come target l'SDK Android più recente necessario per soddisfare i requisiti di Google Play impostando il valore targetSdk.
PS-T3 SP1 L'app è realizzata con l'SDK Android più recente impostando il valore compileSdk.
PS-T4 SP-2
SP-3
Qualsiasi SDK di Google o di terze parti utilizzato è aggiornato. Eventuali miglioramenti a questi SDK, quali stabilità, compatibilità o sicurezza, devono essere disponibili tempestivamente per gli utenti.

Per gli SDK Google, valuta la possibilità di utilizzare gli SDK forniti da 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.

Lo sviluppatore è responsabile del codebase dell'intera app, inclusi gli eventuali SDK di terze parti utilizzati.

PS-T5 SP3 L'app non utilizza interfacce non SDK.
PS-T6 SP2 Nell'app di produzione non sono incluse librerie di debug. Ciò può causare problemi di prestazioni e di sicurezza.
Batteria PS-B1 BA-1 L'app supporta correttamente le funzionalità di gestione dell'alimentazione introdotte in Android 6.0 (Sospensione e Standby delle app). Nel caso in cui la funzionalità di base venga interrotta dalla gestione dell'alimentazione, solo le app idonee possono richiedere un'esenzione. Vedi Assistenza per altri casi d'uso in Sospensione e Standby delle app.

Durante lo sviluppo, gli sviluppatori possono testare il comportamento di standby e sospensione dell'app utilizzando questi comandi ADB.

In termini di utilizzo della batteria, gli sviluppatori possono utilizzare lo strumento Profilo energetico di Android Studio o Battery Historian, in combinazione con le attività pianificate in background, per diagnosticare l'utilizzo imprevisto della batteria.

Privacy e sicurezza

L'app deve gestire i dati utente e le informazioni personali in modo sicuro, con il livello di autorizzazione appropriato.

Oltre a questo elenco di controllo, le applicazioni pubblicate sul Google Play Store devono rispettare anche le norme relative ai dati utente per proteggere la privacy degli utenti.

Area ID Test Descrizione
Autorizzazioni SC-P1 SC-4 L'app richiede solo il numero minimo assoluto di autorizzazioni necessarie per supportare il caso d'uso in questione. Per alcune autorizzazioni come la posizione, se possibile utilizza la posizione approssimativa al posto della posizione precisa.
SC-P2

L'app richiede l'autorizzazione ad accedere a dati sensibili (come SMS, registro chiamate o posizione) o servizi a pagamento (ad esempio Telefono o SMS) solo se direttamente correlati ai casi d'uso principali delle app. Le implicazioni relative a queste autorizzazioni devono essere comunicate all'utente in posizione ben visibile.

A seconda di come utilizzi le autorizzazioni, potrebbe esistere 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, potrebbe essere più appropriato richiedere l'accesso utilizzando un intent implicito.

SC-P3 RP-0 L'app richiede le autorizzazioni di runtime nel contesto, quando viene richiesta la funzionalità, anziché in anticipo durante l'avvio dell'app.
SC-P4 RP-0

L'app comunica chiaramente perché sono necessarie determinate autorizzazioni o segui il flusso consigliato per spiegare perché è necessaria un'autorizzazione.

SC-P5 RP-0 L'app deve ridurre automaticamente la qualità quando gli utenti negano o revocano un'autorizzazione. L'app non deve impedire all'utente di accedere del tutto all'app.
Dati e file SC-DF1 SC-1 Tutti i dati sensibili vengono archiviati nella memoria interna dell'app.
SC-DF2 SC-10 Nessun dato utente personale o sensibile viene registrato nel log di sistema o in un log specifico dell'app.
SC-DF3 L'app non utilizza ID hardware non reimpostabili, ad esempio l'IMEI, per scopi di identificazione.
Identità SC-ID1 RP-0 L'app fornisce suggerimenti per la compilazione automatica delle credenziali dell'account e altre informazioni sensibili, come i dati della carta di credito, l'indirizzo fisico e il numero di telefono.
SC-ID2 RP-0 Integra Gestore delle credenziali per Android per un'esperienza di accesso senza interruzioni che unifica il supporto per passkey, identità federata e password tradizionali.
SC-ID3 RP-0 L'app supporta l'autenticazione biometrica per proteggere le transazioni finanziarie o le informazioni sensibili, come i documenti importanti degli utenti.
Componenti dell'app SC-AC1 SC-5

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

Vengono esportati solo i componenti delle applicazioni che condividono dati con altre app o i componenti che devono essere richiamati da altre app.

SC-AC2 CR-0
SC-4

Tutti gli intent e le trasmissioni seguono le best practice:

  1. Utilizza intent espliciti se l'applicazione di destinazione è ben definita.
  2. Utilizza gli intent per rimandare le autorizzazioni a un'altra app che dispone già dell'autorizzazione.
  3. Condividi i dati in sicurezza tra le app.
  4. Gli intent che contengono un payload vengono verificati prima dell'uso.
  5. Se devi trasferire un intent a un'altra app in modo che l'app ricevente possa richiamare e aspettarsi un callback nell'app per le chiamate, non includere un intent nidificato negli extra. Utilizzare un PendingIntent.
  6. Quando configuri i PendingIntent, imposta esplicitamente il flag immutabile, ove applicabile.
SC-AC3 SC-3 Tutti i componenti che condividono contenuti tra le tue app utilizzano android:protectionLevel="signature" per le autorizzazioni personalizzate. Sono inclusi attività, servizi, ricevitori di trasmissione e in particolare fornitori di contenuti.

Le app non dovrebbero basarsi sull'accesso a un elenco di pacchetti installati. L'accesso è stato limitato a partire da Android 11.

Reti SC-N1 SC-9 Tutto il traffico di rete viene inviato tramite SSL.
SC-N2 SC-6 L'applicazione dichiara una configurazione di sicurezza di rete.
SC-N3 Se l'applicazione utilizza Google Play Services, il fornitore di sicurezza viene inizializzato all'avvio dell'applicazione.
WebView SC-W1 SC-6 Non utilizzare setAllowUniversalAccessFromFileURLs() per accedere ai contenuti locali. Utilizza invece WebViewAssetLoader.
SC-W2 SC-7 I componenti WebView non devono utilizzare addJavaScriptInterface() con contenuti non attendibili.

Su Android 6.0 e versioni successive, utilizza invece i canali per i messaggi HTML.

Attuazione SC-E1 L'app non carica dinamicamente codice al di fuori del relativo APK. Gli sviluppatori devono usare 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 SC-C1 L'app utilizza potenti algoritmi crittografici forniti dalla piattaforma e un generatore di numeri casuali. Inoltre, l'app non implementa algoritmi personalizzati.

Google Play

Assicurati che le tue app possano essere pubblicate su Google Play.

Area ID Test Descrizione
Norme GP-P1 GP-tutti L'app rispetta rigorosamente i termini delle Norme relative ai contenuti per gli sviluppatori di Google Play, non offre contenuti inappropriati, non utilizza la proprietà intellettuale o il brand di altre persone e così via.
GP P2 GP-1 Il livello di maturità dell'app sia impostato correttamente in base alle linee guida per la classificazione dei contenuti.
Pagina dei dettagli dell'app GP D1 GP-1
GP-2

L'immagine in primo piano dell'app è conforme alle linee guida descritte in questo articolo di assistenza. Accertati che:

  1. La scheda dell'app include un'immagine in primo piano di alta qualità.
  2. L'immagine in primo piano non contiene immagini del dispositivo, screenshot o testo di piccole dimensioni che saranno illeggibili se ridimensionate e visualizzate sullo schermo più piccolo scelto come target dalla tua app.
  3. L'immagine in primo piano non assomiglia a una pubblicità.
GP D2 GP-1 Gli screenshot e i video dell'app non mostrano né fanno riferimento a dispositivi non Android.
GP D3 GP-1 Gli screenshot o i video dell'app non rappresentano in modo fuorviante i contenuti e l'esperienza dell'app.
Assistenza utenti GP X1 GP-1 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 pochi dispositivi, dovresti comunque risolverlo se si tratta di dispositivi particolarmente popolari o nuovi.

Configurazione di un ambiente di test

Ai fini della configurazione di un ambiente di test per questo elenco di controllo, consigliamo quanto segue:

  • Incentrato sul test degli emulatori: Android Emulator è un ottimo modo per testare la tua app in diverse versioni Android e risoluzioni dello schermo. Ti consigliamo di configurare dispositivi emulati per rappresentare i fattori di forma e le combinazioni hardware/software più comuni per la base utenti target. Oltre ai test per gli smartphone, ti consigliamo di testare anche altri fattori di forma utilizzando come minimo i seguenti emulatori:
    • Pieghevoli - Pieghevoli da 7,6" con display esterno (elenco dei telefoni in AVD Manager).
    • Tablet: Pixel C da 9,94" (2560 x 1800 px).
    • Per i test delle notifiche delle app mobile, accoppia un dispositivo mobile / emulatore con l'emulatore di Wear OS - Wear OS Round 1.84".
  • Dispositivi hardware: l'ambiente di test deve includere un numero limitato di dispositivi hardware reali che rappresentino i fattori di forma chiave e le combinazioni di hardware/software attualmente disponibili per i consumatori. Non è necessario eseguire test su ogni dispositivo sul mercato; piuttosto, dovresti concentrarti su un numero limitato di dispositivi rappresentativi, anche utilizzando uno o due dispositivi per fattore di forma.
  • Lab di test dei dispositivi: puoi anche utilizzare servizi di terze parti, ad esempio Firebase Test Lab, per testare la tua app su una gamma più ampia di dispositivi.
  • Esegui test con la versione più recente di Android: oltre a testare versioni di Android rappresentative per la tua base utenti target, devi sempre eseguire il test con la versione più recente di Android (attualmente Android 14). In questo modo, le ultime modifiche al comportamento non influiranno negativamente sull'esperienza degli utenti.

Per indicazioni più complete sui test, tra cui test delle unità, test di integrazione e test dell'interfaccia utente, consulta le Nozioni di base sui test di Android.

Procedure di test

Queste procedure di test ti aiutano a scoprire vari tipi di problemi di qualità nella tua app. Puoi combinare i test o integrare gruppi di test nei tuoi piani di test. Consulta le sezioni precedenti per i riferimenti che associano i criteri a queste procedure di test.

Tipo Test Descrizione
Suite principale RP-0

Puoi accedere a tutte le parti dell'app: tutte le schermate, le finestre di dialogo, le impostazioni e tutti i flussi utente.

  1. Se l'applicazione consente la modifica o la creazione di contenuti, il gameplay o la riproduzione di contenuti multimediali, assicurati di testare questi flussi.
  2. Durante il test dell'app, introduci interruzioni da altre app, ad esempio la ricezione di una notifica o una telefonata, e applica modifiche temporanee agli attributi del dispositivo, come la connettività di rete, la funzione della batteria, la disponibilità del GPS e il carico di sistema.
  3. Inserisci e testa tutti i flussi di acquisto in-app
RP-1 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.
RP 2 Dalla schermata di ogni app, passa a un'altra app in esecuzione, quindi torna all'app in fase di test utilizzando il selettore di app Recenti.
RP 3 Dalla schermata di ogni app (e dalle finestre di dialogo), premi il pulsante Indietro o utilizza il gesto di scorrimento indietro.
RP 5 Dalla schermata di ogni app, ruota il dispositivo tra l'orientamento orizzontale e verticale e lo stato piegato e aperto almeno tre volte.
CR-6 Passa a un'altra app per inviare l'app di prova in background. Vai alle Impostazioni e controlla se nell'app di test sono presenti servizi in esecuzione in background. In Android 4.0 e versioni successive, apri la schermata App e trova l'app nella scheda "In esecuzione".
CR-7 Premi il tasto di accensione per attivare la modalità di sospensione del dispositivo, quindi premilo di nuovo per riattivare lo schermo.
CR-8 Imposta un blocco schermo sul dispositivo. Premi il tasto di accensione per attivare la modalità di sospensione del dispositivo (che blocca il dispositivo). Quindi, premi di nuovo il tasto di accensione per riattivare lo schermo e sbloccare il dispositivo.
CR-9 Nel riquadro a scomparsa delle notifiche, attiva e osserva tutti i tipi di notifiche che l'app può visualizzare. Espandi le notifiche dove applicabile (Android 4.1 e versioni successive) e tocca tutte le azioni disponibili.
RP 10 Esamina l'assistenza per altri casi d'uso in modalità Sospensione e Standby delle app.
Installa su scheda SD SD-1 Ripeti la procedura di Core Suite con l'app installata sulla scheda SD del dispositivo (se l'app supporta questo metodo di installazione).

Per spostare l'app sulla scheda SD, puoi utilizzare Impostazioni > Informazioni app > Sposta su scheda SD.

Prestazioni e stabilità SP1 Esamina il file manifest Android e la configurazione della build per assicurarti che l'applicazione sia basata sull'SDK più recente disponibile (targetSdk e compileSdk).
SP2 Controlla se nel file build.gradle sono presenti dipendenze obsolete.
SP3 Utilizza lo strumento lint di Android Studio per rilevare l'utilizzo di interfacce non SDK. Sono inoltre disponibili altri metodi di test alternativi.
Monitoraggio delle prestazioni PM-1 Ripeti Core Suite con la profilazione StrictMode abilitata.

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

Batteria BA-1 Ripeti Core Suite per tutti i cicli di sospensione e standby delle app.

Presta particolare attenzione a sveglie, timer, notifiche, sincronizzazioni e così via. Per i requisiti e le linee guida, consulta la sezione Test con sospensione e standby delle app.

Sicurezza SC-1 Esamina tutti i dati archiviati nella memoria esterna.
SC-2 Esamina come vengono gestiti ed elaborati i dati caricati da un'unità di archiviazione esterna.
SC-3 Esamina tutti i fornitori di contenuti definiti nel file manifest di Android. Assicurati che ogni fornitore abbia un protectionLevel appropriato.
SC-4 Controlla tutte le autorizzazioni richieste dalla tua app nel file manifest, in fase di runtime e nella schermata delle impostazioni dell'app (Impostazioni > Informazioni sull'app) sul dispositivo.
SC-5 Controlla tutti i componenti dell'applicazione definiti nel file manifest Android per verificare lo stato di esportazione appropriato. La proprietà esportata deve essere impostata in modo esplicito per tutti i componenti.
SC-6 Controlla la configurazione della sicurezza di rete dell'app per assicurarti che nessun controllo lint della configurazione abbia esito negativo.
SC-7 Per ogni componente WebView, vai a una pagina che richiede JavaScript.
SC-8 In ogni componente WebView, cerca di accedere a siti e contenuti che non sono caricati direttamente dalla tua app.
SC-9 Dichiara una configurazione di sicurezza di rete che disattiva il traffico di testo non crittografato, quindi testa l'app.
SC-10 Esegui l'applicazione ed esercita tutte le funzionalità di base, osservando il log del dispositivo. Non deve essere registrata alcuna informazione privata dell'utente.
Google Play GP-1 Accedi alla Google Play Developer Console per controllare il profilo sviluppatore, la descrizione dell'app, gli screenshot, l'immagine in primo piano, la classificazione dei contenuti e il feedback degli utenti.
GP 2 Scarica l'immagine in primo piano e gli screenshot, poi scalali per adattarli alle dimensioni di visualizzazione dei dispositivi e dei fattori di forma scelti come target.
GP 3 Esamina tutte le risorse grafiche, i contenuti multimediali, il testo, le librerie di codici e gli altri contenuti presenti nell'app o nel download del file di espansione.

Test con StrictMode

Per i test delle prestazioni, ti consigliamo di attivare StrictMode nell'app e di utilizzarlo per rilevare operazioni che potrebbero influire sulle prestazioni, sugli accessi alla rete, sulle operazioni di lettura/scrittura di file e così via. Cerca le operazioni potenzialmente problematiche sia sul thread principale che su altri thread.

Puoi configurare un criterio di monitoraggio per thread utilizzando StrictMode.ThreadPolicy.Builder e abilitare tutti i tipi di monitoraggio supportati in ThreadPolicy utilizzando detectAll().

Assicurati di attivare la notifica visiva di violazioni delle norme per ThreadPolicy che utilizza penaltyFlashScreen().