Funzionalità del dispositivo per miliardi di utenti

Raggiungere nuovi utenti significa supportare una varietà crescente di versioni della piattaforma Android e specifiche dei dispositivi. Per migliorare l'esperienza utente, ottimizza per configurazioni di RAM comuni e dimensioni e risoluzioni dello schermo.

Supporta schermi di diverse dimensioni

La tua app può offrire un'esperienza utente migliore a miliardi di utenti se supporta schermi di varie dimensioni e risoluzioni. In questa sezione vengono descritti alcuni modi per farlo.

Utilizzare pixel indipendenti dalla densità (dp)

  • La definizione di dimensioni di layout con pixel non funziona bene perché schermi diversi hanno densità di pixel diverse, quindi lo stesso numero di pixel potrebbe corrispondere a dimensioni fisiche diverse su dispositivi diversi.
  • Per risolvere il problema, Android supporta il pixel indipendente dalla densità (dp), che corrisponde alla dimensione fisica di un pixel a 160 punti per pollice (densità mdpi).
  • La definizione di layout con dp garantisce che le dimensioni fisiche dell'interfaccia utente siano coerenti indipendentemente dal dispositivo. Consulta la guida di Android su Supporto di più schermi per le best practice sull'utilizzo di pixel indipendenti dalla densità.

Prova testo e grafica su densità schermo ldpi e mdpi

  • Verifica che il testo e la grafica funzionino bene sugli schermi a bassa e media densità (ldpi e mdpi) perché si tratta di densità comuni, soprattutto nei dispositivi a basso costo. Cerca testo che potrebbe non essere chiaro sulle schermate a bassa densità, dove non sono visibili dettagli dettagliati.
  • I dispositivi con schermi a bassa densità tendono ad avere specifiche hardware inferiori. Per assicurarti che la tua app abbia un buon rendimento su questi dispositivi, valuta la possibilità di ridurre o eliminare i carichi di elaborazione grafici di grandi dimensioni, come animazioni e transizioni.
  • Per ulteriori informazioni sul supporto di densità diverse, consulta il corso di formazione su Supporto di densità diverse per Android.

Testare i layout su schermi di piccole e medie dimensioni

  • Verifica che i layout vengano scalati testando su schermi più piccoli. Man mano che le dimensioni dello schermo si riducono, presta molta attenzione agli elementi UI visibili, perché lo spazio è limitato.
  • Le linee guida di Material Design descrivono metriche e caratteristiche principali per garantire la scalabilità dei layout tra le densità dello schermo.
  • Per ulteriori informazioni sul supporto di diverse dimensioni dello schermo, consulta il corso di formazione Android su Supporto di dimensioni dello schermo diverse.

Compatibilità con le versioni precedenti

È possibile che non tutti i tuoi utenti utilizzino dispositivi basati sulla versione più recente e migliore della piattaforma Android. Ecco alcuni modi per migliorare la compatibilità con le versioni precedenti, in modo da rendere la tua app disponibile al maggior numero possibile di persone.

Imposta il targetSdkVersion e minSdkVersion in modo appropriato

  • Le app devono creare e scegliere come target la versione più recente di Android per garantire che offra il comportamento più recente su una vasta gamma di dispositivi e ciò garantisca comunque la compatibilità con le versioni precedenti. Di seguito sono riportate le best practice per il targeting appropriato dei livelli API:
    • targetSdkVersion deve essere l'ultima versione di Android. Se scegli come target la versione più recente, l'app erediterà i comportamenti di runtime più recenti durante l'esecuzione di versioni più recenti di Android. Assicurati di testare la tua app sulle versioni più recenti di Android quando aggiorni targetSdkVersion, in quanto può influire sul comportamento delle app.
    • minSdkVersion Consente di impostare la versione minima di Android supportata. L'impostazione di minSdkVersion comporta anche gli strumenti di compilazione di Android che segnalano l'uso non corretto delle nuove API che potrebbero non essere disponibili nelle versioni precedenti della piattaforma. In questo modo, sarai protetto dalla compatibilità con le versioni precedenti inavvertitamente.
  • Consulta le dashboard di Android, la Google Play Developer Console per la tua app e le ricerche di mercato nei mercati di destinazione per capire quali versioni di Android scegliere come target in base ai tuoi utenti target.

Utilizzare le librerie di assistenza di Android

  • Assicurati che la tua app offra un'esperienza coerente su tutte le versioni del sistema operativo utilizzando la Libreria di assistenza Android. Questa libreria offre versioni delle API di framework Android compatibili con le versioni precedenti, nonché funzionalità disponibili solo tramite le API di libreria, come AppCompatActivity e la libreria di supporto Material Design.
  • Ecco alcune delle novità principali:
  • Per maggiori informazioni sulle librerie di assistenza disponibili, consulta la sezione Funzionalità delle librerie di assistenza del sito per sviluppatori Android.

Utilizzare Google Play Services

  • Google Play Services offre il meglio delle API di Google indipendentemente dalla versione della piattaforma Android. Valuta la possibilità di utilizzare le funzionalità di Google Play Services per offrire un'esperienza Google ottimale sui dispositivi Android.
  • Google Play Services include anche API utili come GcmNetworkManager, che fornisce molte delle API JobScheduler di Android 5.0 per le versioni precedenti di Android.
  • Gli aggiornamenti a Google Play Services vengono distribuiti automaticamente dal Google Play Store e le nuove versioni della libreria client vengono pubblicate tramite Android SDK Manager.

