Sebbene le versioni più recenti di Android spesso forniscano API fantastiche per la tua app, devi continuare a supportare le versioni precedenti di Android finché non verranno aggiornati più dispositivi. Questo mostra come sfruttare le API più recenti continuando a supportare e versioni successive.
Utilizza la procedura guidata Nuovo progetto di Android Studio per trovare la distribuzione dei dispositivi attivi che eseguono ogni versione di Android. Questa distribuzione si basa sul numero di dispositivi che visita il Google Play Store. In genere, consigliamo di supportare circa il 90% dei dispositivi attivi, mentre il targeting della tua app all'ultima versione.
Suggerimento: per offrire le migliori funzionalità e su diverse versioni di Android, devi usare Android Support Library nell'app, che ti consente di usare diverse API recenti delle piattaforme su versioni precedenti.
Specificare i livelli API minimi e target
Il file AndroidManifest.xml
descrive i dettagli della tua app e
identifica le versioni di Android supportate. Nello specifico, gli attributi minSdkVersion
e targetSdkVersion
per l'elemento <uses-sdk>
identificano il livello API più basso con cui la tua app è compatibile e il livello API più elevato rispetto al quale
hai progettato e testato la tua app.
Ad esempio:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... > <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" /> ... </manifest>
Con il rilascio di nuove versioni di Android, alcuni stili e comportamenti potrebbero cambiare.
Per consentire alla tua app di trarre vantaggio da questi cambiamenti e assicurarti che si adatti allo stile di
dispositivo di ciascun utente, devi impostare
targetSdkVersion
affinché corrisponda all'ultima versione di Android
disponibili.
Controlla la versione del sistema in fase di runtime
Android fornisce un codice univoco per ogni versione della piattaforma nella classe Build
constants. Usa questi codici all'interno dell'app per creare condizioni che assicurano che il codice
dipende da livelli API più elevati e viene eseguito solo quando queste API sono disponibili nel sistema.
Kotlin
private fun setUpActionBar() { // Make sure we're running on Honeycomb or higher to use ActionBar APIs if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { actionBar.setDisplayHomeAsUpEnabled(true) } }
Java
private void setUpActionBar() { // Make sure we're running on Honeycomb or higher to use ActionBar APIs if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); } }
Nota: durante l'analisi delle risorse XML, Android ignora il codice XML
attributi non supportati dal dispositivo corrente. Quindi puoi tranquillamente usare attributi XML
sono supportati solo dalle versioni più recenti senza preoccuparsi che le versioni precedenti non funzionino quando
ritroverai quel codice. Ad esempio, se imposti targetSdkVersion="11"
, la tua app include ActionBar
per impostazione predefinita su Android 3.0 e versioni successive. Per aggiungere elementi del menu alla barra delle azioni, devi impostareandroid:showAsAction="ifRoom"
nel file XML della risorsa del menu. È sicuro eseguire questa operazione
in un file XML con più versioni, perché le versioni precedenti di Android ignorano semplicemente
showAsAction
(in altre parole, non è necessario un
versione in res/menu-v11/
).
Utilizza stili e temi della piattaforma
Android offre temi per l'esperienza utente che conferiscono alle app l'aspetto e il design il sistema operativo sottostante. Questi temi possono essere applicati alla tua app all'interno manifest. Utilizzando questi stili e temi integrati, la tua app seguiranno naturalmente l'aspetto e il design più recenti di Android a ogni nuova release.
Per visualizzare l'attività in una finestra di dialogo:
<activity android:theme="@android:style/Theme.Dialog">
Per impostare uno sfondo trasparente per la tua attività:
<activity android:theme="@android:style/Theme.Translucent">
Per applicare il tuo tema personalizzato definito in /res/values/styles.xml
:
<activity android:theme="@style/CustomTheme">
Per applicare un tema all'intera app (tutte le attività), aggiungi l'attributo android:theme
all'elemento <application>
:
<application android:theme="@style/CustomTheme">
Per scoprire di più sulla creazione e sull'utilizzo dei temi, leggi la guida Stili e temi.