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
aargType
. - I seguenti bug sono stati corretti:
- Quando si utilizza la libreria Data Binding, i nomi delle variabili con trattini bassi causavano errori di compilazione.
- CMake causava il fallimento di IntelliSense e di altre funzionalità di CLion.
- L'aggiunta di un
SliceProvider
causava errori di compilazione nei progetti che non utilizzavano le librerieandroidx.*
. - Alcuni test di unità Kotlin non sono stati eseguiti.
- Un problema di associazione dei dati stava causando un
PsiInvalidElementAccessException
. - Gli elementi
<merge>
a volte causavano un arresto anomalo di Editor di layout.
Problemi noti di 3.2.0
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.
Tuttavia, le versioni Kotlin 1.2.71 e successive 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 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 che ci sono nuove informazioni da mostrare. Puoi anche aprire l'assistente scegliendo Guida > Novità di Android Studio.
Android Jetpack
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 ulteriori informazioni, consulta la documentazione di Jetpack.
Editor di navigazione
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 attivare Navigation Editor, fai clic su File > Impostazioni (Android Studio > Preferenze su Mac), seleziona la categoria Sperimentale nel riquadro a sinistra, seleziona la casella accanto ad Attiva Navigation Editor 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 questa procedura 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 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 il flag fosse impostato sufalse
.android.enableJetifier
: se impostato sutrue
, questo indicatore indica che vuoi che lo strumento (dal plug-in Android Gradle) supporti la conversione automatica delle librerie di terze parti esistenti come se fossero state scritte per AndroidX. Se il flag non è presente, Android Studio si comporta come se fosse impostato sufalse
.
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
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 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 diversi modelli di dati di esempio e specificare il numero di elementi di esempio con cui compilare la vista.
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ù, inclusa la modalità di test delle 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 Android si integra meglio con Kotlin. Per ulteriori 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.
Profili 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 jitter dell'interfaccia utente.
Quando utilizzi questa configurazione della traccia, puoi contrassegnare visivamente le routine di codice importanti nella sequenza temporale del profiler mediante l'instrumentazione del codice C/C++ con l'API di monitoraggio nativo o del 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 della tua 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 nel 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:
- Seleziona Esegui > Modifica configurazioni dal menu principale.
- Nella scheda Profiling 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 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:
- 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.
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.
Lo strumento di analisi energetica viene visualizzato come una nuova riga nella parte inferiore della finestra 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 cursore del mouse sopra una barra nella cronologia per visualizzare una suddivisione del consumo energetico in base alle risorse della CPU, della rete e della 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 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, come un blocco di attivazione, 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 di lint per le sezioni
I nuovi controlli lint per le sezioni ti aiutano a verificare di crearle 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
Vari metadati, come il controllo di trasmissione del servizio, sono stati aggiornati per consentire ai controlli lint di funzionare 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 il passaggio di desugaring nello strumento D8 come funzionalità sperimentale, riducendo il tempo di compilazione complessivo. 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.
Esplorare i file di intestazione esterni
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 esterne delle librerie C/C++ 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, il codice sorgente 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 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 alla 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.