Usa la memoria in modo efficiente

La memoria è la spina dorsale dell'esperienza utente. Una buona gestione della memoria può rendere la tua app più stabile e con prestazioni migliori. In alcuni casi, l'utilizzo effettivo potrebbe essere l'unica a rendere la tua app utilizzabile. Ecco alcuni modi per aiutare la tua app a utilizzare la memoria in modo saggio.

Riduci l'impatto della memoria sui dispositivi a basso costo

  • Regola l'impatto della memoria in modo dinamico per garantire la compatibilità tra dispositivi con configurazioni di RAM diverse.
  • Metodi come isLowRamDevice() e getMemoryClass() consentono di determinare i vincoli di memoria in fase di esecuzione. In base a queste informazioni, puoi fare lo scale down dell'utilizzo della memoria. Ad esempio, puoi utilizzare le immagini a risoluzione inferiore sui dispositivi con memoria ridotta.
  • Per scoprire di più sulla gestione della memoria dell'app, consulta il corso di formazione Android relativo alla gestione della memoria dell'app.

Evitare processi a lunga esecuzione

  • I processi a lunga esecuzione restano in memoria e possono rallentare il dispositivo. Nella maggior parte dei casi, l'app deve attivarsi per un determinato evento, elaborare i dati e arrestarsi. Consigliamo di utilizzare Firebase Cloud Messaging (FCM) e GcmNetworkManager per evitare servizi in background a lunga esecuzione e ridurre la pressione della memoria sul server dispositivo.

Utilizzo benchmark della memoria

Android Studio offre strumenti di benchmarking e profilazione della memoria che ti consentono di misurare l'utilizzo della memoria in fase di esecuzione. Il benchmarking dell'impatto della memoria dell'app ti consente di monitorare l'utilizzo della memoria su più versioni dell'app. In questo modo, puoi contribuire a rilevare una crescita involontaria dell'impatto della memoria. Utilizza lo strumento Memory Profiler per le seguenti operazioni:

  • Scopri se gli eventi indesiderati di garbage collection (GC) potrebbero causare problemi di prestazioni.
  • Identifica i tipi di oggetti che vengono allocati o rimangono allocati in modo imprevisto o inutilmente.
  • Identifica il punto in cui potrebbe esserci il problema nel codice.

Per saperne di più sull'utilizzo della memoria di benchmarking, consulta Visualizza heap e allocazioni con Memory Profiler.

Ottimizzazione per i dispositivi con Android Go

Android (Go edition) è un'esperienza ottimizzata per i dispositivi di livello base con ≤ 1 GB di RAM, a partire da Android Oreo (Go edition). Per assicurarti che la tua app funzioni correttamente sui dispositivi Android Go, devi tenere conto delle seguenti linee guida:

  • targetSdkVersion deve essere l'ultima versione di Android. I dispositivi Android (Go edition) eseguono solo Android Oreo (API 27 o versioni successive).
  • L'app dovrebbe funzionare senza problemi su dispositivi con ≤1 GB di RAM. Tieni presente che le ottimizzazioni della memoria elencate in Utilizza la memoria in modo efficiente in alto e utilizza Android vitals per identificare e risolvere i comportamenti dannosi come rendering lento e bloccato. frame.
  • La funzionalità Picture in picture (PIP) potrebbe essere disattivata sui dispositivi. Prima che l'app utilizzi la funzionalità PIP, verifica che sia disponibile chiamando hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE).
  • Le dimensioni dell'app sul dispositivo devono essere inferiori a 40 MB.
  • Le dimensioni proporzionali (PSS) dell'utilizzo della RAM dell'app non devono superare i 90 MB. Per i giochi, la percentuale di utilizzo della RAM del gioco non deve essere superiore a 150 MB. Per ulteriori informazioni su PSS, consulta la guida Indagine sull'utilizzo della RAM.
  • Il tempo di avvio dell'app deve essere minimo e inferiore a 5 secondi.
  • SYSTEM_ALERT_WINDOW (consente alle app di tracciare una finestra sopra le altre) potrebbe essere disattivata sui dispositivi Android Go con RAM ridotta. Prima di passare sopra altre app, controlla se la tua app ha questa autorizzazione chiamando Impostazioni.canDrawOverlays(). Se la tua app non può ottenere l'autorizzazione, esegui la riduzione controllata la tua app in modo che l'utente possa continuare a utilizzarla, magari disattivando la funzionalità che richiede l'autorizzazione SYSTEM_ALERT_WINDOW.

Consigliamo alla maggior parte degli sviluppatori di ottimizzare l'app esistente, che sarà disponibile su tutti i dispositivi Android (Go edition), perché l'esecuzione dell'app più rapida e leggera sarà vantaggiosa per tutto il pubblico. Puoi utilizzare la funzionalità APK multipli di Play Console per distribuire un APK specifico per i dispositivi Android (Go edition), ma devi farlo solo senza compromettere l'esperienza (ad esempio, evitate di rimuovere le funzionalità). L'APK che ha come target i dispositivi Android (Go edition) deve dichiarare <uses-feature android:name="android.hardware.ram.low" android:required="true">, avere come target almeno il livello API 26 e avere un codice di versione superiore rispetto all'APK non Go.

Risorse aggiuntive

Per saperne di più sul supporto di vari dispositivi, consulta la seguente risorsa:

Post del blog