Android Studio 3.4 (aprile 2019)
Android Studio 3.4 è una release principale che include una serie di nuove funzionalità e miglioramenti.
3.4.2 (luglio 2019)
Questo aggiornamento minore include varie correzioni di bug e miglioramenti delle prestazioni. Per visualizzare un elenco delle correzioni di bug più importanti, leggi il post correlato nel blog degli aggiornamenti delle release.
3.4.1 (maggio 2019)
Questo aggiornamento minore include varie correzioni di bug e miglioramenti delle prestazioni. Per visualizzare un elenco delle correzioni di bug più importanti, leggi il post correlato nel blog degli aggiornamenti delle release.
Problemi noti di 3.4.0
Il profiling è disattivato quando esegui il deployment dell'app su un dispositivo con Android Q Beta.
- Quando utilizzi la libreria di Data Binding,
LiveDataListener.onChanged()
potrebbe non riuscire con un NPE. Una correzione per questo problema sarà inclusa in Android Studio 3.4.1 ed è già disponibile nell'ultima versione di anteprima di Android Studio 3.5. (vedi issue #122066788)
IntelliJ IDEA 2018.3.4
L'IDE Android Studio di base è stato aggiornato con i miglioramenti di IntelliJ IDEA tramite la release 2018.3.4.
Aggiornamenti del plug-in Android per Gradle 3.4.0
Per informazioni sulle novità del plug-in Android per Gradle 3.4.0, consulta le note di rilascio.
Finestra di dialogo Nuova struttura del progetto
La nuova finestra di dialogo Struttura del progetto (PSD) semplifica l'aggiornamento delle dipendenze e la configurazione di diversi aspetti del progetto, come moduli, varianti di compilazione, configurazioni di firma e variabili di compilazione.
Puoi aprire il file PSD selezionando File > Struttura progetto dalla barra del menu. Puoi anche aprire il file PSD premendo Ctrl+Shift+Alt+S
su Windows e Linux o Command+;
(punto e virgola) su macOS. Di seguito sono riportate le descrizioni di alcune delle sezioni nuove e aggiornate del PSD.
Variabili
La sezione Nuove variabili del file PSD consente di creare e gestire le variabili di compilazione, ad esempio quelle per mantenere coerenti i numeri di versione delle dipendenze nel progetto.
- Visualizza e modifica rapidamente le variabili di compilazione già esistenti negli script di compilazione Gradle del progetto.
- Aggiungi nuove variabili di compilazione a livello di progetto o modulo direttamente dal PSD.
Nota: se i file di configurazione di compilazione esistenti assegnano valori tramite script Groovy complessi, potresti non essere in grado di modificarli tramite il file PSD. Inoltre, non puoi modificare i file di compilazione scritti in Kotlin utilizzando il PSD.
Moduli
Configura le proprietà che vengono applicate a tutte le varianti di build in un modulo esistente o aggiungi nuovi moduli al progetto dalla sezione Moduli. Ad esempio, qui puoi configurare le proprietà defaultConfig
o gestire le configurazioni di firma.
Dipendenze
Controlla e visualizza ogni dipendenza nel grafico delle dipendenze del tuo progetto, come risolto da Gradle durante la sincronizzazione del progetto, seguendo questi passaggi:
- Nel riquadro a sinistra del PSD, seleziona Dipendenze.
- Nel riquadro Moduli, seleziona un modulo per cui vuoi ispezionare le dipendenze risolte.
- Sul lato destro del file PSD, apri il riquadro Dipendenze risolte, visualizzato di seguito.
Puoi anche cercare e aggiungere rapidamente le dipendenze al progetto selezionando prima un modulo dalla sezione Dipendenze del file PSD, facendo clic sul pulsante (+) nella sezione Dipendenze dichiarate e selezionando il tipo di dipendenza da aggiungere.
A seconda del tipo di dipendenza selezionato, dovresti visualizzare una finestra di dialogo simile a quella riportata di seguito che ti aiuta ad aggiungere la dipendenza al modulo.
Crea varianti
In questa sezione del file PSD, crea e configura le varianti di compilazione e i gusti dei prodotti per ogni modulo del progetto. Puoi aggiungere segnaposto manifest, file ProGuard e assegnare chiavi di firma e altro ancora.
Suggerimenti
Visualizza gli aggiornamenti suggeriti per le dipendenze del progetto e le variabili di compilazione nella sezione Suggerimenti, come mostrato di seguito.
Nuovo Resource Manager
Gestione risorse è una nuova finestra degli strumenti per importare, creare, gestire e utilizzare le risorse nell'app. Puoi aprire la finestra degli strumenti selezionando Visualizza > Finestre degli strumenti > Gestione risorse dalla barra dei menu. Resource Manager ti consente di:
- Visualizza le risorse:puoi visualizzare in anteprima drawable, colori e layout per trovare rapidamente le risorse di cui hai bisogno.
- Importazione collettiva: puoi importare più risorse selezionabili contemporaneamente trascinandole nella finestra dello strumento Gestione risorse o utilizzando la procedura guidata Importa elementi selezionabili. Per accedere alla procedura guidata, seleziona il pulsante (+) nell'angolo in alto a sinistra della finestra dello strumento e poi seleziona Importa elementi grafici dal menu a discesa.
-
Converti gli SVG in oggetti
VectorDrawable
: puoi utilizzare la procedura guidata Importa elementi selezionabili per convertire le immagini SVG in oggettiVectorDrawable
. - Trascina gli asset:dalla finestra degli strumenti Gestione risorse, puoi trascinare gli elementi drawable sia nelle visualizzazioni di design che XML dell'editor di layout.
- Visualizza versioni alternative: ora puoi visualizzare versioni alternative delle tue risorse facendo doppio clic su una risorsa nella finestra Strumento. Questa visualizzazione mostra le diverse versioni che hai creato e i qualificatori inclusi.
- Visualizzazioni riquadri ed elenco:puoi modificare la visualizzazione all'interno della finestra dello strumento per visualizzare le risorse in arrangiamenti diversi.
Per scoprire di più, leggi la guida su come gestire le risorse dell'app.
Verifica degli ID build durante il profiling e il debug degli APK
Quando fornisci file di simboli di debug per le librerie condivise .so
all'interno del tuo APK, Android Studio verifica che l'ID build dei file di simboli forniti corrisponda all'ID build delle librerie .so
all'interno dell'APK.
Se compili le librerie native nell'APK con un ID build, Android Studio controlla se l'ID build nei file dei simboli corrisponde a quello nelle librerie native e rifiuta i file dei simboli in caso di mancata corrispondenza. Se non hai eseguito la compilazione con un ID build, la fornitura di file di simboli errati potrebbe causare problemi di debug.
R8 abilitato per impostazione predefinita
R8 integra la rimozione del codice non necessario, la riduzione, l'oscuramento, l'ottimizzazione e il dexing in un unico passaggio, con risultati in termini di miglioramenti notevoli delle prestazioni di compilazione. R8 è stato introdotto nel plug-in Android per Gradle 3.3.0 e ora è attivato per impostazione predefinita sia per i progetti di app che per le librerie Android che utilizzano il plug-in 3.4.0 e versioni successive.
L'immagine seguente fornisce una panoramica di alto livello della procedura di compilazione prima dell'introduzione di R8.
Ora, con R8, le operazioni di desugaring, shrinking, obfuscating, ottimizzazione e dexing (D8) vengono completate in un unico passaggio, come illustrato di seguito.
Tieni presente che R8 è progettato per funzionare con le regole ProGuard esistenti, quindi probabilmente non dovrai intraprendere alcuna azione per usufruire di R8. Tuttavia, poiché si tratta di una tecnologia diversa da ProGuard progettata specificamente per i progetti Android, la riduzione e l'ottimizzazione potrebbero comportare la rimozione di codice che ProGuard potrebbe non aver rimosso. Pertanto, in questa situazione improbabile, potresti dover aggiungere regole aggiuntive per mantenere il codice nell'output della compilazione.
Se riscontri problemi con l'utilizzo di R8, consulta le domande frequenti sulla compatibilità di R8 per verificare se esiste una soluzione al problema. Se una soluzione non è documentata,
segnala un bug.
Puoi disattivare R8 aggiungendo una delle seguenti righe al file gradle.properties
del progetto:
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
Nota: per un determinato tipo di build, se imposti useProguard
su false
nel file build.gradle
del modulo dell'app, il plug-in Android per Gradle utilizza R8 per ridurre il codice dell'app per quel tipo di build, indipendentemente dal fatto che tu disattivi R8 nel file gradle.properties
del progetto.
Navigation Editor ora supporta tutti i tipi di argomenti
Tutti i tipi di argomenti supportati dal componente di navigazione sono ora supportati in Editor di navigazione. Per ulteriori informazioni sui tipi supportati, consulta Trasferire dati tra destinazioni.
Miglioramenti all'editor di layout {:#layout-editor}
Il riquadro Attributi nell'editor di layout è stato semplificato in una singola pagina con sezioni che puoi espandere per visualizzare gli attributi che puoi configurare. Il riquadro Attributi include anche i seguenti aggiornamenti:
- Una nuova sezione Attributi dichiarati elenca gli attributi specificati dal file di layout e consente di aggiungerne rapidamente di nuovi.
- Il riquadro Attributi ora presenta anche indicatori accanto a ciascun attributo che sono solidi quando il valore dell'attributo è un riferimento alla risorsa e vuoti in caso contrario.
- Gli attributi con errori o avvisi sono ora evidenziati. Gli evidenziamenti rossi indicano errori (ad esempio quando utilizzi valori di layout non validi) e quelli arancioni indicano avvisi (ad esempio quando utilizzi valori hardcoded).
Nuova azione di intenzione per importare rapidamente le dipendenze
Se inizi a utilizzare determinati classi Jetpack e Firebase nel codice, una nuova azione di intenzione suggerisce di aggiungere la dipendenza della libreria Gradle richiesta al progetto, se non l'hai già fatto. Ad esempio, se fai riferimento alla classe WorkManager
senza prima importare la dipendenza android.arch.work:work-runtime
richiesta, un'azione di intenzione ti consente di farlo facilmente con un solo clic, come mostrato di seguito.
In particolare, poiché Jetpack ha rielaborato la libreria di supporto in pacchetti distinti più facili da gestire e aggiornare, questa azione di intenzione ti aiuta ad aggiungere rapidamente solo le dipendenze necessarie per i componenti Jetpack che vuoi utilizzare.