Android Studio 3.2 (settembre 2018)

Android Studio 3.2 è una release principale che include una serie di nuove funzionalità e miglioramenti.

3.2.1 (ottobre 2018)

Questo aggiornamento ad Android Studio 3.2 include le seguenti modifiche e correzioni:

  • La versione di Kotlin inclusa è ora 1.2.71.
  • La versione predefinita degli strumenti di compilazione è ora 28.0.3.
  • Nella libreria Navigation, i tipi di argomenti sono stati rinominati da type a argType.
  • I seguenti bug sono stati corretti:
    • Quando si utilizza la libreria di Data Binding, i nomi delle variabili con trattini bassi causavano errori di compilazione.
    • CMake causava il mancato funzionamento di IntelliSense e di altre funzionalità di CLion.
    • L'aggiunta di un SliceProvider causava errori di compilazione nei progetti che non utilizzavano le librerie androidx.*.
    • Alcuni test di unità Kotlin non sono stati eseguiti.
    • Un problema con l'associazione di dati causava un PsiInvalidElementAccessException.
    • Gli elementi <merge> a volte causavano un arresto anomalo di Editor di layout.

3.2.0 Problemi noti

Nota:questi problemi sono stati risolti in Android Studio 3.2.1

  • Sconsigliamo vivamente di utilizzare la versione 1.2.70 di Kotlin.

    La versione 1.2.61 di Kotlin corregge un bug che può causare l'arresto anomalo di Android Studio, ma Kotlin 1.2.70 non include questa correzione.

    Le versioni di Kotlin 1.2.71 e successive, tuttavia, includono questa correzione.

  • Sebbene in genere non sia necessario specificare la versione di Build Tools, quando utilizzi il plug-in Android Gradle 3.2.0 con renderscriptSupportModeEnabled impostato su true, devi includere quanto segue nel file build.gradle di ogni modulo:

    android.buildToolsVersion "28.0.3"

Assistente Novità

Un nuovo assistente ti informa sulle ultime modifiche in Android Studio.

L'assistente si apre quando avvii Android Studio dopo una nuova installazione o un nuovo aggiornamento se rileva che ci sono nuove informazioni da mostrare. Puoi aprire l'assistente anche scegliendo Guida > Novità in Android Studio.

Jetpack Android

Android Jetpack aiuta ad accelerare lo sviluppo di Android con componenti, strumenti e indicazioni che eliminano le attività ripetitive e ti consentono di creare app di alta qualità e verificabili in modo più rapido e semplice. Android Studio include i seguenti aggiornamenti per supportare Jetpack. Per saperne di più, consulta la documentazione di Jetpack.

Il nuovo Navigation Editor si integra con i componenti di navigazione di Android Jetpack per fornire una visualizzazione grafica per la creazione della struttura di navigazione della tua app. Navigation Editor semplifica la progettazione e l'implementazione della navigazione tra le destinazioni in-app.

In Android Studio 3.2, l'editor di navigazione è una funzionalità sperimentale. Per abilitare l'editor di navigazione, fai clic su File > Impostazioni (Android Studio > Preferenze su Mac), seleziona la categoria Sperimentale nel riquadro a sinistra, seleziona la casella accanto ad Attiva editor di navigazione e riavvia Android Studio.

Per saperne di più, consulta la documentazione di Navigation Editor.

Migrazione ad AndroidX

Nell'ambito di Jetpack, stiamo eseguendo la migrazione delle librerie di supporto Android a una nuova libreria di estensioni Android che utilizza lo spazio dei nomi androidx. Per ulteriori informazioni, consulta la panoramica di AndroidX.

Android Studio 3.2 ti aiuta in questo processo con una nuova funzionalità di migrazione.

Per eseguire la migrazione di un progetto esistente ad AndroidX, scegli Ristruttura > Esegui migrazione ad AndroidX. Se hai dipendenze Maven di cui non è stata eseguita la migrazione al namespace AndroidX, il sistema di compilazione di Android Studio converte automaticamente anche queste dipendenze del progetto.

