Android Studio 3.2 (settembre 2018)
Android Studio 3.2 è una release importante che include una serie di nuove funzionalità e miglioramenti.
3.2.1 (ottobre 2018)
Questo aggiornamento di Android Studio 3.2 include le seguenti modifiche e correzioni:
- La versione di Kotlin inclusa è ora la 1.2.71.
- La versione predefinita degli strumenti di compilazione è ora la 28.0.3.
- Nella libreria di navigazione, i tipi di argomenti sono stati rinominati da
type
aargType
. - Sono stati corretti i seguenti bug:
- Quando si utilizza la libreria Data Binding, i nomi delle variabili con trattini bassi causavano errori di compilazione.
- CMake causava errori in IntelliSense e in altre funzionalità di CLion.
- L'aggiunta di un
SliceProvider
causava errori di compilazione nei progetti che non utilizzavano le librerieandroidx.*
. - Alcuni test delle unità Kotlin non venivano eseguiti.
- Un problema con il data binding causava un
PsiInvalidElementAccessException
. - A volte gli elementi
<merge>
causavano l'arresto anomalo dell'editor del layout.
Problemi noti della versione 3.2.0
Nota:questi problemi sono stati risolti in Android Studio 3.2.1
Sconsigliamo vivamente di utilizzare Kotlin versione 1.2.70.
La versione 1.2.61 di Kotlin corregge un bug che può causare il blocco 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.
-
Anche se in genere non è necessario specificare la versione degli strumenti di build, quando utilizzi il plug-in Android per Gradle 3.2.0 con
renderscriptSupportModeEnabled
impostato sutrue
, devi includere quanto segue nel filebuild.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 aggiornamento se rileva nuove informazioni da mostrare. Puoi anche aprire l'assistente scegliendo Guida > Novità di Android Studio.
Android Jetpack
Android Jetpack aiuta ad accelerare lo sviluppo per Android con componenti, strumenti e indicazioni che eliminano le attività ripetitive e ti consentono di creare più rapidamente e facilmente app di alta qualità e testabili. Android Studio include i seguenti aggiornamenti per supportare Jetpack. Per saperne di più, consulta la documentazione di Jetpack.
Editor di navigazione
Il nuovo editor di navigazione 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. L'editor di navigazione 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 attivare 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ù, leggi la documentazione dell'editor di navigazione.
Migrazione ad AndroidX
Nell'ambito di Jetpack, stiamo eseguendo la migrazione delle librerie di supporto Android a una nuova
libreria di estensioni Android utilizzando 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 Refactor > Migrate to AndroidX. Se hai dipendenze Maven che non sono state migrate allo spazio dei nomi AndroidX, il sistema di compilazione di Android Studio converte automaticamente le 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 sutrue
, questo flag indica che vuoi iniziare a utilizzare AndroidX da questo momento in poi. Se il flag è assente, Android Studio si comporta come se fosse impostato sufalse
.android.enableJetifier
: se impostato sutrue
, questo flag indica che vuoi che gli strumenti (dal plug-in Android Gradle) supportino la conversione automatica delle librerie di terze parti esistenti come se fossero state scritte per AndroidX. Se il flag è assente, Android Studio si comporta come se fosse impostato sufalse
.
Entrambi i flag sono impostati su true
quando utilizzi il comando
Migrate to AndroidX.
Se vuoi iniziare subito a utilizzare le librerie AndroidX e non devi
convertire 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 e le risorse compilati della tua app, ma rimanda la generazione e la firma dell'APK al Google Play Store.
Il nuovo modello di pubblicazione delle app di Google Play utilizza poi l'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 necessari per eseguire l'app. Non è più necessario creare, firmare e gestire più APK e gli utenti ottengono download più piccoli e ottimizzati.
Inoltre, puoi aggiungere moduli delle funzionalità al progetto dell'app e includerli nell'app bundle. in modo che gli utenti possano scaricare e installare le funzionalità della tua app on demand.
Per creare un bundle, scegli Build > Build Bundle(s) / APK(s) > Build Bundle(s).
Per maggiori informazioni, incluse le istruzioni per creare e analizzare un Android App Bundle, consulta Android App Bundle.
Dati di esempio nell'editor di layout
Molti layout Android hanno dati di runtime che possono rendere difficile visualizzare
l'aspetto 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, viene visualizzato un pulsante
sotto la visualizzazione nella finestra Struttura. Fai clic su questo pulsante per impostare gli attributi della visualizzazione in fase di progettazione. Puoi scegliere
tra una serie di modelli di dati di esempio e specificare il numero di elementi di esempio
con cui compilare la visualizzazione.
Per provare a utilizzare dati di esempio, aggiungi un
RecyclerView
a un nuovo layout, fai clic sul pulsante degli attributi in fase di progettazione
sotto la visualizzazione e scegli una selezione dal carosello dei modelli di dati di esempio.
Sezioni
Slice offre un nuovo modo per incorporare porzioni della funzionalità della tua app in altre interfacce utente su Android. Ad esempio, gli Slice consentono di mostrare funzionalità e contenuti delle app nei suggerimenti della Ricerca Google.
Android Studio 3.2 include un modello integrato per aiutarti a estendere la tua app con le nuove API Slice Provider, nonché nuovi controlli lint per assicurarti di seguire le best practice durante la creazione degli slice.
Per iniziare, fai clic con il tasto destro del mouse su una cartella di progetto e scegli Nuovo > Altro > Slice Provider.
Per scoprire di più, incluso come testare le interazioni con gli Slice, consulta la Guida introduttiva agli Slice.
Kotlin 1.2.61
Android Studio 3.2 include Kotlin 1.2.61 e il nuovo SDK Android si integra meglio con Kotlin. Per saperne di più, consulta il blog per sviluppatori Android.
IntelliJ IDEA 2018.1.6
L'IDE Android Studio principale è stato aggiornato con i miglioramenti di IntelliJ IDEA tramite la release 2018.1.6.
Profiler Android
Prova le nuove funzionalità di Android Profiler in Android Studio 3.2.
Sessioni
Ora puoi salvare i dati di Profiler come sessioni da rivedere e ispezionare in un secondo momento. Il profiler conserva i dati della sessione fino al riavvio dell'IDE.
Quando registri una traccia del metodo o acquisisci un dump dell'heap, l'IDE aggiunge questi dati (insieme all'attività di rete dell'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 CPU, seleziona la
nuova configurazione Traccia sistema per esaminare l'attività della CPU di sistema e dei
thread del dispositivo. Questa configurazione di traccia si basa su
systrace
ed è utile per analizzare i problemi a livello di sistema, ad esempio i problemi di scattosità dell'interfaccia utente.
Quando utilizzi questa configurazione di tracciamento, puoi contrassegnare visivamente le 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
.
Ispezionare i riferimenti JNI in Profiler di memoria
Se esegui il deployment della tua app su un dispositivo con Android 8.0 (livello API 26) o versioni successive, ora puoi esaminare le allocazioni di memoria per il codice JNI della tua app utilizzando Memory Profiler.
Mentre l'app è in esecuzione, seleziona una parte della sequenza temporale che vuoi esaminare e seleziona Heap JNI dal menu a discesa sopra l'elenco delle classi, come mostrato di seguito. Puoi quindi esaminare gli oggetti nell'heap come faresti normalmente e fare doppio clic sugli oggetti nella scheda Allocation Call Stack per vedere dove le referenze JNI vengono allocate e rilasciate nel codice.

Importare, esportare e ispezionare i file di dump dell'heap di memoria
Ora puoi importare, esportare e ispezionare i file di dump dell'heap di 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
esaminare i relativi dati in Memory Profiler come faresti con qualsiasi altro dump dell'heap.
Per salvare i dati del dump dell'heap da esaminare 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 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:
- Seleziona Esegui > Modifica configurazioni dal menu principale.
- Nella scheda Profilazione della configurazione di esecuzione che preferisci, seleziona la casella accanto a Avvia la registrazione di una traccia del metodo all'avvio.
- Seleziona una configurazione di registrazione della CPU da utilizzare dal menu a discesa.
- 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 il Profiler CPU, puoi esportare i dati come
un file .trace
da condividere con altri o da esaminare in un secondo momento.
Per esportare una traccia dopo aver registrato l'attività della CPU:
- Fai clic con il tasto destro del mouse sulla registrazione che vuoi esportare dalla sequenza temporale della CPU.
- Seleziona Esporta traccia dal menu a discesa.
- Scegli dove vuoi salvare il file, quindi fai clic su Salva.
Importare e ispezionare i file di traccia della CPU
Ora puoi importare ed esaminare i file .trace
creati con l'API Debug o il profilatore CPU. (Al momento, non è possibile importare le registrazioni di System Trace).
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
esaminare i dati nel Profiler CPU in modo simile a quello che faresti normalmente, con le
seguenti eccezioni:
- L'attività della CPU non è rappresentata lungo la sequenza temporale della CPU.
- La cronologia delle attività del thread indica solo dove sono disponibili i dati di traccia per ogni thread e non gli stati effettivi del thread (come in esecuzione, in attesa o inattivo).
Registra l'attività della CPU utilizzando l'API Debug
Ora puoi avviare e interrompere la registrazione dell'attività della CPU in CPU Profiler strumentando la tua app con l'API Debug. Dopo
aver eseguito il deployment dell'app su un dispositivo, il profiler inizia automaticamente a registrare l'attività della CPU
quando l'app chiama
startMethodTracing(String tracePath)
,
e smette di registrare 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 dell'utilizzo di energia stimato della tua app, nonché degli eventi di sistema che influiscono sull'utilizzo di energia, come wakelock, sveglie e job.
Energy Profiler viene visualizzato come una nuova riga nella parte inferiore della finestra Profiler quando esegui l'app su un dispositivo connesso o su Android Emulator con Android 8.0 (API 26) o versioni successive.
Fai clic sulla riga Energia per massimizzare la visualizzazione di Profiler energetico. Posiziona il puntatore del mouse su una barra della cronologia per visualizzare una suddivisione del consumo energetico in base alle risorse CPU, rete e 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 all'interno dell'intervallo di tempo specificato vengono visualizzati 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, ad esempio un wakelock, selezionalo nel riquadro degli eventi. Per passare al codice responsabile di un evento di sistema, fai doppio clic sulla voce nello stack di chiamate.
Controllo 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 problemi di codice comuni, che vanno da avvisi su potenziali problemi di usabilità a errori di alta priorità relativi a potenziali vulnerabilità della sicurezza.
Lint controlla l'interoperabilità Java/Kotlin
Per assicurarti che il codice Java interagisca bene con il codice Kotlin, i nuovi controlli lint applicano le best practice descritte nella guida all'interoperabilità di Kotlin. Esempi di questi controlli includono la ricerca della presenza di annotazioni di nullabilità, l'utilizzo di parole chiave hard di Kotlin e il posizionamento dei parametri lambda per ultimi.
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 > Inspections > Android > Lint > Interoperability > Kotlin Interoperability e seleziona le regole che vuoi attivare.

Per abilitare questi controlli per le build da riga di comando, aggiungi quanto segue al file
build.gradle
:
android {
lintOptions {
check 'Interoperability'
}
}
Controlli lint per gli snippet
I nuovi controlli lint per gli slice ti aiutano a creare gli slice correttamente. Ad esempio, i controlli lint ti avvisano se non hai assegnato un'azione principale a uno Slice.
Nuovo target Gradle
Utilizza il nuovo lintFix
task Gradle 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, come il controllo del servizio di trasmissione, per consentire ai controlli lint di funzionare con Android 9 (livello API 28).
Avviso se esegui lint su una nuova variante
Lint ora registra la variante e la versione con cui viene registrata una base di riferimento e ti avvisa se lo 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 traduzioni mancanti al volo, nell'editor.
ID problema più rilevabili
Gli ID problema ora vengono visualizzati in più posizioni, inclusa la finestra Risultati
dell'ispezione. In questo modo, è 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
Il data binding V2 ora è abilitato per impostazione predefinita ed è compatibile con la versione 1. Ciò significa che, se hai dipendenze di libreria che hai compilato con la versione 1, puoi utilizzarle con i progetti che utilizzano Data Binding V2. Tuttavia, tieni presente che i progetti che utilizzano la versione 1 non possono utilizzare dipendenze compilate con la versione 2.
D8 desugaring
In Android Studio 3.1, abbiamo integrato il passaggio di desugaring nello strumento D8 come funzionalità sperimentale, riducendo il tempo di compilazione complessivo. In Android Studio 3.2, il desugaring con D8 è attivo per impostazione predefinita.
Nuovo riduttore di codice
R8 è un nuovo strumento per la riduzione e l'offuscamento 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 che
hanno come target ABI diverse, il plug-in non genera più APK per le
seguenti ABI per impostazione predefinita: mips
, mips64
e armeabi
.
Se vuoi creare APK che hanno come target queste ABI, devi utilizzare
NDK r16b o versioni precedenti e specificare le 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à dell'editor migliorate per aiutarti a modificare gli script di build CMake, ad esempio:
- Evidenziazione della sintassi e completamento del codice:L'IDE ora evidenzia e suggerisce il completamento del codice per i comandi CMake comuni. Inoltre, puoi passare a un file facendo clic su di esso mentre premi il tasto Controllo (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 build CMake.
- Refactoring sicuro:gli strumenti di refactoring integrati nell'IDE ora controllano anche se stai rinominando o eliminando file a cui fai riferimento negli script di build CMake.
Navigare nei file di intestazione esterni
Quando utilizzi la finestra Progetto nelle versioni precedenti di Android Studio, puoi navigare e ispezionare solo i file di intestazione appartenenti alle librerie che crei 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 includi già codice e librerie C/C++ nel tuo progetto, apri la finestra Project sul lato sinistro dell'IDE selezionando View > Tool Windows > Project dal 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 attivato 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 livello API Android 21 o versioni successive. Ora,
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 che impostano
minSdkVersion=21
o versioni successive.
AAPT2 è stato spostato nel repository Maven di Google
A partire da Android Studio 3.2, l'origine di 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 qui:
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, tra cui una migliore gestione dei caratteri non ASCII su Windows.
Rimozione della configurazione su richiesta
La preferenza Configura on demand è stata rimossa da Android Studio.
Android Studio non passa più l'argomento --configure-on-demand
a Gradle.
Assistente per la connessione ADB
Il nuovo Assistente connessione ADB fornisce istruzioni passo passo per aiutarti a configurare e utilizzare un dispositivo tramite la connessione Android Debug Bridge (ADB).
Per avviare l'assistente, scegli Strumenti > Assistente connessione.
L'assistente per la connessione ADB fornisce istruzioni, controlli contestuali e un elenco di dispositivi connessi in una serie di pagine nel riquadro Assistente.
Miglioramenti dell'emulatore
Ora puoi salvare e caricare snapshot di un AVD (Android Virtual Device) in qualsiasi momento in Android Emulator, rendendo facile e veloce riportare un dispositivo emulato 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 si trovano ora nella scheda Snapshot nella finestra Controlli estesi dell'emulatore.
Per maggiori dettagli, vedi Snapshot.
Per ulteriori informazioni sulle novità e sulle modifiche apportate all'emulatore, consulta le note di rilascio dell'emulatore.