Android Studio 3.1 (marzo 2018)
Android Studio 3.1.0 è una release importante che include una serie di nuove funzionalità e miglioramenti.
3.1.4 (agosto 2018)
Questo aggiornamento ad Android Studio 3.1 include le seguenti modifiche e correzioni:
- Il bundle Kotlin ora è la versione 1.2.50.
-
Vengono creati nuovi progetti con
kotlin-stdlib-jdk* artifacts
, invece che conkotlin-stdlib-jre*
artefatti, che sono ritirato. - L'analisi R8 delle regole ProGuard è stata migliorata.
- Sono stati risolti i bug seguenti:
-
Il tentativo di eseguire la classe principale Kotlin non è riuscito con un errore:
"Error: Could not find or load main class..."
- R8 è entrato in un ciclo infinito durante l'esecuzione di determinate ottimizzazioni.
- Utilizzo del comando Riesegui test non riusciti nella finestra Esegui a volte restituisce erroneamente il messaggio "Nessun test trovato".
-
D8 non ha gestito 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
. Ora il compilatore utilizza le annotazioni degli strumenti del progetto di base, se disponibili. - Android Studio ha avuto un arresto anomalo durante le transizioni dei frammenti quando si utilizzano profiler.
- Il debugger si è arrestato in modo anomalo durante il debug di un layout con una casella di testo.
- D8 non è riuscito a leggere alcuni file ZIP con caratteri speciali.
3.1.3 (giugno 2018)
Questo aggiornamento ad Android Studio 3.1 include correzioni per i seguenti bug:
- Le perdite di memoria hanno causato il rallentamento e l'interruzione della risposta di Android Studio dopo l'utilizzo di Layout Editor. Questo aggiornamento include correzioni per la maggior parte di questi problemi. Abbiamo intenzione di rilasciare a breve un altro aggiornamento per risolvere eventuali perdite di memoria aggiuntive.
- Alcune applicazioni create con D8 hanno avuto un arresto anomalo su alcuni tablet Verizon Ellipsis.
-
L'installazione delle applicazioni create con D8 non è riuscita con un
INSTALL_FAILED_DEXOPT
errore 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 sono arrestate in modo anomalo sui dispositivi con Android 4.4 (livello API 19).
-
A volte Android Studio non riusciva ad avviarsi, con un messaggio di errore
ProcessCanceledException
durante l'inizializzazione della classe percom.intellij.psi.jsp.JspElementType
.
3.1.2 (aprile 2018)
Questo aggiornamento ad Android Studio 3.1 include correzioni per i seguenti bug:
- In alcuni casi, Android Studio si è bloccato a tempo indeterminato durante l'uscita.
-
Build configurate con set di origini non riuscita con il seguente messaggio quando è stata abilitata l'esecuzione istantanea:
"The SourceSet name is not recognized by the Android Gradle Plugin."
- Quando è abilitata l'esecuzione istantanea, le build di nuovi progetti Kotlin non riescono quando 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 compilazione 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 D8 non prendeva in considerazione alcuni riflettenti.
Questo aggiornamento include anche le modifiche che consentono di eseguire controlli lint in esecuzione da Gradle molto più velocemente in alcuni scenari.
3.1.1 (aprile 2018)
Questo aggiornamento ad Android Studio 3.1 include correzioni per i seguenti bug:
-
In alcuni casi, quando un progetto creato in Android Studio 3.0 è stato aperto per la prima volta in Android Studio 3.1, l'attività di compilazione consapevole di Gradle è stata rimossa dall'area Prima del lancio in Configurazioni di esecuzione/debug. Il risultato è che i progetti non venivano creati È stato fatto clic sul pulsante Esegui o Debug, che a sua volta ha causato errori come implementazione di APK errati e arresti anomali durante l'utilizzo Corsa istantanea.
Per risolvere questo problema, Android Studio 3.1.1 aggiunge il comando alla configurazione dell'esecuzione per i progetti privi di questa voce. Questa modifica viene eseguita dopo la prima sincronizzazione Gradle, quando il progetto viene caricato.
- Il debugger si arrestava in modo anomalo durante il debug di un layout con una casella di testo se era avanzata la profilazione è stata attivata.
- Android Studio si è bloccato dopo che hai fatto clic su Varianti build.
- I file AAR (archivio Android) sono stati estratti due volte, una volta durante il Gradle durante il processo di sincronizzazione e una volta durante il processo di creazione di Gradle.
- Mancano elementi in alcuni drawable vettoriali importati da file SVG.
-
L'avviso relativo al ritiro di
compile
la configurazione delle dipendenze è stata aggiornata con indicazioni migliori in merito le configurazioniimplementation
eapi
. Per dettagli sulla migrazione dall'utilizzo della configurazionecompile
, consulta la documentazione relativa alle nuove configurazioni delle dipendenze.
Programmazione/IDE
IntelliJ 2017.3.3
L'IDE Android Studio di base è stato aggiornato con i miglioramenti di IntelliJ IDEA tramite la release 2017.3.3. I miglioramenti includono un'analisi migliore del flusso di controllo per raccolte e stringhe, un'inferenza della nullabilità migliorata, nuove correzioni rapide e molto altro.
Per maggiori dettagli, consulta le note di rilascio di JetBrains per le versioni di IntelliJ IDEA 2017.2 e 2017.3, come nonché le note di rilascio di JetBrains aggiornamenti delle correzioni di bug.
Miglioramenti all'editing di SQL con Room
Quando utilizzi il Libreria di database delle stanze puoi sfruttare i diversi miglioramenti apportati alla modifica SQL:
- Il completamento del codice all'interno di un
Query
comprende tabelle SQL (entità), colonne, parametri di query, alias, join, sottoquery e clausole WITH. - L'evidenziazione della sintassi SQL ora funziona.
- Puoi fare clic con il tasto destro del mouse sul nome di una tabella in SQL e rinominarla, riscrive il codice Java o Kotlin corrispondente (incluso, ad esempio, il tipo restituito della query). La ridenominazione funziona anche nell'altra direzione, quindi la ridenominazione di un campo o di una classe Java riscrive il codice SQL corrispondente.
- Gli utilizzi 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 Control (Comando su Mac) mentre fai clic sull'entità.
Per informazioni sull'utilizzo di SQL con Room, consulta Salva i dati in un ambiente utilizzando Room.
Aggiornamenti all'associazione dei dati
Questo aggiornamento include diversi miglioramenti per il data binding:
-
Ora puoi utilizzare un oggetto
LiveData
come campo osservabile nelle espressioni di associazione dei dati. La classeViewDataBinding
ora include un nuovo metodosetLifecycle()
che viene utilizzato per osservare gli oggettiLiveData
. -
La
ObservableField
ora il corso può accettare altriObservable
nel suo costruttore. -
Puoi visualizzare l'anteprima di un nuovo compilatore incrementale per l'associazione di dati . Per i dettagli del nuovo compilatore e le istruzioni per l'abilitazione vedi Compilatore di associazioni dati V2.
I vantaggi del nuovo compilatore includono quanto segue:
-
ViewBinding
di corsi vengono generati da Android Plug-in per Gradle prima del compilatore Java. - Le librerie mantengono le classi di binding generate quando l'app viene compilata, anziché essere rigenerate ogni volta. In questo modo, è possibile migliorare notevolmente le prestazioni dei progetti multi-modulo.
-
Compilatore e Gradle
D8 è il file DEX predefinito compilatore
Il compilatore D8 viene ora utilizzato per impostazione predefinita per generare il bytecode DEX.
Questo nuovo compilatore DEX offre diversi vantaggi, tra cui:
- Decodifica più rapida
- Ridurre l'utilizzo della memoria
- Generazione del codice migliorata (allocazione dei registri migliore, stringhe più intelligenti )
- Esperienza di debug migliore durante l'esecuzione del codice
Non devi apportare modifiche al codice o allo sviluppo del flusso di lavoro per usufruire di questi vantaggi, a meno che in precedenza non avessi richiesto disabilitato il compilatore D8.
Se imposti android.enableD8
su false
nel
gradle.properties
, elimina il flag o impostalo su
true
:
android.enableD8=true
Per maggiori dettagli, vedi Nuovo compilatore DEX.
Incrementale dissuadere
Per i progetti che utilizzano funzionalità del linguaggio Java 8, la desugaring incrementale è abilitata per impostazione predefinita, il che può migliorare i tempi di compilazione.
Desugaring effettua una conversione zucchero sintattico in un modulo che il compilatore può elaborare in modo più efficiente.
Puoi disattivare la dezugaring incrementale specificando quanto segue in
il file gradle.properties
del tuo progetto:
android.enableIncrementalDesugaring=false
Finestra di output semplificata
La Gradle Console è stata sostituita con la classe Build con le schede Sincronizzazione e Crea.
Per maggiori dettagli su come utilizzare la nuova finestra Crea semplificata: consultaMonitorare la build di archiviazione.
Concorrenza degli aggiornamenti batch e dell'indicizzazione
Le procedure di indicizzazione di Gradle Sync e IDE sono ora molto più efficienti, riducendo il tempo perso per molte operazioni di indicizzazione ridondanti.
C++ e LLDB
Abbiamo apportato molti miglioramenti a livello di qualità e prestazioni per quanto riguarda di creazione e debug dello sviluppo C++. I miglioramenti includono seguenti:
-
Se utilizzi progetti C++ di grandi dimensioni, dovresti notare un miglioramento significativo nella riduzione del tempo impiegato per creare i simboli. Anche il tempo di sincronizzazione è molto per i progetti di grandi dimensioni.
-
Le prestazioni durante la compilazione e la sincronizzazione con CMake sono state migliorate tramite un riutilizzo più aggressivo dei risultati memorizzati nella cache.
-
Aggiunta di formattatori ("stampanti accattivanti") per altre strutture di dati C++ semplifica la lettura dell'output LLDB.
-
LLDB ora funziona solo con Android 4.1 (livello API 16) e superiori.
Nota: debug nativo con Android Studio 3.0 maggiore 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
Upgrade di Kotlin alla versione 1.2.30
Android Studio 3.1 include Kotlin versione 1.2.30.
Il codice Kotlin ora è analizzato controllo lint della riga di comando
Esecuzione del lint dalla riga di comando ora analizza le tue classi Kotlin.
Per ogni progetto su cui vuoi eseguire lint,
Maven di Google
repository deve essere incluso nel 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
Esempi di processi C++ nativi con il profilo CPU
CPU Profiler include una configurazione predefinita per registrare tracce campionate dei dati dell'app i thread nativi. Puoi utilizzare questa configurazione dispiegando l'app su un dispositivo con Android 8.0 (livello API 26) o versioni successive e poi selezionando Campionata (nativa) dal menu a discesa delle configurazioni di registrazione di CPU Profiler. In seguito, registrare ispeziona una traccia come faresti normalmente.
Puoi modificare le impostazioni predefinite, come l'intervallo di campionamento, la creazione di uno configurazione della registrazione.
Per tornare al monitoraggio dei thread Java, seleziona una configurazione Sampled (Java) o Instrumented (Java).
Filtra le tracce della CPU, i risultati di allocazione della memoria e i dump dell'heap
CPU Profiler Memory Profiler include una funzionalità di ricerca che ti consente di filtrare i risultati per impedire la registrazione di un metodo traccia, allocazioni della memoria o 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 aprire il campo di ricerca anche premendo Ctrl + F (Comando + F su Mac).
Nella scheda Flame Chart di CPU Profiler, vengono chiamati stack che includono i metodi correlati alla tua query di ricerca vengono evidenziati e spostati a sinistra lato del grafico.
Per ulteriori informazioni sull'applicazione di filtri per metodo, classe o nome del pacchetto, consulta: Registra e ispeziona le tracce del metodo.
Scheda Richiesta in Network Profiler
Network Profiler ora include una scheda Richiesta che fornisce dettagli sulla rete richieste durante il periodo di tempo selezionato. Nelle versioni precedenti, Network Profiler forniva solo informazioni sulle risposte di rete.
Visualizzazione thread in Network Profiler
Dopo aver selezionato una parte della sequenza temporale nella Network Profiler, puoi selezionare una delle le schede seguenti per visualizzare ulteriori dettagli sull'attività di rete durante la periodo di tempo:
- Connection View: fornisce le stesse informazioni delle versioni precedenti Android Studio: elenca i file inviati o ricevuti durante parte selezionata della sequenza temporale in tutti i thread della CPU dell'app. Per ogni richiesta, puoi controllare le dimensioni, il tipo, lo stato e la durata della trasmissione.
- Visualizzazione thread: mostra l'attività di rete di ciascuno dei thread della CPU dell'app. Questa visualizzazione ti consente di controllare quali thread della tua app sono responsabili per ogni richiesta di rete.

