Supportare diverse versioni della piattaforma

Anche se le versioni più recenti di Android spesso forniscono API eccezionali per la tua app, dovresti continuare per supportare le versioni precedenti di Android fino all'aggiornamento di altri 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 con 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.

Specifica 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, minSdkVersion e targetSdkVersion per l'elemento <uses-sdk> Identificare il livello API più basso con cui la tua app è compatibile e il livello API più elevato rispetto che 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>

Quando vengono rilasciate 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 in modo che 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 in Build della classe delle costanti. Usa questi codici all'interno della tua 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 il parametro targetSdkVersion="11", la tua app include ActionBar per impostazione predefinita su Android 3.0 e versioni successive. Per aggiungere voci di menu alla barra delle azioni, devi impostare android:showAsAction="ifRoom" nel tuo XML della risorsa di menu. È sicuro eseguire questa operazione in un file XML con più versioni, perché le versioni precedenti di Android ignorano semplicemente il 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 android:theme attributo all'elemento <application>:

<application android:theme="@style/CustomTheme">

Per ulteriori informazioni sulla creazione e l'utilizzo dei temi, leggi la guida Stili e temi.