Il plug-in Android per Gradle fornisce i seguenti flag globali che puoi impostare nel file gradle.properties:

  • android.useAndroidX: se impostato su true, questo flag indica che vuoi iniziare a utilizzare AndroidX da questo momento in poi. Se il flag è assente, Android Studio si comporta come se il flag fosse impostato su false.
  • android.enableJetifier: se impostato su true, questo indicatore indica che vuoi l'assistenza dello strumento (dal plug-in Android Gradle) per convertire automaticamente le librerie di terze parti esistenti come se fossero state scritte per AndroidX. Se il flag non è presente, Android Studio si comporta come se il flag fosse impostato su false.

Entrambi i flag sono impostati su true quando utilizzi il comando Esegui la migrazione ad AndroidX.

Se vuoi iniziare a utilizzare immediatamente le librerie AndroidX e non devi convertire le librerie di terze parti esistenti, puoi impostare il flag android.useAndroidX su true e il flag android.enableJetifier su false.

Android App Bundle

Android App Bundle è un nuovo formato di caricamento che include tutto il codice compilato e le risorse dell'app, ma rimanda la generazione degli APK e la firma al Google Play Store.

Il nuovo modello di pubblicazione delle app di Google Play utilizza quindi il tuo app bundle per generare e pubblicare APK ottimizzati per la configurazione del dispositivo di ogni utente, in modo che ogni utente scarichi solo il codice e le risorse di cui ha bisogno per eseguire la tua app. Non dovrai più creare, firmare e gestire più APK e gli utenti avranno download più piccoli e ottimizzati.

Inoltre, puoi aggiungere moduli delle funzionalità al progetto dell'app e includerli nell'app bundle. Gli utenti possono quindi scaricare e installare le funzionalità della tua app su richiesta.

Per creare un bundle, scegli Compila > Compila pacchetti/APK > Compila pacchetti.

Per ulteriori informazioni, incluse le istruzioni per creare e analizzare un Android App Bundle, consulta Android App Bundle.

Dati di esempio in Layout Editor

Molti layout Android hanno dati di runtime che possono rendere difficile visualizzare il look and feel di un layout durante la fase di progettazione dello sviluppo dell'app. Ora puoi visualizzare facilmente un'anteprima della tua visualizzazione nell'editor di layout con dati di esempio. Quando aggiungi una visualizzazione, nella finestra Progettazione viene visualizzato un pulsante sotto la visualizzazione. Fai clic su questo pulsante per impostare gli attributi della visualizzazione in fase di progettazione. Puoi scegliere tra una varietà di modelli di dati di esempio e specificare il numero di elementi di esempio con cui completare la visualizzazione.

Per provare a utilizzare i dati di esempio, aggiungi un RecyclerView a un nuovo layout, fai clic sul pulsante degli attributi di progettazione sotto la visualizzazione e scegli una selezione dal carosello di modelli di dati di esempio.

Sezioni

Le slice offrono un nuovo modo per incorporare parti della funzionalità della tua app in altre piattaforme di interfaccia utente su Android. Ad esempio, le Slice consentono di mostrare la funzionalità e i contenuti delle app nei suggerimenti della Ricerca Google.

Android Studio 3.2 ha un modello integrato che ti aiuta a estendere la tua app con le nuove API Provider di slice, nonché nuovi controlli lint per assicurarti di seguire le best practice durante la creazione delle sezioni.

Per iniziare, fai clic con il tasto destro del mouse su una cartella del progetto e scegli Nuovo > Altro > Fornitore di slice.

Per scoprire di più, incluso come testare le interazioni con le sezioni, consulta la Guida introduttiva alle sezioni.

Kotlin 1.2.61

Android Studio 3.2 include Kotlin 1.2.61 e il nuovo SDK per Android si integra meglio con Kotlin. Per maggiori informazioni, consulta il Blog per sviluppatori Android.

