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 secondario include varie correzioni di bug e miglioramenti delle prestazioni. Per visualizzare un elenco di correzioni di bug degne di nota, leggi il post correlato sul blog degli aggiornamenti delle release.

3.4.1 (maggio 2019)

Questo aggiornamento secondario include varie correzioni di bug e miglioramenti delle prestazioni. Per visualizzare un elenco di correzioni di bug degne di nota, leggi il post correlato sul blog degli aggiornamenti delle release.

Problemi noti della versione 3.4.0

  • La profilazione viene disattivata quando esegui il deployment dell'app su un dispositivo che esegue Android Q beta.

  • Quando utilizzi la libreria di associazione dati, LiveDataListener.onChanged() potrebbe non riuscire con un NPE. Una correzione al problema verrà inclusa in Android Studio 3.4.1 ed è già disponibile nell'ultima versione di anteprima di Android Studio 3.5. (vedi il problema n. 122066788)

IntelliJ IDEA 2018.3.4

L'IDE principale di Android Studio è stato aggiornato con i miglioramenti apportati da IntelliJ IDEA durante la release 2018.3.4.

Aggiornamenti del plug-in Android Gradle 3.4.0

Per informazioni sulle novità del plug-in Android per Gradle 3.4.0, consulta le relative note di rilascio.

Finestra di dialogo Nuova struttura del progetto

La nuova finestra di dialogo struttura di progetto (PSD) semplifica l'aggiornamento delle dipendenze e la configurazione di diversi aspetti del progetto, come moduli, varianti di build, configurazioni di firma e variabili di build.

Per aprire il PSD, seleziona File > Struttura del progetto dalla barra dei menu. Puoi aprire il PSD anche 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 del PSD.

Variabili

La nuova sezione delle variabili del PSD consente di creare e gestire variabili di build, ad esempio quelle per mantenere coerenti i numeri di versione per le dipendenze in tutto il progetto.

  • Visualizza e modifica rapidamente le variabili di build già presenti negli script di build Gradle del tuo progetto.
  • Aggiungi nuove variabili di build 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 tuo progetto dalla sezione Moduli. Ad esempio, qui puoi configurare le proprietà defaultConfig o gestire le configurazioni di firma.

Dipendenze

Ispeziona e visualizza ogni dipendenza nel grafico delle dipendenze del 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 il quale vuoi esaminare le dipendenze risolte.
  3. Sul lato destro del PSD, apri il riquadro Dipendenze risolte, mostrato di seguito.

Puoi anche cercare e aggiungere rapidamente dipendenze al tuo progetto selezionando un modulo dalla sezione Dipendenze del PSD, facendo clic sul pulsante (+) nella sezione Dipendenze dichiarate e selezionando il tipo di dipendenza che vuoi aggiungere.

A seconda del tipo di dipendenza selezionato, dovresti visualizzare una finestra di dialogo, simile a quella riportata di seguito, che consente di aggiungere la dipendenza al modulo.

Crea varianti

In questa sezione del PSD, crea e configura varianti di build e versioni di prodotto per ogni modulo del tuo progetto. Puoi aggiungere segnaposto per i manifest, aggiungere file ProGuard e assegnare chiavi di firma e altro ancora.

Suggerimenti

Consulta gli aggiornamenti suggeriti per le dipendenze del progetto e le variabili di build nella sezione Suggerimenti, come mostrato di seguito.

Nuovo Resource Manager

Resource Manager è una nuova finestra degli strumenti per importare, creare, gestire e utilizzare le risorse nella tua app. Puoi aprire la finestra degli strumenti selezionando Visualizza > Finestre degli strumenti > Resource Manager dalla barra dei menu. Resource Manager ti consente di:

  • Visualizza le risorse: puoi visualizzare l'anteprima di disegni, colori e layout per trovare rapidamente le risorse di cui hai bisogno.
  • Importazione collettiva: puoi importare più asset disegnabili contemporaneamente trascinandoli nella finestra degli strumenti Resource Manager o utilizzando la procedura guidata Importa disegnabili. Per accedere alla procedura guidata, seleziona il pulsante (+) nell'angolo in alto a sinistra della finestra degli strumenti, quindi Importa disegni dal menu a discesa.
  • Converti SVG in oggetti VectorDrawable: puoi utilizzare la procedura guidata Importa disegni per convertire le immagini SVG in oggetti VectorDrawable.
  • Trascina gli asset: dalla finestra degli strumenti Resource Manager, puoi trascinare i disegni nella visualizzazione Struttura e XML dell'Editor di layout.
  • Visualizza versioni alternative: ora puoi visualizzare le versioni alternative delle tue risorse facendo doppio clic su una risorsa nella finestra dello strumento. Questa visualizzazione mostra le diverse versioni create e i qualificatori inclusi.
  • Visualizzazioni riquadri ed elenchi:puoi modificare la visualizzazione nella finestra degli strumenti per visualizzare le risorse in modalità diverse.

