Android Studio 3.1 (marzo 2018)
Android Studio 3.1.0 è una release principale che include una serie di nuove funzionalità e miglioramenti.
3.1.4 (agosto 2018)
Questo aggiornamento di Android Studio 3.1 include le seguenti modifiche e correzioni:
- La versione di Kotlin inclusa è ora la 1.2.50.
-
I nuovi progetti vengono creati con
kotlin-stdlib-jdk* artifacts, anziché con artefattikotlin-stdlib-jre*che sono deprecati. - È stata migliorata l'analisi delle regole di ProGuard da parte di R8.
- Sono stati corretti i seguenti bug:
-
Il tentativo di eseguire la classe principale di Kotlin non è riuscito con l'errore:
"Error: Could not find or load main class..." - R8 è entrato in un loop infinito durante l'esecuzione di determinate ottimizzazioni.
- L'utilizzo del comando Esegui di nuovo i test non riusciti nella finestra Esegui a volte restituiva erroneamente il messaggio "Non sono stati trovati test".
-
D8 non gestiva correttamente le istanze
invoke-virtual, causando un arresto anomalo con unVerifyError:invoke-super/virtual can't be used on private method -
Il compilatore di Data Binding dipendeva da una versione precedente di
com.android.tools:annotations. Il compilatore ora utilizza annotazioni degli strumenti del progetto di base, se disponibili. - Android Studio si arrestava in modo anomalo durante le transizioni dei fragment quando si utilizzavano i profiler.
- Il debugger si arrestava in modo anomalo durante il debug di un layout con una casella di testo.
- D8 non riusciva a leggere alcuni file ZIP con caratteri speciali.
3.1.3 (giugno 2018)
Questo aggiornamento di Android Studio 3.1 include correzioni per i seguenti bug:
- Le perdite di memoria hanno causato il rallentamento e la mancata risposta di Android Studio dopo l'utilizzo di Layout Editor. Questo aggiornamento include correzioni per la maggior parte di questi problemi. Intendiamo rilasciare a breve un altro aggiornamento per risolvere ulteriori perdite di memoria.
- Alcune applicazioni create con D8 si arrestavano in modo anomalo su alcuni tablet Verizon Ellipsis.
-
L'installazione delle applicazioni create con D8 non è riuscita con un
INSTALL_FAILED_DEXOPTerrore sui dispositivi con Android 5.0 o 5.1 (livello API 21 o 22). - Alcune applicazioni che utilizzavano la libreria OkHttp e sono state create con D8 si arrestavano in modo anomalo sui dispositivi con Android 4.4 (livello API 19).
-
A volte Android Studio non riusciva ad avviarsi, con un
ProcessCanceledExceptiondurante l'inizializzazione della classe percom.intellij.psi.jsp.JspElementType.
3.1.2 (aprile 2018)
Questo aggiornamento di Android Studio 3.1 include correzioni per i seguenti bug:
- In alcuni casi, Android Studio si bloccava a tempo indeterminato durante l'uscita.
-
Le build configurate con i set di origine non riuscivano con il seguente messaggio quando era abilitata l'esecuzione immediata:
"The SourceSet name is not recognized by the Android Gradle Plugin." - Quando l'esecuzione immediata era abilitata, le build dei nuovi progetti Kotlin non riuscivano quando venivano attivate dal comando Esegui.
-
Durante la modifica del file
build.gradle, a volte si verificava un ritardo notevole tra la digitazione di un carattere e la sua visualizzazione sullo schermo. -
Si sono verificati errori di build durante il dexing in alcuni progetti con un numero elevato di moduli o dipendenze esterne, con il seguente messaggio di errore:
"RejectedExecutionException: Thread limit exceeded replacing blocked worker" - Il calcolo dell'elenco DEX principale di D8 non teneva conto di alcune chiamate di riflessione.
Questo aggiornamento include anche modifiche che rendono l'esecuzione dei controlli lint da Gradle molto più veloce in alcuni scenari.
3.1.1 (aprile 2018)
Questo aggiornamento di Android Studio 3.1 include correzioni per i seguenti bug:
-
In alcuni casi, quando un progetto creato in Android Studio 3.0 veniva aperto per la prima volta in Android Studio 3.1, l'attività Make con riconoscimento di Gradle veniva rimossa dall'area Prima dell'avvio in Configurazioni di esecuzione/debug . Di conseguenza, i progetti non venivano creati quando si faceva clic sul pulsante Esegui o Esegui il debug, il che a sua volta causava errori come il deployment di APK errati e arresti anomali durante l'utilizzo dell'esecuzione immediata.
Per risolvere questo problema, Android Studio 3.1.1 aggiunge l'attività Make con riconoscimento di Gradle alla configurazione di esecuzione per i progetti in cui manca questa voce. Questa modifica viene eseguita dopo la prima sincronizzazione di Gradle al caricamento del progetto.
- Il debugger si arrestava in modo anomalo durante il debug di un layout con una casella di testo se era abilitata la profilazione avanzata.
- Android Studio si bloccava dopo aver fatto clic su Varianti di build.
- I file AAR (Android Archive) venivano estratti due volte, una durante il processo di sincronizzazione di Gradle e una durante il processo di build di Gradle.
- Alcuni elementi mancavano da alcuni elementi grafici vettoriali importati da file SVG.
-
L'avviso relativo alla deprecazione della configurazione delle dipendenze
compileè stato aggiornato con indicazioni migliori relative alle configurazioniimplementationeapi. Per i dettagli sulla migrazione dall'utilizzo dellacompileconfigurazione, consulta la documentazione per le nuove configurazioni delle dipendenze.
Codifica/IDE
IntelliJ 2017.3.3
L'IDE principale di Android Studio è stato aggiornato con i miglioramenti di IntelliJ IDEA fino alla release 2017.3.3. I miglioramenti includono una migliore analisi del flusso di controllo per raccolte e stringhe, un'inferenza di nullabilità migliorata, nuove correzioni rapide e molto altro.
Per i dettagli, consulta le note di rilascio di JetBrains per le versioni 2017.2 e 2017.3 di IntelliJ IDEA, nonché le note di rilascio di JetBrains per gli aggiornamenti di correzione dei bug.
Miglioramenti alla modifica di SQL con Room
Quando utilizzi la libreria di database Room, puoi sfruttare diversi miglioramenti alla modifica di SQL:
- Il completamento automatico del codice all'interno di un
Querycomprende tabelle SQL (entità), colonne, parametri di query, alias, join, sottoquery e clausole WITH. - Ora l'evidenziazione della sintassi SQL funziona.
- Puoi fare clic con il tasto destro del mouse sul nome di una tabella in SQL e rinominarla, il che anche riscrive il codice Java o Kotlin corrispondente (incluso, ad esempio, il tipo restituito della query). La ridenominazione funziona anche nell'altra direzione, too, quindi la ridenominazione di una classe o di un campo Java riscrive il codice SQL code corrispondente.
- Gli utilizzi di SQL vengono mostrati quando si utilizza Trova utilizzi (fai clic con il tasto destro del mouse e scegli Trova utilizzi dal menu contestuale).
- Per passare alla dichiarazione di un'entità SQL nel codice Java o Kotlin, puoi tenere premuto il tasto Ctrl (Comando su Mac) mentre fai clic sull'entità.
Per informazioni sull'utilizzo di SQL con Room, consulta Salvare i dati in un database locale utilizzando Room.
Aggiornamenti di Data Binding
Questo aggiornamento include diversi miglioramenti per associazione di dati:
-
Ora puoi utilizzare un
LiveDataoggetto come campo osservabile nelle espressioni di associazione di dati. LaViewDataBindingclasse ora include un nuovo metodosetLifecycle()che utilizzi per osservare gli oggettiLiveData. -
La
ObservableFieldclasse ora può accettare altriObservableoggetti nel suo costruttore. -
Puoi visualizzare l'anteprima di un nuovo compilatore incrementale per le classi di associazione di dati Per i dettagli su questo nuovo compilatore e le istruzioni per abilitarlo, consulta Compilatore di Data Binding V2.
I vantaggi del nuovo compilatore includono:
-
ViewBindingclassi vengono generate dal plug-in Android per Gradle prima del compilatore Java. - Le librerie mantengono le classi di binding generate quando l'app è compilata, anziché essere rigenerate ogni volta. Questo può migliorare notevolmente il rendimento per i progetti multi-modulo.
-
Compilatore e Gradle
D8 è il compilatore DEX predefinito
Il compilatore D8 viene ora utilizzato per impostazione predefinita per generare bytecode DEX.
Questo nuovo compilatore DEX offre diversi vantaggi, tra cui:
- Dexing più veloce
- Minore utilizzo della memoria
- Generazione di codice migliorata (migliore allocazione dei registri, tabelle di stringhe più intelligenti )
- Migliore esperienza di debug durante l'esecuzione del codice
Non devi apportare modifiche al codice o al flusso di lavoro di sviluppo per usufruire di questi vantaggi, a meno che tu non abbia disattivato manualmente il compilatore D8 in precedenza.
Se hai impostato android.enableD8 su false in
gradle.properties, elimina il flag o impostalo su
true:
android.enableD8=true
Per i dettagli, consulta Nuovo compilatore DEX.
Desugaring incrementale
Per i progetti che utilizzano le funzionalità del linguaggio Java 8, il desugaring incrementale è abilitato per impostazione predefinita, il che può migliorare i tempi di build.
Il desugaring converte zucchero sintattico in un formato che il compilatore può elaborare in modo più efficiente.
Puoi disattivare il desugaring incrementale specificando quanto segue nel
file gradle.properties del progetto:
android.enableIncrementalDesugaring=false
Finestra di output semplificata
La console Gradle è stata sostituita dalla finestra Build che ha le schede Sincronizza e Build.
Per i dettagli su come utilizzare la nuova finestra Build semplificata, consultaMonitorare il processo di build.
Aggiornamenti batch e concorrenza di indicizzazione
I processi di sincronizzazione di Gradle e di indicizzazione dell'IDE sono ora molto più efficienti, riducendo il tempo perso per molte operazioni di indicizzazione ridondanti.
C++ e LLDB
Abbiamo apportato numerosi miglioramenti alla qualità e al rendimento nelle fasi di codifica, sincronizzazione, build e debug dello sviluppo in C++. I miglioramenti includono i seguenti:
-
Se lavori con progetti C++ di grandi dimensioni, dovresti notare un miglioramento significativo nella riduzione del tempo impiegato per la creazione dei simboli. Anche il tempo di sincronizzazione è notevolmente ridotto per i progetti di grandi dimensioni.
-
Il rendimento durante la build e la sincronizzazione con CMake è stato migliorato grazie a un riutilizzo più aggressivo dei risultati memorizzati nella cache.
-
L'aggiunta di formattatori ("pretty printer") per altre strutture di dati C++ semplifica la lettura dell'output LLDB.
-
LLDB ora funziona solo con Android 4.1 (livello API 16) e versioni successive.
Nota: il debug nativo con Android Studio 3.0 o versioni successive non funziona su Windows a 32 bit. Se utilizzi Windows a 32 bit e devi eseguire il debug del codice nativo, utilizza Android Studio 2.3.
Kotlin
Kotlin aggiornato alla versione 1.2.30
Android Studio 3.1 include Kotlin versione 1.2.30.
Codice Kotlin ora analizzato con il controllo lint della riga di comando
L'esecuzione di lint dalla riga di comando ora analizza le classi Kotlin.
Per ogni progetto su cui vuoi eseguire lint,
il repository Maven di Google deve essere incluso nel file build.gradle
di primo livello. Il repository Maven è già incluso per i progetti creati in
Android Studio 3.0 e versioni successive.
Strumenti per il rendimento
Eseguire il campionamento dei processi C++ nativi con CPU Profiler
Il CPU Profiler ora include una configurazione predefinita per registrare le tracce campionate dei thread nativi dell'app. Puoi utilizzare questa configurazione eseguendo il deployment dell'app su un dispositivo con Android 8.0 (livello API 26) o versioni successive e poi selezionando Campionato (nativo) dal menu a discesa delle configurazioni di registrazione di CPU Profiler. Dopodiché, registra e ispeziona una traccia come faresti normalmente.
Per tornare a tracciare i thread Java, seleziona una configurazione Campionato (Java) o Strumentato (Java).
Filtrare le tracce della CPU, i risultati dell'allocazione della memoria e i dump dell'heap
Il CPU Profiler e Memory Profiler includono una funzionalità di ricerca che ti consente di filtrare i risultati della registrazione di una traccia di metodi, delle allocazioni di memoria o del dump dell'heap.
Per eseguire la ricerca, fai clic su Filtra
nell'angolo in alto a destra del riquadro, digita
la query e premi Invio.
Suggerimento: puoi anche aprire il campo di ricerca premendo Ctrl + F (Comando + F su Mac).
Nella scheda Grafico a fiamma di CPU Profiler, gli stack di chiamate che includono metodi correlati alla query di ricerca vengono evidenziati e spostati sul lato sinistro del grafico.
Per ulteriori informazioni sul filtraggio in base al nome del metodo, della classe o del pacchetto, consulta Registrare e ispezionare le tracce di metodi.
Scheda Richiesta in Network Profiler
Il Network Profiler ora include una scheda Richiesta che fornisce dettagli sulle richieste di rete durante la sequenza temporale selezionata. Nelle versioni precedenti, Network Profiler forniva solo informazioni sulle risposte di rete.
Visualizzazione dei thread in Network Profiler
Dopo aver selezionato una parte della sequenza temporale in Network Profiler, puoi selezionare una delle seguenti schede per visualizzare maggiori dettagli sull'attività di rete durante questo periodo di tempo:
- Visualizzazione delle connessioni: fornisce le stesse informazioni delle versioni precedenti di Android Studio: elenca i file inviati o ricevuti durante la parte selezionata della sequenza temporale in tutti i thread della CPU dell'app. Per ogni richiesta, puoi ispezionare le dimensioni, il tipo, lo stato e la durata della trasmissione.
- Visualizzazione dei thread: mostra l'attività di rete di ciascun thread della CPU dell'app. Questa visualizzazione ti consente di ispezionare quali thread dell'app sono responsabili per ogni richiesta di rete.
Layout Inspector
Il Layout Inspector ha acquisito nuove funzionalità, tra cui alcune funzionalità fornite in precedenza dagli strumenti visualizzatore gerarchia e Pixel Perfect, ora deprecati:
- Pulsanti di zoom e scorciatoie da tastiera per navigare e ispezionare i layout
- Overlay della griglia di riferimento
- Possibilità di caricare un'immagine di riferimento e utilizzarla come overlay (utile per confrontare il layout con un mockup dell'interfaccia utente)
- Anteprima dell'albero secondario di rendering per isolare una visualizzazione in un layout complesso
Layout Editor
La tavolozza in the Layout Editor ha ricevuto molti miglioramenti:
- Riorganizzazione delle categorie per visualizzazioni e layout.
- Nuova categoria Comune per visualizzazioni e layout, che puoi aggiungere con un comando Preferiti.
- Ricerca migliorata per visualizzazioni e layout.
- Nuovi comandi per aprire documentazione per una visualizzazione specifica o un elemento di layout.
Puoi utilizzare il nuovo comando Converti visualizzazione nell'albero dei componenti o nell'editor di progettazione per convertire una visualizzazione o un layout in un altro tipo di visualizzazione o layout.
Ora puoi creare facilmente vincoli per gli elementi vicini alla visualizzazione selezionata utilizzando i
nuovi pulsanti Crea una connessione
nel controllo delle visualizzazioni nella parte superiore della finestra Attributi.
Esegui ed esecuzione immediata
Il comportamento dell'opzione Usa la stessa selezione per i lanci futuri nella finestra di dialogo Seleziona target di deployment è stato reso più coerente. Se l'opzione Usa la stessa selezione è abilitata, la finestra di dialogo Seleziona target di deployment si apre solo la prima volta che utilizzi il Esegui comando finché il dispositivo selezionato non è più connesso.
Quando il target è un dispositivo con Android 8.0 (livello API 26) o versioni successive, l'esecuzione immediata può eseguire il deployment delle modifiche alle risorse senza causare il riavvio dell'applicazione. Ciò è possibile perché le risorse sono contenute in un APK diviso.
Emulatore
Per i dettagli sulle novità e sulle modifiche apportate all'emulatore Android da Android Studio 3.0, consulta le note di rilascio di Android Emulator da versione 27.0.2 a versione 27.1.12.
I principali miglioramenti includono:
- Snapshot di avvio rapido per il salvataggio dello stato dell'emulatore e l'avvio più rapido, con la possibilità di utilizzare il comando Salva ora per salvare uno stato di avvio personalizzato.
- Schermata dell'emulatore senza finestra.
- Immagini di sistema per Android 8.0 (livello API 26), Android 8.1 (livello API 27) e Android P Anteprima per gli sviluppatori.
Miglioramenti all'interfaccia utente e all'esperienza utente
Altri suggerimenti, scorciatoie da tastiera, e messaggi utili
Abbiamo aggiunto suggerimenti e overlay di messaggi utili in molti punti throughout Android Studio.
Per visualizzare le scorciatoie da tastiera per molti comandi, tieni il puntatore del mouse sopra un pulsante finché non viene visualizzato il suggerimento.
Menu Strumenti > Android rimosso
Il menu Strumenti > Android è stato rimosso. I comandi che si trovavano in precedenza in questo menu sono stati spostati.
- Molti comandi sono stati spostati direttamente sotto il Strumenti menu.
- Il comando Sincronizza progetto con file Gradle è stato spostato nel menu File.
- Il comando Monitoraggio dispositivo è stato rimosso, come descritto di seguito.
Monitoraggio dispositivo disponibile dalla riga di comando
In Android Studio 3.1, il Monitoraggio dispositivo ha un ruolo meno importante rispetto a prima precedentemente. In molti casi, la funzionalità disponibile tramite il Monitoraggio dispositivo è ora fornita da strumenti nuovi e migliorati.
Consulta la documentazione di Monitoraggio dispositivo per istruzioni su come richiamare Monitoraggio dispositivo dalla riga di comando e per i dettagli sugli strumenti disponibili tramite Monitoraggio dispositivo.