IntelliJ IDEA 2018.1.6

L'IDE Android Studio di base è stato aggiornato con i miglioramenti di IntelliJ IDEA tramite la release 2018.1.6.

Profiler Android

Prova le seguenti nuove funzionalità di Android Profiler in Android Studio 3.2.

Sessioni

Ora puoi salvare i dati di Profiler come sessioni per rivederli e analizzarli in un secondo momento. Il profiler conserva i dati della sessione fino a quando non riavvii l'IDE.

Quando registri una traccia del metodo o acquisisci un dump dell'heap, l'IDE aggiunge questi dati (insieme all'attività di rete della tua app) come voce separata alla sessione corrente e puoi passare facilmente da una registrazione all'altra per confrontare i dati.

Traccia di sistema

In Profiler della CPU, seleziona la nuova configurazione Traccia di sistema per ispezionare l'attività della CPU e dei thread di sistema del dispositivo. Questa configurazione della traccia si basa su systrace ed è utile per esaminare i problemi a livello di sistema, come il ritardo dell'interfaccia utente.

Mentre utilizzi questa configurazione di traccia, puoi contrassegnare visivamente routine di codice importanti nella sequenza temporale del profiler strumentando il codice C/C++ con l'API di tracciamento nativo o il codice Java con la classe Trace.

Controllare i riferimenti JNI in Memory Profiler

Se esegui il deployment dell'app su un dispositivo con Android 8.0 (livello API 26) o versioni successive, ora puoi ispezionare le allocazioni di memoria per il codice JNI dell'app utilizzando il profilatore della memoria.

Mentre l'app è in esecuzione, seleziona una parte della sequenza temporale da esaminare e seleziona JNI heap dal menu a discesa sopra l'elenco delle classi, come mostrato di seguito. Puoi quindi ispezionare gli oggetti nell'heap come faresti normalmente e fare doppio clic sugli oggetti nella scheda Allocation Call Stack (Pila di chiamate di allocazione) per vedere dove vengono allocati e rilasciati i riferimenti JNI nel codice.

Importa, esporta e controlla i file di dump dell'heap della memoria

Ora puoi importare, esportare e ispezionare i file di dump dell'heap della memoria .hprof creati con Memory Profiler.

Importa il file .hprof facendo clic su Avvia nuova sessione del profiler nel riquadro Sessioni del profiler e poi selezionando Carica da file. Puoi quindi esaminarne i dati in Memory Profiler come faresti con qualsiasi altro dump dell'heap.

Per salvare i dati del dump dell'heap da rivedere in un secondo momento, utilizza il pulsante Esporta dump dell'heap a destra della voce Dump dell'heap nel riquadro Sessioni. Nella finestra di dialogo Esporta come visualizzata, salva il file con l'estensione del nome del file .hprof.

Registra l'attività della CPU durante l'avvio dell'app

Ora puoi registrare l'attività della CPU durante l'avvio dell'app nel seguente modo:

  1. Seleziona Esegui > Modifica configurazioni dal menu principale.
  2. Nella scheda Profiling della configurazione di esecuzione che preferisci, seleziona la casella accanto a Avvia la registrazione di una traccia del metodo all'avvio.
  3. Seleziona una configurazione di registrazione della CPU da utilizzare dal menu a discesa.
  4. Esegui il deployment dell'app su un dispositivo con Android 8.0 (livello API 26) o versioni successive selezionando Esegui > Profila.

Esportare le tracce della CPU

Dopo aver registrato l'attività della CPU con lo strumento di analisi della CPU, puoi esportare i dati come file .trace da condividere con altri o da esaminare in un secondo momento.

Per esportare una traccia dopo aver registrato l'attività della CPU:

  1. Fai clic con il tasto destro del mouse sulla registrazione che vuoi esportare dalla sequenza temporale della CPU.
  2. Seleziona Esporta traccia dal menu a discesa.
  3. Scegli dove vuoi salvare il file, quindi fai clic su Salva.

Importa ed esamina i file di traccia della CPU

Ora puoi importare e ispezionare i file .trace creati con l'API di debug o con CPU Profiler. Al momento non è possibile importare le registrazioni del monitoraggio del sistema.

Importa il file di traccia facendo clic su Avvia nuova sessione del profiler nel riquadro Sessioni del profiler e poi selezionando Carica da file. Puoi quindi esaminarne i dati in CPU Profiler come faresti normalmente, con le seguenti eccezioni:

  • L'attività della CPU non è rappresentata nella sequenza temporale della CPU.
  • La sequenza temporale dell'attività del thread indica solo dove sono disponibili i dati traccia per ciascun thread e non gli stati effettivi del thread (ad esempio in esecuzione, in attesa o in sospensione).

Registra l'attività della CPU utilizzando l'API di debug

Ora puoi avviare e interrompere la registrazione dell'attività della CPU nel profilo CPU strumentando la tua app con l'API di debug. Dopo aver eseguito il deployment dell'app su un dispositivo, il profiler avvia automaticamente la registrazione dell'attività della CPU quando l'app chiama startMethodTracing(String tracePath) e la interrompe quando l'app chiama stopMethodTracing(). Durante la registrazione dell'attività della CPU attivata utilizzando questa API, Profiler CPU mostra API di debug come configurazione di registrazione della CPU selezionata.

Energy Profiler

Energy Profiler mostra una visualizzazione del consumo di energia stimato della tua app, nonché gli eventi di sistema che influiscono sul consumo di energia, come wakelock, sveglie e job.

Il Profiler di energia viene visualizzato come una nuova riga nella parte inferiore della finestra di Profiler quando esegui l'app su un dispositivo connesso o su un emulatore Android con Android 8.0 (API 26) o versioni successive.

Fai clic sulla riga Energia per massimizzare la visualizzazione di Energy Profiler. Posiziona il puntatore del mouse su una barra della sequenza temporale per visualizzare un'analisi dettagliata del consumo energetico per CPU, rete e risorse di posizione (GPS), nonché gli eventi di sistema pertinenti.

Gli eventi di sistema che influiscono sul consumo energetico sono indicati nella cronologia Sistema sotto la cronologia Energia. I dettagli degli eventi di sistema nell'intervallo di tempo specificato vengono mostrati nel riquadro degli eventi quando selezioni un intervallo di tempo nella sequenza temporale Energia.

Per visualizzare lo stack di chiamate e altri dettagli di un evento di sistema, come un blocco di riattivazione, selezionalo nel riquadro degli eventi. Per andare al codice responsabile di un evento di sistema, fai doppio clic sulla voce nello stack di chiamate.

Controllo tramite lint

Android Studio 3.2 include molte funzionalità nuove e migliorate per il controllo lint.

I nuovi controlli lint ti aiutano a trovare e identificare i problemi comuni del codice, che vanno da avvisi su potenziali problemi di usabilità a errori di alta priorità relativi a potenziali vulnerabilità di sicurezza.

Controlli di Lint per l'interoperabilità Java/Kotlin

Per assicurarti che il codice Java interoperi correttamente con il codice Kotlin, i nuovi controlli lint applicano le best practice descritte nella guida all'interoperabilità di Kotlin. Alcuni esempi di questi controlli includono la ricerca della presenza di annotazioni di nullabilità, l'utilizzo di parole chiave rigide di Kotlin e l'inserimento per ultimo dei parametri lambda.

Per attivare questi controlli, fai clic su File > Impostazioni (Android Studio > Preferenze su Mac) per aprire la finestra di dialogo Impostazioni, vai alla sezione Editor > Ispezioni > Android > Lint > Interoperabilità > Interoperabilità Kotlin e seleziona le regole che vuoi attivare.

Per attivare questi controlli per le build a riga di comando, aggiungi quanto segue al build.gradle file:

        android {
            lintOptions {
                check 'Interoperability'
            }
        }
        
      

Controlli lint per sezioni

I nuovi controlli lint per le sezioni ti aiutano a verificare di contrassegnarle correttamente. Ad esempio, i controlli lint ti avvisano se non hai assegnato un'azione principale a una Slice.

Nuovo target Gradle

Utilizza il nuovo compito Gradle lintFix per applicare tutte le correzioni sicure suggerite dal controllo lint direttamente al codice sorgente. Un esempio di controllo lint che suggerisce una correzione sicura da applicare è SyntheticAccessor.

Aggiornamenti dei metadati

Sono stati aggiornati vari metadati, ad esempio il controllo di trasmissione del servizio, affinché i controlli lint funzionino con Android 9 (livello API 28).

Avviso se esegui lint su una nuova variante

Ora lint registra la variante e la versione con cui viene registrata una base di riferimento e ti avvisa se la esegui su una variante diversa da quella con cui è stata creata la base di riferimento.

Miglioramenti ai controlli lint esistenti

Android Studio 3.2 include molti miglioramenti ai controlli lint esistenti. Ad esempio, i controlli del ciclo delle risorse ora si applicano a tipi di risorse aggiuntivi e il rilevatore di traduzioni può trovare le traduzioni mancanti al volo nell'editor.

ID problema più rilevabili

Ora gli ID dei problemi vengono visualizzati in più posizioni, ad esempio nella finestra Risultati dell'ispezione. In questo modo, sarà più facile trovare le informazioni necessarie per attivare o disattivare controlli specifici tramite lintOptions in build.gradle.

Per ulteriori informazioni, consulta Configurare le opzioni di lint con Gradle.

Data Binding V2

La versione 2 di Data Binding è ora attiva per impostazione predefinita ed è compatibile con la versione 1. Ciò significa che, se hai dipendenze di librerie compilate con la versione 1, puoi utilizzarle con i progetti che utilizzano la versione 2 di Data Binding. Tuttavia, tieni presente che i progetti che utilizzano la versione 1 non possono utilizzare le dipendenze compilate con la versione 2.

Desugaring D8

In Android Studio 3.1, abbiamo integrato la fase di desugaring nello strumento D8 come funzionalità sperimentale, riducendo i tempi di compilazione complessivi. In Android Studio 3.2, la rimozione del codice non necessario con D8 è attiva per impostazione predefinita.

Nuovo compressore di codice

R8 è un nuovo strumento per l'offuscamento e la riduzione del codice che sostituisce ProGuard. Puoi iniziare a utilizzare la versione di anteprima di R8 includendo quanto segue nel file gradle.properties del progetto:

      android.enableR8 = true
    

ABI predefiniti modificati per gli APK multipli

Quando crei più APK ciascuno con un ABI diverso come target, per impostazione predefinita il plug-in non genera più APK per i seguenti ABI: mips, mips64 e armeabi.

Se vuoi creare APK che hanno come target questi ABI, devi utilizzare NDK r16b o versioni precedenti e specificare gli ABI nel file build.gradle, come mostrato di seguito:

    splits {
        abi {
            include 'armeabi', 'mips', 'mips64'
            ...
        }
    }
    
    splits {
        abi {
            include("armeabi", "mips", "mips64")
            ...
        }
    }
    

Nota:questa modifica del comportamento è inclusa anche in Android Studio 3.1 RC1 e versioni successive.

Funzionalità dell'editor migliorate per i file di build CMake

Se utilizzi CMake per aggiungere codice C e C++ al tuo progetto, Android Studio ora include funzionalità di editor migliorate per aiutarti a modificare gli script di compilazione CMake, ad esempio:

  • Evidenziazione della sintassi e completamento del codice: ora l'IDE evidenzia e suggerisce il completamento del codice per i comandi CMake comuni. Inoltre, puoi passare a un file facendoci clic sopra mentre premi il tasto Control (Comando su Mac).
  • Riformattazione del codice:ora puoi utilizzare l'opzione di riformattazione del codice di IntelliJ per applicare gli stili di codice agli script di compilazione CMake.
  • Refactoring sicuro: gli strumenti di refactoring integrati nell'IDE ora controllano anche se rinomini o elimini i file a cui fai riferimento negli script di compilazione CMake.

Quando utilizzavi la finestra Progetto nelle versioni precedenti di Android Studio, potevai navigare e ispezionare solo i file di intestazione appartenenti alle librerie che compilavi da un progetto locale. Con questa release, ora puoi anche visualizzare e ispezionare i file di intestazione inclusi nelle dipendenze delle librerie C/C++ esterne che importi nel progetto dell'app.

Se già includi codice e librerie C/C++ nel tuo progetto, apri la finestra Progetto sul lato sinistro dell'IDE selezionando Visualizza > Finestre degli strumenti > Progetto nel menu principale e seleziona Android dal menu a discesa. Nella directory cpp, tutte le intestazioni che rientrano nell'ambito del progetto dell'app sono organizzate nel nodo include per ciascuna delle dipendenze della libreria C/C++ locale, come mostrato di seguito.

Multidex nativo abilitato per impostazione predefinita

Le versioni precedenti di Android Studio attivavano il multidex nativo durante il deployment della versione di debug di un'app su un dispositivo con Android API 21 o versioni successive. Ora, indipendentemente dal fatto che tu stia eseguendo il deployment su un dispositivo o creando un APK per la release, il plug-in Android per Gradle attiva il multidex nativo per tutti i moduli impostati su minSdkVersion=21 o versioni successive.

AAPT2 è stato spostato nel repository Maven di Google

A partire da Android Studio 3.2, la fonte per AAPT2 (Android Asset Packaging Tool 2) è il Repository Maven di Google.

Per utilizzare AAPT2, assicurati di avere una dipendenza google() nel file build.gradle, come mostrato di seguito:

    buildscript {
        repositories {
            google() // here
            jcenter()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.2.0'
        }
    }
    allprojects {
        repositories {
            google() // and here
            jcenter()
        }
    }
    
    buildscript {
        repositories {
            google() // here
            jcenter()
        }
        dependencies {
            classpath("com.android.tools.build:gradle:3.2.0")
        }
    }
    allprojects {
        repositories {
            google() // and here
            jcenter()
        }
    }
    

La nuova versione di AAPT2 risolve molti problemi, inclusa la gestione migliorata dei caratteri non ASCII su Windows.

Rimozione della configurazione su richiesta

La preferenza Configura su richiesta è stata rimossa da Android Studio.

Android Studio non passa più l'argomento --configure-on-demand a Gradle.

Assistente connessione ADB

Il nuovo Assistente per la connessione ADB fornisce istruzioni dettagliate per aiutarti a configurare e utilizzare un dispositivo tramite la connessione Android Debug Bridge (ADB).

Per avviare l'assistente, scegli Strumenti > Assistente alla connessione.

L'Assistente alla connessione ADB fornisce istruzioni, controlli in-context e un elenco di dispositivi connessi in una serie di pagine del riquadro Assistente.

Miglioramenti all'emulatore

Ora puoi salvare e caricare gli snapshot di un AVD (dispositivo virtuale Android) in qualsiasi momento nell'emulatore Android, in modo da ripristinare facilmente e rapidamente un dispositivo simulato a uno stato noto per i test. Quando modifichi un AVD utilizzando Gestione AVD, puoi specificare quale snapshot AVD caricare all'avvio dell'AVD.

I controlli per salvare, caricare e gestire gli snapshot AVD ora si trovano nella scheda Snapshot della finestra Controlli avanzati dell'emulatore.

Per maggiori dettagli, vedi Snapshot.

Per ulteriori informazioni sulle novità e sulle modifiche nell'emulatore, consulta le note di rilascio dell'emulatore.