Layout Inspector
Lo strumento Layout Inspector ha acquisito nuovi funzionalità, incluse alcune funzionalità precedentemente fornite dal modello Visualizzazione gerarchia e strumenti Pixel Perfect:
- Pulsanti di zoom e scorciatoie da tastiera per navigare e ispezionare i layout
- Overlay griglia di riferimento
- Possibilità di caricare un'immagine di riferimento e utilizzarla come overlay (utile per confrontando il tuo layout con una simulazione dell'interfaccia utente)
- Visualizzare l'anteprima della struttura ad albero secondaria per isolare una visualizzazione in un layout complesso

Editor layout
La tavolozza della Editor layout ha ricevuto molti miglioramenti:
- Riorganizzazione delle categorie per visualizzazioni e layout.
- Nuova categoria Comune per visualizzazioni e layout, che puoi può essere aggiunto con un comando Favorite.
- Miglioramento cerca visualizzazioni e layout.
- Nuovi comandi per apertura documentazione per uno specifico elemento di visualizzazione o layout.
Puoi utilizzare il nuovo comando Converti visualizzazione nel 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 il metodo
nuova Crea una connessione
nella finestra di ispezione delle visualizzazioni nella parte superiore della finestra Attributi.
Esecuzione e esecuzione istantanea
Il comportamento dell'opzione Utilizza la stessa selezione per il futuro avvia l'opzione nella sezione Seleziona la destinazione del deployment è stata resa più coerente. Se l'opzione Usa stessa selezione è attiva, la finestra di dialogo Seleziona destinazione di deployment si apre solo la prima volta che utilizzi il comando Esegui finché il dispositivo selezionato non è più collegato.
Quando scegli come target un dispositivo con Android 8.0 (livello API 26) o versioni successive, Istantanea Run può eseguire il deployment modifiche alle risorse senza causare il riavvio dell'applicazione. Questo è possibile perché le risorse sono contenute in un APK diviso.
Emulatore
Per informazioni dettagliate sulle novità e sulle modifiche nell'emulatore dall'Android Studio 3.0, consulta le note di rilascio dell'emulatore Android dalla versione 27.0.2 alla versione 27.1.12.
I principali miglioramenti includono:
- Istantanee di Avvio rapido per salvare lo stato dell'emulatore e un avvio più rapido, con la possibilità di utilizzare il comando Save now (Salva ora) per salvare un stato iniziale personalizzato.
- Schermata dell'emulatore senza finestre.
- Immagini di sistema per Android 8.0 (livello API 26), Android 8.1 (livello API 27) e Anteprima per gli sviluppatori di Android P.
Interfaccia utente ed esperienza utente miglioramenti
Altre descrizioni comando, scorciatoie da tastiera e messaggi utili
Abbiamo aggiunto descrizioni comando e overlay di messaggi utili in molti punti. in Android Studio.
Per visualizzare le scorciatoie da tastiera per molti comandi, tieni premuto il cursore del mouse sopra un pulsante finché non viene visualizzata la descrizione comando.
Strumenti > Menu Android rimosso
Il menu Strumenti > Android è stato rimosso. I comandi che in precedenza si trovavano in questo menu sono stati spostati.
- Molti comandi sono stati spostati direttamente nel menu Strumenti o dal menu Fogli Google.
- Il comando Sincronizza il progetto con i file Gradle è stato spostato in il menu File.
- Il comando Monitoraggio dispositivi è stato rimosso, descritti di seguito.
Monitoraggio dispositivo disponibile dalla riga di comando,
In Android Studio 3.1, il Monitor dei dispositivi svolge un ruolo meno importante rispetto al passato. In molti casi, la funzionalità disponibile tramite Lo strumento Monitoraggio dispositivi ora è fornito da strumenti nuovi e migliorati.
Consulta le Documentazione relativa a Monitoraggio dispositivo per istruzioni per richiamare Device Monitor dalla riga di comando e per gli strumenti disponibili tramite il Monitoraggio dispositivi.