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 un elenco di correzioni di bug importanti, leggi il post correlato sul 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 associazioni di dati, LiveDataListener.onChanged() potrebbe non riuscire con una 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 principale di Android Studio è stato aggiornato con miglioramenti apportati da IntelliJ IDEA fino alla 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 di struttura del progetto (PSD) semplifica l'aggiornamento delle dipendenze e la configurazione di diversi aspetti del progetto, ad esempio moduli, varianti di build, configurazioni di firma e variabili di build.

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 puoi trovare le descrizioni di alcune delle sezioni nuove e aggiornate della guida 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 build già esistenti negli script di build Gradle del tuo 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 modificare questi valori tramite il PSD. Inoltre, non puoi modificare i file di build 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:

  1. Nel riquadro a sinistra del PSD, seleziona Dipendenze.
  2. Nel riquadro Moduli, seleziona un modulo per cui vuoi ispezionare le dipendenze risolte.
  3. 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 PSD, crea e configura varianti di build e versioni di prodotto per ciascun 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 degli strumenti, quindi seleziona Importa disegni di disegno dal menu a discesa.
  • Converti gli SVG in oggetti VectorDrawable: puoi utilizzare la procedura guidata Importa elementi selezionabili per convertire le immagini SVG in oggetti VectorDrawable.
  • 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 saperne di più, leggi la guida su come gestire le risorse delle app.

Controllo 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.

Prima di R8, ProGuard era un passaggio di compilazione diverso dal dexing e dalla desugaring.

Ora, con R8, le operazioni di desugaring, shrinking, obfuscating, ottimizzazione e dexing (D8) vengono completate in un unico passaggio, come illustrato di seguito.

Con R8, le operazioni di desugaring, shrinking, offuscamento, ottimizzazione e dexing vengono eseguite in un unico passaggio di compilazione.

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 Gradle utilizza R8 per ridurre il codice dell'app per quel tipo di build, a prescindere dalla disabilitazione di R8 nel file gradle.properties del progetto.

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 a Layout Editor {:#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 degli indicatori, visibili accanto a ogni attributo, che sono solidi quando il valore dell'attributo è un riferimento di risorsa e in caso contrario è vuoto.
  • Gli attributi con errori o avvisi sono ora evidenziati. Le evidenziazioni in rosso indicano gli errori (ad es. quando utilizzi valori di layout non validi), mentre le evidenziazioni arancioni indicano gli avvisi (ad esempio quando utilizzi valori impostati come hardcoded).

Nuova azione di intenzione per importare rapidamente le dipendenze

Se inizi a utilizzare determinate classi Jetpack e Firebase nel codice, una nuova azione di intenzione suggerisce di aggiungere al progetto la dipendenza richiesta dalla libreria Gradle, 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 dell'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 discreti 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.