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:
- La versione di Kotlin inclusa è ora la 1.2.50.
-
I nuovi progetti vengono creati con
kotlin-stdlib-jdk* artifacts
, anziché con gli elementikotlin-stdlib-jre*
, che sono deprecati. - L'analisi R8 delle regole di ProGuard è stata migliorata.
- I seguenti bug sono stati corretti:
-
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.
- L'utilizzo del comando Esegui di nuovo i test non riusciti nella finestra Esegui a volte restituiva 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 ha avuto un arresto 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. A breve intendiamo rilasciare un altro aggiornamento per risolvere ulteriori perdite di memoria.
- Alcune applicazioni create con D8 hanno avuto un arresto anomalo su alcuni tablet Verizon Ellipsis.
-
L'installazione di applicazioni create con D8 non è riuscita con un
INSTALL_FAILED_DEXOPT
errore su 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 hanno avuto un arresto 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 bloccava indefinitamente durante l'uscita.
-
Le build configurate con i set di origini non sono riuscite con il seguente messaggio quando è stata attivata l'esecuzione istantanea:
"The SourceSet name is not recognized by the Android Gradle Plugin."
- Quando la funzionalità di esecuzione immediata era attiva, le build di nuovi progetti Kotlin non andavano a buon fine 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 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 di D8 non teneva conto di alcune invocazioni riflessive.
Questo aggiornamento include anche modifiche che rendono molto più rapida l'esecuzione dei controlli lint da Gradle 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. Di conseguenza, i progetti non venivano compilati quando si faceva clic sul pulsante Esegui o Debug, il che a sua volta causava errori come il deployment di APK errati e arresti anomali durante l'utilizzo di Instant Run.
Per risolvere il problema, Android Studio 3.1.1 aggiunge il compito Make consapevole di Gradle alla configurazione di esecuzione per i progetti in cui manca questa voce. Questa modifica avviene dopo la prima sincronizzazione di Gradle quando il progetto viene caricato.
- Il debugger ha avuto un arresto anomalo durante il debug di un layout con una casella di testo se era attivata la profilazione avanzata.
- Android Studio si è bloccato dopo aver fatto clic su Build Variants (Varianti di build).
- I file AAR (Android Archive) sono stati estratti due volte, una volta durante il processo di sincronizzazione di Gradle e una volta durante il processo di compilazione di Gradle.
- Alcuni elementi non erano presenti in alcuni elementi grafici vettoriali importati da file SVG.
-
L'avviso relativo al ritiro della configurazione delle dipendenze
compile
è stato aggiornato con indicazioni migliori sulle configurazioniimplementation
eapi
. Per dettagli sulla migrazione dall'utilizzo della configurazionecompile
, consulta la documentazione relativa alle nuove configurazioni delle dipendenze.
Codifica/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 nullità 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, nonché le note di rilascio di JetBrains per aggiornamenti di correzione dei bug.
Miglioramenti all'editing di SQL con Room
Quando utilizzi la libreria di database Room, puoi usufruire di diversi miglioramenti all'editing 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, il che comporta anche la riscrittura del codice Java o Kotlin corrispondente (incluso, ad esempio, il tipo di ritorno 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 di SQL vengono visualizzati quando utilizzi 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 Salvare i dati in un database locale 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 classe
ObservableField
ora può accettare altri oggettiObservable
nel suo costruttore. -
Puoi visualizzare l'anteprima di un nuovo compilatore incrementale per le tue classi di binding dei dati. Per informazioni dettagliate su questo nuovo compilatore e sulle istruzioni per attivarlo, consulta Data Binding Compiler 2.0.
I vantaggi del nuovo compilatore includono:
-
Le classi
ViewBinding
vengono generate dal plug-in Android 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.
-
Le classi
Compilatore e Gradle
D8 è il compilatore DEX predefinito
Il compilatore D8 viene ora utilizzato per impostazione predefinita per la generazione di codice bytecode DEX.
Questo nuovo compilatore DEX offre diversi vantaggi, tra cui:
- Decodifica più rapida
- Ridurre l'utilizzo della memoria
- Generazione di codice migliorata (allocazione dei registri migliore, tavole di stringhe più intelligenti)
- Esperienza di debug migliore durante l'esecuzione del codice
Per usufruire di questi vantaggi, non è necessario apportare modifiche al codice o al flusso di lavoro di sviluppo, a meno che in precedenza non sia stato disattivato manualmente il compilatore D8.
Se imposti android.enableD8
su false
in
gradle.properties
, elimina il flag o impostalo su
true
:
android.enableD8=true
Per maggiori dettagli, vedi Nuovo compilatore DEX.
Rimozione di codice non necessario incrementale
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.
La rimozione degli elementi non necessari consente di convertire lo zucchero sintattico in una forma che il compilatore può elaborare in modo più efficiente.
Puoi disattivare la rimozione di zucchero 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 contiene le schede Sync e Build.
Per informazioni dettagliate su come utilizzare la nuova finestra Compilazione semplificata, consulta Monitorare la procedura di compilazione.
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 alla qualità e alle prestazioni nelle fasi di programmazione, sincronizzazione, compilazione e debug dello sviluppo in C++. I miglioramenti includono:
-
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 è notevolmente ridotto 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.
-
L'aggiunta di formattatori ("pretty printer") per più strutture di dati C++ semplifica la lettura dell'output di 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
Upgrade di Kotlin alla versione 1.2.30
Android Studio 3.1 include Kotlin versione 1.2.30.
Il codice Kotlin ora viene analizzato con il controllo lint a 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
Esempi di processi C++ nativi con il profilo CPU
CPU Profiler ora include una configurazione predefinita per registrare le tracce campionate dei thread nativi della tua app. 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. Dopodiché, registra e controlla una traccia come faresti normalmente.
Puoi modificare le impostazioni predefinite, ad esempio l'intervallo di campionamento, creando una configurazione di 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 e Memory Profiler includono una funzionalità di ricerca che consente di filtrare i risultati della registrazione di una traccia del metodo, delle allocazioni di memoria o del dump dell'heap.
Per eseguire una 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 forma di fiamma di Profiler della CPU, le serie di chiamate che includono metodi correlati alla query di ricerca sono evidenziate e spostate sul lato sinistro del grafico.
Per ulteriori informazioni sull'applicazione di filtri in base al metodo, alla classe o al nome del pacchetto, consulta Registrare e ispezionare le tracce dei metodi.
Scheda Richiesta in Network Profiler
Network Profiler now includes a Request tab that provides details about network requests during the selected timeline. Nelle versioni precedenti, Network Profiler forniva solo informazioni sulle risposte di rete.
Visualizzazione Thread in Network Profiler
Dopo aver selezionato una parte della cronologia in Network Profiler, puoi selezionare una delle seguenti schede per visualizzare ulteriori dettagli sull'attività di rete durante quel 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 controllare le dimensioni, il tipo, lo stato e la durata della trasmissione.
- Visualizzazione thread: mostra l'attività di rete di ciascun thread della CPU della tua app. Questa visualizzazione ti consente di controllare quali thread della tua app sono responsabili di ogni richiesta di rete.
Layout Inspector
Layout Inspector ha acquisito nuove funzionalità, tra cui alcune precedentemente fornite dagli strumenti Hierarchy Viewer e Pixel Perfect ritirati:
- 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)
- Esegui il rendering dell'anteprima del sottoalbero per isolare una vista in un layout complesso
Layout Editor
La Tavolozza nell'editor di layout è stata migliorata in diversi modi:
- Riorganizzazione delle categorie per visualizzazioni e layout.
- Nuova categoria Comune per visualizzazioni e layout, che puoi aggiungere con un comando Preferiti.
- Ricerca di visualizzazioni e layout migliorata.
- Nuovi comandi per aprire la documentazione di un elemento di layout o di una visualizzazione specifica.
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 nell'ispettore della visualizzazione nella parte superiore della finestra Attributi.
Esegui ed Esegui istantaneo
Il comportamento dell'opzione Usa la stessa selezione per i lanci futuri nella finestra di dialogo Seleziona destinazione di deployment è stato reso 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, Esecuzione istantanea può implementare le modifiche alle risorse senza causare il riavvio dell'applicazione. Questo è possibile perché le risorse sono contenute in un APK suddiviso.
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 il salvataggio dello stato dell'emulatore e un 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 Developer Preview.
Miglioramenti all'interfaccia utente e all'esperienza utente
Altre descrizioni comando, scorciatoie da tastiera e messaggi utili
Abbiamo aggiunto descrizioni comando e messaggi utili in molti punti di 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.
Menu Strumenti > 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 sotto il menu Strumenti.
- Il comando Sincronizza il progetto con i file Gradle è stato spostato nel menu File.
- Il comando Monitor dispositivi è stato rimosso, come descritto di seguito.
Monitor dei dispositivi 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 Monitor dei dispositivi ora è fornita da strumenti nuovi e migliorati.
Consulta la documentazione di Device Monitor per istruzioni su come richiamare Device Monitor dalla riga di comando e per i dettagli degli strumenti disponibili tramite Device Monitor.