Per saperne di più, leggi la guida su come gestire le risorse delle app.

Controllo degli ID build durante la profilazione e il debug degli APK

Quando fornisci file di simboli di debug per le librerie condivise .so all'interno dell'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 crei le librerie native nell'APK con un ID build, Android Studio controlla se l'ID build nei file di simboli corrisponde all'ID build nelle librerie native e rifiuta i file di simboli in caso di mancata corrispondenza. Se non hai creato con un ID build, fornire file di simboli errati potrebbe causare problemi di debug.

R8 è abilitato per impostazione predefinita

R8 integra le operazioni di desugaring, riduzione, offuscamento, ottimizzazione e dexing, il tutto in un unico passaggio, offrendo notevoli miglioramenti delle prestazioni della build. R8 è stato introdotto nel plug-in Android Gradle 3.3.0 e ora è abilitato per impostazione predefinita per i progetti di app e librerie Android utilizzando il plug-in 3.4.0 e versioni successive.

La seguente immagine fornisce una panoramica generale del processo di compilazione prima dell'introduzione di R8.

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

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

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

Tieni presente che R8 è progettato per funzionare con le regole ProGuard esistenti, pertanto probabilmente non dovrai intraprendere alcuna azione per usufruire di R8. Tuttavia, la riduzione e l'ottimizzazione potrebbero comportare la rimozione di codice diverso da ProGuard, ma poiché si tratta di una tecnologia diversa da quella di ProGuard progettata appositamente per i progetti Android. Quindi, in questa situazione improbabile, potresti dover aggiungere ulteriori regole per mantenere questo codice nell'output della build.

Se riscontri problemi con R8, leggi le domande frequenti sulla compatibilità di R8 per verificare se esiste una soluzione al tuo problema. Se la soluzione non è documentata, segnala un bug. Puoi disabilitare 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 disattivazione di R8 nel file gradle.properties del progetto.

Tutti i tipi di argomenti supportati dal componente di navigazione ora sono supportati nell'editor di navigazione. Per maggiori informazioni sui tipi supportati, consulta Trasmettere dati tra destinazioni.

Miglioramenti dell'editor di layout {:#layout-editor}

Il riquadro Attributi nell'Editor di layout è stato semplificato in un'unica pagina con sezioni che puoi espandere per mostrare gli attributi da configurare. Il riquadro Attributi include anche i seguenti aggiornamenti:

  • La nuova sezione Attributi dichiarati elenca gli attributi specificati nel file di layout e consente di aggiungerne rapidamente di nuovi.
  • Il riquadro Attributi ora presenta anche indicatori accanto a ogni attributo che sono in tinta unita quando il valore dell'attributo è un riferimento a una risorsa, altrimenti vuoto.
  • Gli attributi con errori o avvisi sono ora evidenziati. Le evidenziazioni rosse indicano gli errori (ad esempio, quando utilizzi valori di layout non validi), mentre le evidenziazioni arancioni indicano gli avvisi (ad esempio quando utilizzi valori impostati come hardcoded).

Nuova azione dell'intenzione per importare rapidamente le dipendenze

Se inizi a utilizzare determinate classi Jetpack e Firebase nel codice, una nuova azione dell'intenzione suggerisce di aggiungere al progetto la dipendenza della libreria Gradle richiesta, se non l'hai ancora 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 riorganizzato la libreria di supporto in pacchetti discreti più facili da gestire e aggiornare, questa azione intenzionale consente di aggiungere rapidamente solo le dipendenze necessarie per i componenti Jetpack che vuoi utilizzare.