Versioni precedenti

Di seguito sono riportate le note di rilascio di Android Studio 3.6 e versioni precedenti e del plug-in Android Gradle 3.6.0 e versioni precedenti.

Versioni precedenti di Android Studio

3.6 (febbraio 2020)

Android Studio 3.6 è una release principale che include una serie di nuove funzionalità e miglioramenti.

Vorremmo inoltre ringraziare tutti i collaboratori della community che hanno contribuito a questa pubblicazione.

3.6.3 (aprile 2020)

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

3.6.2 (marzo 2020)

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

3.6.1 (febbraio 2020)

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

Strumenti di progettazione

Questa versione di Android Studio include aggiornamenti a diversi strumenti di progettazione, tra cui l'Editor del layout e il Resource Manager.

Visualizzazione divisa e zoom negli editor di progettazione

la visualizzazione divisa mostra contemporaneamente la visualizzazione Struttura e Testo

In questa release sono inclusi i seguenti aggiornamenti agli editor del design visivo:

  • Gli editor di progettazione, come l'editor di layout e l'editor di navigazione, ora offrono una visualizzazione Dividi che ti consente di vedere contemporaneamente le visualizzazioni Struttura e Codice dell'interfaccia utente. Nell'angolo in alto a destra della finestra dell'editor, sono ora disponibili tre pulsanti visualizza icone per passare da un'opzione di visualizzazione all'altra:

    • Per attivare la visualizzazione divisa, fai clic sull'icona Dividi icona visualizzazione divisa.
    • Per attivare la visualizzazione dell'origine XML, fai clic sull'icona Origine icona visualizzazione origine.
    • Per attivare la visualizzazione Struttura, fai clic sull'icona Design icona visualizzazione struttura.
  • I controlli per lo zoom e la panoramica all'interno degli editor di design sono stati spostati in un riquadro mobile nell'angolo in basso a destra della finestra dell'editor.

Per scoprire di più, consulta Creare un'interfaccia utente con l'Editor di layout.

Scheda Risorsa selettore colori

Per aiutarti ad aggiornare rapidamente i valori delle risorse colore nella tua app quando utilizzi il selettore colori nel file XML o negli strumenti di progettazione, l'IDE ora compila automaticamente i valori delle risorse colore.

Selettore colori con valori dei colori compilati

Gestore risorse

Resource Manager contiene i seguenti aggiornamenti:

  • Resource Manager ora supporta la maggior parte dei tipi di risorse.
  • Durante la ricerca di una risorsa, Resource Manager ora mostra i risultati di tutti i moduli del progetto. In precedenza, le ricerche restituivano risultati solo dal modulo selezionato.
  • Il pulsante del filtro consente di visualizzare le risorse dei moduli dipendenti locali, delle librerie esterne e del framework Android. Puoi anche utilizzare il filtro per mostrare gli attributi del tema.
  • Ora puoi rinominare le risorse durante il processo di importazione facendo clic nella casella di testo sopra la risorsa.

Per scoprire di più, consulta Gestire le risorse UI delle app con Resource Manager.

Aggiornamenti al plug-in Android per Gradle

L'ultima versione del plug-in Android Gradle include molti aggiornamenti, tra cui ottimizzazioni della velocità di build, supporto per il plug-in di pubblicazione Maven e supporto per View Binding. Per saperne di più, leggi le note di rilascio complete.

Visualizza associazione

L'associazione di visualizzazioni consente di scrivere più facilmente il codice che interagisce con le viste generando una classe di associazione per ogni file di layout XML. Queste classi contengono riferimenti diretti a tutte le viste che hanno un ID nel layout corrispondente.

Poiché sostituisce findViewById(), l'associazione di visualizzazioni elimina il rischio di eccezioni di puntatore null derivanti da un ID visualizzazione non valido.

Per abilitare l'associazione di viste, devi utilizzare il plug-in Android per Gradle 3.6.0 o versioni successive e includere quanto segue nel file build.gradle di ogni modulo:

trendy

  android {
      buildFeatures.viewBinding = true
  }
  

Kotlin

  android {
      buildFeatures.viewBinding = true
  }
  

Applica modifiche

Ora puoi aggiungere un corso e quindi implementare la modifica al codice nell'app in esecuzione facendo clic su Applica modifiche al codice o Applica modifiche e riavvia attività .

Per scoprire di più sulla differenza tra queste due azioni, consulta Applicare modifiche.

Opzione di menu per il refactoring per attivare il supporto delle app istantanee

Ora puoi abilitare immediatamente il modulo di base in qualsiasi momento dopo aver creato il progetto dell'app nel seguente modo:

  1. Apri il riquadro Progetto selezionando Visualizza > Finestre degli strumenti > Progetto dalla barra dei menu.
  2. Fai clic con il tasto destro del mouse sul modulo di base, in genere chiamato "app", e seleziona Refactoring > Abilita supporto app istantanee.
  3. Nella finestra di dialogo visualizzata, seleziona il modulo di base dal menu a discesa.
  4. Fai clic su Ok.

Nota: l'opzione per attivare istantaneamente il modulo dell'app di base dalla procedura guidata Crea nuovo progetto è stata rimossa.

Per scoprire di più, consulta la Panoramica di Google Play Instant.

Deoffuscare il bytecode di classe e metodo nello strumento di analisi APK

Quando utilizzi lo Strumento di analisi APK per esaminare i file DEX, puoi deoffuscare il bytecode della classe e del metodo come segue:

  1. Seleziona Crea > Analizza APK dalla barra dei menu.
  2. Nella finestra di dialogo visualizzata, vai all'APK che vuoi ispezionare e selezionalo.
  3. Fai clic su Apri.
  4. Nello strumento di analisi APK, seleziona il file DEX che vuoi ispezionare.
  5. Nel visualizzatore di file DEX, carica il file di mapping ProGuard per l'APK che stai analizzando.
  6. Fai clic con il tasto destro del mouse sulla classe o sul metodo che vuoi ispezionare e seleziona Mostra bytecode.

Strumenti nativi

I seguenti aggiornamenti supportano lo sviluppo nativo (C/C++) in Android Studio.

Assistenza Kotlin

Le seguenti funzionalità NDK in Android Studio, precedentemente supportate in Java, sono ora supportate anche in Kotlin:

  • Passa da una dichiarazione JNI alla funzione di implementazione corrispondente in C/C++. Visualizza questa mappatura passando il mouse sopra l'indicatore dell'elemento C o C++ accanto al numero di riga nel file di codice sorgente gestito.

  • Crea automaticamente una funzione di implementazione stub per una dichiarazione JNI. Definisci prima la dichiarazione JNI e poi digita "jni" o il nome del metodo nel file C/C++ per attivarla.

  • Le funzioni di implementazione nativa inutilizzate sono evidenziate come avviso nel codice sorgente. Anche le dichiarazioni JNI con implementazioni mancanti vengono evidenziate come errore.

  • Quando rinomini (refactoring) una funzione di implementazione nativa, tutte le dichiarazioni JNI corrispondenti vengono aggiornate. Rinomina una dichiarazione JNI per aggiornare la funzione di implementazione nativa.

  • Controllo della firma per le implementazioni JNI associate implicitamente.

Altri miglioramenti a JNI

L'editor di codice in Android Studio ora supporta un flusso di lavoro di sviluppo JNI più semplice, che include suggerimenti di tipo migliorati, completamento automatico, ispezioni e refactoring del codice.

Ricarica dell'APK per le librerie native {:#3.6-reload-apk}

Non è più necessario creare un nuovo progetto quando l'APK nel progetto viene aggiornato al di fuori dell'IDE. Android Studio rileva le modifiche nell'APK e ti offre la possibilità di reimportarlo.

Allega origini APK solo Kotlin

Ora è possibile collegare origini APK esterne solo Kotlin quando profila ed esegui il debug degli APK predefiniti. Per scoprire di più, consulta Collegare origini Kotlin/Java.

Rilevamento di perdite in Memory Profiler

Durante l'analisi di un dump dell'heap in Memory Profiler, ora puoi filtrare i dati di profilazione che, secondo Android Studio, potrebbero indicare perdite di memoria per le istanze Activity e Fragment della tua app.

I tipi di dati mostrati dal filtro includono:

  • Activity istanze che sono state eliminate, ma a cui viene ancora fatto riferimento.
  • Fragment istanze che non hanno un valore FragmentManager valido, ma a cui viene ancora fatto riferimento.

Allega origini APK solo Kotlin

Ora è possibile collegare origini APK esterne solo Kotlin quando profila ed esegui il debug degli APK predefiniti. Per scoprire di più, consulta Collegare origini Kotlin/Java.

Rilevamento di perdite in Memory Profiler

Durante l'analisi di un dump dell'heap in Memory Profiler, ora puoi filtrare i dati di profilazione che, secondo Android Studio, potrebbero indicare perdite di memoria per le istanze Activity e Fragment della tua app.

I tipi di dati mostrati dal filtro includono:

  • Activity istanze che sono state eliminate, ma a cui viene ancora fatto riferimento.
  • Fragment istanze che non hanno un valore FragmentManager valido, ma a cui viene ancora fatto riferimento.

In alcune situazioni, come quelle riportate di seguito, il filtro potrebbe generare falsi positivi:

  • Un elemento Fragment è stato creato ma non è stato ancora utilizzato.
  • Un elemento Fragment viene memorizzato nella cache, ma non fa parte di un elemento FragmentTransaction.

Per utilizzare questa funzionalità, devi prima acquisire un dump dell'heap o importare un file di dump dell'heap in Android Studio. Per visualizzare i frammenti e le attività che potrebbero perdere memoria, seleziona la casella di controllo Perdite di attività/frammenti nel riquadro del dump dell'heap di Memory Profiler.

Profiler: rilevamento della perdita di memoria

Filtro di un dump dell'heap per le perdite di memoria.

Emulatori

Android Studio 3.6 ti consente di usufruire dei diversi aggiornamenti inclusi in Android Emulator 29.2.7 e versioni successive, come descritto di seguito.

Supporto della posizione migliorato

Android Emulator 29.2.7 e versioni successive supporta ulteriormente l'emulazione di coordinate GPS e informazioni sui percorsi. Quando apri i controlli estesi degli emulatori, le opzioni nella scheda Posizione sono ora organizzate in due schede: Singoli punti e Percorsi.

Punti singoli

Nella scheda Singoli punti, puoi utilizzare il componente WebView di Google Maps per cercare punti d'interesse, proprio come faresti quando usi Google Maps su un telefono o un browser. Quando cerchi o fai clic su un luogo nella mappa, puoi salvarlo selezionando Salva punto nella parte inferiore della mappa. Tutte le località salvate sono elencate sul lato destro della finestra Controlli estesi.

Per impostare la posizione degli emulatori sulla posizione selezionata sulla mappa, fai clic sul pulsante Imposta posizione nella parte in basso a destra della finestra Controlli estesi.

Scheda Punti singoli nei controlli estesi dell'emulatore..

Percorsi

Analogamente alla scheda Singoli punti, la scheda Percorsi offre un componente WebView di Google Maps che puoi utilizzare per creare un percorso tra due o più luoghi. Per creare e salvare un percorso:

  1. Nella visualizzazione mappa, utilizza il campo di testo per cercare la prima destinazione nel percorso.
  2. Seleziona la località nei risultati di ricerca.
  3. Seleziona il pulsante Naviga.
  4. Seleziona il punto di partenza del percorso dalla mappa.
  5. (Facoltativo) Fai clic su Aggiungi destinazione per aggiungere altre fermate al percorso.
  6. Salva il percorso facendo clic su Salva percorso nella visualizzazione mappa.
  7. Specifica un nome per il percorso e fai clic su Salva.

Per simulare l'emulatore che segue il percorso salvato, seleziona il percorso dall'elenco di Percorsi salvati e fai clic su Riproduci percorso nella parte in basso a destra della finestra Controlli estesi. Per interrompere la simulazione, fai clic su Interrompi percorso.

Scheda Route in Emulator Extended Controls..

Per simulare continuamente l'emulatore che segue il percorso specificato, attiva l'opzione Ripeti riproduzione. Per modificare la velocità con cui l'emulatore segue il percorso specificato, seleziona un'opzione dal menu a discesa Velocità di riproduzione.

Supporto di più display

L'emulatore Android ora ti consente di implementare la tua app su più display, che supportano dimensioni personalizzabili e possono aiutarti a testare le app che supportano multi-finestra e multi-display. Mentre un dispositivo virtuale è in esecuzione, puoi aggiungere altri due display come segue:

  1. Apri la sezione Controlli estesi e vai alla scheda Display.

  2. Aggiungi un altro display facendo clic su Aggiungi display secondario.

  3. Dal menu a discesa in Display secondari, esegui una delle seguenti operazioni:

  4. Seleziona una delle proporzioni preimpostate

  5. Seleziona personalizzato e imposta l'altezza, la larghezza e il dpi per la tua pubblicità display personalizzata.

  6. (Facoltativo) Fai clic su Aggiungi display secondario per aggiungere un terzo display.

  7. Fai clic su Applica modifiche per aggiungere i display specificati al dispositivo virtuale in esecuzione.

Aggiungi più schermi per la scheda Display Emulator Extended Controls.

Nuovi dispositivi virtuali e modelli di progetto per il sistema operativo Android Automotive

Quando crei un nuovo progetto utilizzando Android Studio, ora puoi selezionare tre modelli nella scheda Automotive nella procedura guidata Crea nuovo progetto: Nessuna attività, Servizio multimediale e Servizio di messaggistica. Per i progetti esistenti, puoi aggiungere il supporto per i dispositivi Android Automotive selezionando File > Nuovo > Nuovo modulo dalla barra dei menu e selezionando Modulo Automotive. La procedura guidata Crea nuovo modulo ti guiderà attraverso la creazione di un nuovo modulo utilizzando uno dei modelli di progetto Android Automotive.

Selezione di un modello di progetto Android Automotive..

Inoltre, ora puoi creare un dispositivo virtuale Android (AVD) per i dispositivi con sistema operativo Android Automotive selezionando una delle seguenti opzioni nella scheda Auto e motori della procedura guidata Configurazione dispositivo virtuale.

  1. Polestar 2: crea un AVD che emula l'unità principale Polestar 2.
  2. Auto e motori (1024p orizzontale): crea una durata di visualizzazione media per unità principali di Android Automotive generiche di 1024 x 768 px.

Selezione di un dispositivo virtuale Android Automotive..

Download di SDK ripristinabili

Durante il download dei componenti e degli strumenti SDK utilizzando SDK Manager, Android Studio ora consente di riprendere i download interrotti (ad esempio a causa di un problema di rete) anziché riavviare il download dall'inizio. Questo miglioramento è particolarmente utile per i download di grandi dimensioni, ad esempio l'emulatore Android o le immagini di sistema, quando la connettività a internet non è affidabile.

Inoltre, se hai un'attività di download dell'SDK in esecuzione in background, ora puoi mettere in pausa o riprendere il download utilizzando i controlli nella barra di stato.

Un'attività di download in background nella barra di stato con nuovi controlli che consentono di mettere in pausa o riprendere il download.

Un'attività di download in background nella barra di stato con nuovi controlli che consentono di mettere in pausa o riprendere il download.

Win32 deprecato

La versione Windows a 32 bit di Android Studio non riceverà più aggiornamenti dopo dicembre 2019 e non riceverà più supporto dopo dicembre 2020. Puoi continuare a usare Android Studio. Tuttavia, per ricevere aggiornamenti aggiuntivi, esegui l'upgrade della workstation a una versione a 64 bit di Windows.

Per saperne di più, leggi il blog sul ritiro dei prodotti a 32 bit di Windows.

Nuova opzione per ottimizzare il tempo di sincronizzazione Gradle

Nelle release precedenti, Android Studio recuperava l'elenco di tutte le attività Gradle durante la sincronizzazione Gradle. Per i progetti di grandi dimensioni, il recupero dell'elenco di attività potrebbe causare tempi di sincronizzazione lenti.

Per migliorare le prestazioni di Gradle Sync, vai a File > Impostazioni > Sperimentale e seleziona Non creare l'elenco di attività Gradle durante la sincronizzazione Gradle.

Se attivi questa opzione, Android Studio ignora la creazione dell'elenco di attività durante la sincronizzazione, consentendo così di completare più rapidamente la sincronizzazione Gradle e migliorare la reattività dell'interfaccia utente. Tieni presente che quando l'IDE ignora la creazione dell'elenco di attività, gli elenchi di attività nel riquadro Gradle sono vuoti e il completamento automatico dei nomi delle attività nei file di build non funziona.

Nuova posizione per attivare/disattivare la modalità offline di Gradle

Per attivare o disattivare la modalità offline di Gradle, seleziona prima Visualizza > Finestre degli strumenti > Gradle dalla barra dei menu. Quindi, nella parte superiore della finestra di gradle, fai clic su Attiva/disattiva modalità offline Pulsante Gradle offline nel riquadro Gradle..

IntelliJ IDEA 2019.2

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

Per scoprire di più sui miglioramenti rispetto ad altre versioni di IntelliJ incluse cumulativamente con la versione 2019.2, consulta le pagine seguenti:

Collaboratori della community

Grazie a tutti i collaboratori della nostra community che ci hanno aiutato a scoprire bug e altri modi per migliorare Android Studio 3.6. In particolare, vogliamo ringraziare le seguenti persone che hanno segnalato i bug:

  • Albert Lo
  • Andrea Rossi
  • Andrea Leganza
  • Benedikt Kolb
  • César Puerta
  • Curtis Kroetsch
  • Dario Wieczorek
  • Daniele Bianchi
  • Davide Bianchi
  • Deepanshu
  • Egor Andreevici
  • Elio Graber
  • Emin Kokalari
  • Evan Tatarka
  • Frantisek Nagy
  • Giulia Ferrara
  • Hannes Achleitner
  • Hans Petter Eide
  • Kino a letto per henning
  • Visualizzatore Hugo
  • Igor Escodro
  • Iñaki Villar
  • Javentira Lienata
  • Giulia Ferrara
  • Giulia Ferrara
  • Liran Barsisa
  • Luigi CAD
  • Lóránt Pintér
  • Łukasz Wasylkowski
  • Luca Fielke
  • Malvin Sutanto
  • Masatoshi Kubode
  • Mathew Winters
  • Michael Bailey
  • Michał Górny
  • Mihai Neacsu
  • Marco Rossi
  • Monte Creasor
  • Nelson Osacky
  • Nelson Osacky
  • Nicola Firmani
  • Nicklas Ansman Giertz
  • Nicola Corona
  • Nicolás Lichtmaier
  • Niek Haarman
  • Niels van Hove
  • Nikla Baudy
  • Renato Goncalves
  • Grønmo
  • Ruslan Baratov
  • Sinan Kozak
  • Slawomir Czerwinski
  • Stefan lupo
  • Stefano D'Amico
  • Tao Wang
  • Tommaso Chladek
  • Tommaso Procházka
  • Roberto Battaglia
  • Torbjørn Sørli
  • Warren lui
  • Yenchi Lin
  • Salaglie a forma di zac
  • 3.5 (agosto 2019)

    Android Studio 3.5 è una release principale e il risultato di Project Marble. A partire dal rilascio di Android Studio 3.3, l'iniziativa Project Marble ha riguardato diverse release incentrate sul miglioramento di tre aree principali dell'IDE: integrità del sistema, perfezionamento delle funzionalità e correzione dei bug.

    Per informazioni su questi e altri aggiornamenti di Project Marble, leggi il post del blog per gli sviluppatori Android o le sezioni seguenti.

    Vogliamo inoltre ringraziare tutti i nostri collaboratori della community che hanno contribuito a questa pubblicazione.

    3.5.3 (dicembre 2019)

    Questo aggiornamento secondario include varie correzioni di bug e miglioramenti delle prestazioni.

    3.5.2 (novembre 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.5.1 (ottobre 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.

    Project Marble: integrità del sistema

    In questa sezione vengono descritte le modifiche in Android Studio 3.5 volte a migliorare l'integrità del sistema.

    Impostazioni memoria consigliate

    Android Studio ora ti avvisa se rileva che puoi migliorare le prestazioni aumentando la quantità massima di RAM che il tuo sistema operativo dovrebbe allocare per i processi di Android Studio, ad esempio l'IDE principale, il daemon Gradle e il daemon Kotlin. Puoi accettare le impostazioni consigliate facendo clic sul link delle azioni nella notifica oppure modificare manualmente queste impostazioni selezionando File > Impostazioni (o Android Studio > Preferenze su macOS), quindi cercando la sezione Impostazioni memoria in Aspetto e comportamento > Impostazioni di sistema. Per scoprire di più, consulta Dimensione massima heap.

    Una notifica sulle impostazioni di memoria consigliate.

    Una notifica sulle impostazioni di memoria consigliate.

    Report sull'utilizzo della memoria

    A volte i problemi di memoria in Android Studio sono difficili da riprodurre e segnalare. Per risolvere il problema, Android Studio ti consente di generare un report sull'utilizzo della memoria facendo clic su Guida > Analizza utilizzo memoria nella barra dei menu. Quando lo fai, l'IDE sanitizza in locale i dati per le informazioni personali prima di chiedere se vuoi inviarli al team di Android Studio per aiutarti a identificare l'origine dei problemi di memoria. Per scoprire di più, vedi Eseguire un report sull'utilizzo della memoria.

    Un report sulla memoria utilizzata.

    Un report sulla memoria utilizzata.

    Windows: ottimizzazione I/O dei file antivirus

    Android Studio ora controlla automaticamente se determinate directory di progetto sono escluse dalla scansione antivirus in tempo reale. Quando è possibile apportare modifiche per migliorare le prestazioni della build, Android Studio ti avvisa e fornisce istruzioni su come ottimizzare la configurazione dell'antivirus. Per scoprire di più, consulta Ridurre al minimo l'impatto del software antivirus sulla velocità delle build.

    Project Marble: perfezionamento delle caratteristiche

    In questa sezione vengono descritte le modifiche in Android Studio 3.5 incentrate sul miglioramento delle funzionalità esistenti.

    Applica modifiche

    Applica modifiche consente di eseguire il push di modifiche al codice e alle risorse dell'app in esecuzione senza riavviare l'app e, in alcuni casi, senza riavviare l'attività corrente. La funzionalità Applica modifiche implementa un approccio completamente nuovo per mantenere lo stato dell'app. A differenza dell'esecuzione istantanea, che riscriveva il bytecode dell'APK, Applica modifiche ridefinisce al volo le classi sfruttando la strumentazione di runtime supportata in Android 8.0 (livello API 26) o versioni successive.

    Per scoprire di più, vedi Applicare modifiche.

    I pulsanti della barra degli strumenti per Applica modifiche.

    I pulsanti della barra degli strumenti per Applica modifiche.

    Flusso di deployment delle app

    L'IDE ha un nuovo menu a discesa che ti consente di selezionare rapidamente su quale dispositivo vuoi implementare la tua app. Questo menu include anche una nuova opzione che ti consente di eseguire l'app su più dispositivi contemporaneamente.

    Menu a discesa del dispositivo di destinazione.

    Menu a discesa del dispositivo di destinazione.

    Sincronizzazione Gradle e rilevamento della cache migliorati

    Ora l'IDE rileva meglio quando Gradle svuota periodicamente la cache della build quando riduce il consumo del disco rigido. Nelle versioni precedenti, questo stato faceva sì che l'IDE segnalasse le dipendenze mancanti e la sincronizzazione di Gradle non riuscita. Ora l'IDE scarica semplicemente le dipendenze secondo necessità per garantire il corretto completamento della sincronizzazione con Gradle.

    Output degli errori di compilazione migliorato

    La finestra Crea Icona della finestra di build ora fornisce migliori report sugli errori, ad esempio un link al file e la riga dell'errore segnalato, per i seguenti processi di compilazione:

    • Compilazione e collegamento AAPT
    • R8 e ProGuard
    • Dexing
    • Unione delle risorse
    • Analisi dei file XML
    • Compilation Javac, Kotlinc e CMake

    Upgrade dei progetti

    Esperienza di aggiornamento migliorata per fornire maggiori informazioni e azioni utili per aggiornare l'IDE e il plug-in Android Gradle. Ad esempio, un numero maggiore di errori di sincronizzazione e di build include azioni che consentono di mitigare gli errori durante l'aggiornamento.

    È importante tenere presente che puoi aggiornare l'IDE indipendentemente da altri componenti, ad esempio il plug-in Android Gradle. Pertanto, puoi aggiornare in tutta sicurezza l'IDE non appena è disponibile una versione più recente e aggiornare gli altri componenti in un secondo momento.

    Editor layout

    Android Studio 3.5 include diversi miglioramenti a visualizzazione, gestione e interazione del layout.

    Quando si utilizza ConstraintLayout, una nuova sezione Vincoli nel riquadro Attributi elenca le relazioni dei vincoli del componente dell'interfaccia utente selezionato. Puoi selezionare un vincolo dalla superficie di progettazione o dall'elenco dei vincoli per evidenziarlo in entrambe le aree.

    Relazioni dei vincoli per un elemento UI selezionato.

    Relazioni dei vincoli per un elemento UI selezionato.

    Allo stesso modo, ora puoi eliminare un vincolo selezionandolo e premendo il tasto Delete. Puoi anche eliminare un vincolo tenendo premuto il tasto Control (Command su macOS) e facendo clic sull'ancoraggio del vincolo. Tieni presente che, quando tieni premuto il tasto Control o Command e passi il mouse sopra un ancoraggio, tutti i vincoli associati diventano rossi per indicare che puoi fare clic per eliminarli.

    Quando è selezionata una vista, puoi creare un vincolo facendo clic su una qualsiasi delle icone + nella sezione Widget del vincolo del riquadro Attributi, come mostrato nell'immagine seguente. Quando crei un nuovo vincolo, ora l'Editor di layout lo seleziona ed evidenzia, fornendo un feedback visivo immediato per ciò che hai appena aggiunto.

    Un'animazione che mostra come utilizzare il widget dei vincoli per creare vincoli.

    Utilizzo del widget dei vincoli per creare vincoli .

    Quando crei un vincolo, l'Editor di layout ora mostra solo i punti di ancoraggio idonei a cui puoi vincolare. In precedenza, l'Editor di layout metteva in evidenza tutti i punti di ancoraggio su tutte le viste, indipendentemente dalla possibilità di vincolarli. Inoltre, un overlay blu ora evidenzia il target del vincolo. Questa evidenziazione è particolarmente utile quando si cerca di vincolare un componente che si sovrappone a un altro.

    Un'animazione che mostra come creare un vincolo per un componente che si sovrappone in Android Studio 3.4.

    Creazione di un vincolo per un componente che si sovrappone in Android Studio 3.4.

    Un'animazione che mostra come creare un vincolo per un componente che si sovrappone in Android Studio 3.5.

    Creazione di un vincolo per un componente che si sovrappone in Android Studio 3.5.

    Oltre agli aggiornamenti sopra riportati, Android Studio 3.5 contiene anche i seguenti miglioramenti dell'Editor di layout:

    • Il widget del vincolo e il menu a discesa Margine predefinito ora consentono di utilizzare le risorse della dimensione per i margini.
    • Nella barra degli strumenti dell'Editor di layout, è stato aggiornato l'elenco di dispositivi che determinano le dimensioni della superficie di progettazione. Inoltre, è stato migliorato il comportamento di agganciamento durante il ridimensionamento e i punti di manipolazione di ridimensionamento sulla superficie di progettazione sono ora sempre visibili. Durante il ridimensionamento, vengono visualizzati nuovi overlay che mostrano le dimensioni comuni dei dispositivi.
    • L'Editor di layout presenta una nuova combinazione di colori che migliora la coerenza e riduce il contrasto tra componenti, testo e vincoli.
    • La modalità blueprint ora include il supporto di testo per alcuni componenti in cui il testo non veniva mostrato.

    Per ulteriori informazioni su queste modifiche, consulta la pagina Android Studio Project Marble: Layout Editor.

    Associazione dati

    Oltre ad aggiungere il supporto dell'elaborazione incrementale delle annotazioni per l'associazione di dati, l'IDE migliora le funzionalità e le prestazioni dell'editor intelligente durante la creazione di espressioni di associazione di dati in XML.

    Un'animazione che mostra le prestazioni dell'editor di codice su Android Studio
            3.4.

    Prestazioni dell'editor di codice su Android Studio 3.4.

    Un'animazione che mostra le prestazioni dell'editor di codice su Android Studio 3.5.

    Prestazioni di modifica del codice migliorate su Android Studio 3.5.

    Supporto migliorato per i progetti C/C++

    Android Studio 3.5 include diverse modifiche che migliorano il supporto dei progetti C/C++.

    Crea miglioramenti al riquadro Varianti per la sincronizzazione di una singola variante

    Ora puoi specificare sia la variante di build attiva sia l'ABI attiva nel riquadro Crea varianti. Questa funzionalità semplifica la configurazione della build per modulo e può anche migliorare le prestazioni della sincronizzazione Gradle.

    Per scoprire di più, consulta Cambiare la variante di build.

    Riquadro Varianti di build che mostra la selezione di singole varianti in base all'ABI.

    Il riquadro Varianti build con la selezione di singole varianti in base all'ABI.

    Versioni affiancate dell'NDK

    Ora puoi utilizzare più versioni dell'NDK affiancate. Questa funzionalità ti offre maggiore flessibilità durante la configurazione dei progetti, ad esempio se hai progetti che utilizzano versioni diverse dell'NDK sulla stessa macchina.

    Se il tuo progetto utilizza il plug-in Android per Gradle 3.5.0 o versioni successive, puoi anche specificare la versione dell'NDK che deve essere utilizzata da ogni modulo del progetto. Puoi utilizzare questa funzionalità per creare build riproducibili e mitigare le incompatibilità tra le versioni NDK e il plug-in Android Gradle.

    Per scoprire di più, vedi Installare e configurare NDK, CMake e LLDB.

    Assistenza ChromeOS

    Android Studio ora supporta ufficialmente i dispositivi ChromeOS, come HP Chromebook x360 14, Acer Chromebook 13/Spin 13 e altri ancora che puoi leggere nei requisiti di sistema. Per iniziare, scarica Android Studio sul tuo dispositivo ChromeOS compatibile e segui le istruzioni di installazione.

    Nota: Android Studio su ChromeOS al momento supporta il deployment dell'app solo su un dispositivo hardware connesso. Per scoprire di più, consulta Eseguire app su un dispositivo hardware.

    Consegna condizionale per moduli delle caratteristiche

    La pubblicazione condizionale consente di impostare determinati requisiti di configurazione del dispositivo per il download automatico dei moduli delle funzionalità durante l'installazione dell'app. Ad esempio, puoi configurare un modulo di funzionalità che includa funzionalità per la realtà aumentata (AR) in modo che sia disponibile durante l'installazione delle app solo per i dispositivi che supportano l'AR.

    Questo meccanismo di distribuzione attualmente supporta il controllo del download di un modulo al momento dell'installazione dell'app, in base alle seguenti configurazioni dispositivo:

    • Funzionalità hardware e software del dispositivo, inclusa la versione OpenGL ES
    • Paese dell'utente
    • Livello API

    Se un dispositivo non soddisfa tutti i requisiti specificati, il modulo non viene scaricato al momento dell'installazione dell'app. Tuttavia, la tua app potrebbe richiedere in un secondo momento di scaricare il modulo on demand usando la libreria di base Play. Per scoprire di più, consulta Configurare la consegna condizionale.

    IntelliJ IDEA 2019.1

    L'IDE principale di Android Studio è stato aggiornato con i miglioramenti di IntelliJ IDEA fino alla release del 2019.1, come la personalizzazione dei temi.

    L'ultima versione di IntelliJ inclusa in Android Studio è stata la 2018.3.4. Per ulteriori informazioni sui miglioramenti apportati da altre versioni di IntelliJ incluse cumulativamente in questa release di Android Studio, consulta i seguenti aggiornamenti per la correzione di bug:

    Aggiornamenti del plug-in Android Gradle 3.5.0

    Per informazioni sulle novità del plug-in Android per Gradle 3.5.0, come il supporto migliorato per l'elaborazione incrementale delle annotazioni e i test delle unità memorizzabili nella cache, consulta le relative note di rilascio.

    Collaboratori della community

    Grazie a tutti i collaboratori della nostra community che ci hanno aiutato a scoprire bug e altri modi per migliorare Android Studio 3.5. In particolare, vogliamo ringraziare le seguenti persone che hanno segnalato bug P0 e P1:

    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.

    3.3 (gennaio 2019)

    Android Studio 3.3 è una release principale che include una serie di nuove funzionalità e miglioramenti.

    3.3.2 (marzo 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.3.1 (febbraio 2019)

    Questo aggiornamento secondario include varie correzioni di bug e miglioramenti delle prestazioni.

    IntelliJ IDEA 2018.2.2

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

    Aggiornamenti del plug-in Android per Gradle

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

    L'Editor di navigazione consente di visualizzare e creare rapidamente la navigazione nell'app utilizzando il componente dell'architettura di navigazione.

    Per maggiori informazioni, consulta Implementare la navigazione con il componente Architettura di navigazione.

    Elimina le directory di Android Studio non utilizzate

    Quando esegui per la prima volta una versione principale di Android Studio, il sistema cerca directory contenenti cache, impostazioni, indici e log delle versioni di Android Studio per le quali non è possibile trovare un'installazione corrispondente. La finestra di dialogo Elimina directory di Android Studio inutilizzate mostra posizioni, dimensioni e orari delle ultime modifiche di queste directory inutilizzate e offre la possibilità di eliminarle.

    Di seguito sono elencate le directory che Android Studio prende in considerazione per l'eliminazione:

    • Linux: ~/.AndroidStudio[Preview]X.Y
    • Mac: ~/Library/{Preferences, Caches, Logs, Application Support}/AndroidStudio[Preview]X.Y
    • Windows: %USER%.AndroidStudio[Preview]X.Y

    Miglioramenti lint

    Lint, quando richiamato da Gradle, è molto più veloce: i progetti più grandi possono aspettarsi un'esecuzione fino a quattro volte più rapida.

    Procedura guidata Crea nuovo progetto

    La procedura guidata Crea nuovo progetto ha un nuovo aspetto e contiene aggiornamenti che aiutano a semplificare la creazione di nuovi progetti Android Studio.

    Per ulteriori informazioni, consulta Creare un progetto.

    Aggiornamenti di Profiler

    Android Studio 3.3 include aggiornamenti per diversi dei singoli profiler.

    Prestazioni migliorate

    In base al feedback degli utenti, le prestazioni di rendering durante l'utilizzo dei profiler sono state notevolmente migliorate. Continua a fornire feedback, soprattutto se continui a riscontrare problemi di prestazioni.

    Opzioni di monitoraggio dell'allocazione della memoria Profiler

    Per migliorare le prestazioni dell'app durante la profilazione, per impostazione predefinita lo strumento Memory Profiler ora campiona periodicamente le allocazioni di memoria. Se vuoi, puoi modificare questo comportamento utilizzando il menu a discesa Allocation Tracking (Monitoraggio dell'allocazione) durante il test su dispositivi con Android 8.0 (livello API 26) o versioni successive.

    Utilizzando il menu a discesa Monitoraggio allocazione, puoi scegliere tra le seguenti modalità:

    • Completa: acquisisce tutte le allocazioni della memoria degli oggetti. Tieni presente che se hai un'app che alloca molti oggetti, potresti notare problemi di prestazioni significativi durante la profilazione.

    • Campionata: acquisisce un campione periodico di allocazioni della memoria degli oggetti. Questo è il comportamento predefinito e ha un impatto minore sulle prestazioni delle app durante la profilazione. Potresti riscontrare alcuni problemi di prestazioni delle app che allocano molti oggetti in un breve periodo di tempo.

    • Off: disattiva l'allocazione della memoria. Se non è già selezionata, questa modalità viene attivata automaticamente durante l'esecuzione di una registrazione della CPU e viene ripristinata l'impostazione precedente al termine della registrazione. Puoi modificare questo comportamento nella finestra di dialogo di configurazione della registrazione della CPU.

      Il monitoraggio ha effetto sia sugli oggetti Java sia sui riferimenti JNI.

    Ispeziona i dati di rendering del frame

    In CPU Profiler, puoi ora controllare il tempo necessario alla tua app Java per eseguire il rendering di ogni frame nel thread dell'interfaccia utente principale e su RenderThread. Questi dati potrebbero essere utili durante l'analisi dei colli di bottiglia che causano il jank dell'UI e una bassa frequenza fotogrammi. Ad esempio, ogni frame che richiede più tempo dei 16 ms necessari per mantenere una frequenza fotogrammi uniforme viene visualizzato in rosso.

    Per visualizzare i dati di rendering dei frame, registra una traccia utilizzando una configurazione che ti consenta di tracciare le chiamate di sistema. Dopo aver registrato la traccia, cerca le informazioni su ogni frame lungo la sequenza temporale della registrazione nella sezione FRAMES, come mostrato di seguito.

    Per scoprire di più su come indagare e risolvere i problemi di frequenza fotogrammi, leggi Rendering lento.

    Frammenti nella sequenza temporale dell'evento

    La sequenza temporale degli eventi ora mostra quando i frammenti sono collegati e scollegati. Inoltre, quando passi il mouse sopra un frammento, viene visualizzata una descrizione comando che mostra lo stato del frammento.

    Visualizza il testo formattato per i payload di connessione nel Profiler di rete

    In precedenza, il Profiler di rete mostrava solo testo non elaborato dei payload di connessione. Android Studio 3.3 ora formatta alcuni tipi di testo per impostazione predefinita, tra cui JSON, XML e HTML. Nelle schede Risposta e Richiesta, fai clic sul link Visualizza analizzato per visualizzare il testo formattato, quindi sul link Visualizza sorgente per visualizzare il testo non elaborato.

    Per maggiori informazioni, consulta Ispezionare il traffico di rete con Network Profiler.

    Download automatico dei componenti dell'SDK

    Quando il tuo progetto richiede un componente SDK dalle piattaforme SDK, da NDK o CMake, Gradle ora tenta di scaricare automaticamente i pacchetti richiesti, a condizione che in precedenza tu abbia accettato eventuali contratti di licenza correlati utilizzando SDK Manager.

    Per maggiori informazioni, consulta Download automatico dei pacchetti mancanti con Gradle.

    Supporto per Clang-Tidy

    Android Studio include ora il supporto per l'analisi del codice statico tramite Clang-Tidy per i progetti che includono codice nativo. Per abilitare il supporto per Clang-Tidy, aggiorna l'NDK alla versione r18 o successiva.

    Puoi quindi abilitare o riattivare le ispezioni aprendo la finestra di dialogo Impostazioni o Preferenze e passando a Editor > Ispezioni > C/C++ > Generale > Clang-Tidy. Quando selezioni questa ispezione nella finestra di dialogo Impostazioni o Preferenze, puoi anche visualizzare l'elenco dei controlli Clang-Tidy abilitati e disabilitati nella sezione Opzione del riquadro più a destra. Per attivare i controlli aggiuntivi, aggiungili all'elenco e fai clic su Applica.

    Per configurare Clang-Tidy con opzioni aggiuntive, fai clic su Configura le opzioni di Clang-Tidy Checks e aggiungile nella finestra di dialogo visualizzata.

    Rimozione delle opzioni per la personalizzazione di C++

    Le seguenti opzioni sono state rimosse dalla finestra di dialogo Personalizza supporto C++:

    • Assistenza per le eccezioni (-feccezioni)
    • Supporto delle informazioni sui tipi di runtime (-ftti)

    I rispettivi comportamenti sono attivati per tutti i progetti creati tramite Android Studio.

    CMake versione 3.10.2

    CMake versione 3.10.2 è ora inclusa in SDK Manager. Tieni presente che Gradle utilizza ancora la versione 3.6.0 per impostazione predefinita.

    Per specificare una versione di CMake da utilizzare per Gradle, aggiungi quanto segue al file build.gradle del modulo:

        android {
            ...
            externalNativeBuild {
                cmake {
                    ...
                    version "3.10.2"
                }
            }
        }
        
      

    Per maggiori informazioni sulla configurazione di CMake in build.gradle, consulta Configurare manualmente Gradle.

    Nuova sintassi "+" per specificare le versioni minime di CMake

    Quando specifichi una versione di CMake nel file build.gradle del tuo modulo principale, ora puoi aggiungere un "+" in modo che corrisponda al comportamento del comando cmake_minimum_required() di CMake.

    Attenzione:si sconsiglia l'utilizzo della sintassi "+" con altre dipendenze della build, poiché le dipendenze dinamiche possono causare aggiornamenti imprevisti delle versioni e difficoltà a risolvere le differenze di versione.

    Ora gli Android App Bundle supportano le app istantanee

    Android Studio ora consente di creare Android App Bundle con supporto completo per Google Play Instant. In altre parole, ora puoi creare ed eseguire il deployment di app installate e app istantanee da un singolo progetto Android Studio e includerle in un unico Android App Bundle.

    Se crei un nuovo progetto Android Studio utilizzando la finestra di dialogo Crea nuovo progetto, assicurati di selezionare la casella accanto a Configura il tuo progetto > Questo progetto supporterà le app istantanee. A questo punto Android Studio crea un nuovo progetto di app come farebbe normalmente, ma include le seguenti proprietà nel file manifest per aggiungere il supporto per le app istantanee al modulo di base dell'app:

        <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
            <dist:module dist:instant="true" />
            ...
        </manifest>
        
      

    A questo punto, puoi creare un modulo di funzionalità ad attivazione istantanea selezionando File > Nuovo > Nuovo modulo dalla barra dei menu, quindi seleziona Modulo di funzionalità dinamiche istantanee nella finestra di dialogo Crea nuovo modulo. Tieni presente che la creazione di questo modulo attiva anche istantaneamente il modulo di base dell'app.

    Per eseguire il deployment dell'app su un dispositivo locale come esperienza istantanea, modifica la configurazione di esecuzione e seleziona la casella accanto a Generali > Esegui il deployment come app istantanea.

    Sincronizzazione dei progetti con una variante

    La sincronizzazione del progetto con la configurazione della build è un passaggio importante per consentire ad Android Studio di comprendere come è strutturato il progetto. Tuttavia, questo processo può richiedere molto tempo per i progetti di grandi dimensioni. Se il tuo progetto utilizza più varianti di build, ora puoi ottimizzare le sincronizzazioni del progetto limitandole solo alla variante attualmente selezionata.

    Per attivare questa ottimizzazione, devi utilizzare Android Studio 3.3 o versioni successive con il plug-in Android per Gradle 3.3.0 o versioni successive. Se soddisfi questi requisiti, l'IDE ti chiede di abilitare l'ottimizzazione quando sincronizzi il progetto. L'ottimizzazione è abilitata per impostazione predefinita anche sui nuovi progetti.

    Per attivare questa ottimizzazione manualmente, fai clic su File > Impostazioni > Sperimentale > Gradle (Android Studio > Preferenze > Sperimentale > Gradle su Mac) e seleziona la casella di controllo Sincronizza solo la variante attiva.

    Nota: attualmente questa ottimizzazione supporta i progetti che includono solo il linguaggio di programmazione Java. Se, ad esempio, l'IDE rileva codice Kotlin o C++ nel progetto, non abilita automaticamente questa ottimizzazione e non dovresti abilitarla manualmente.

    Per maggiori informazioni, consulta Abilitare la sincronizzazione dei progetti con variante singola.

    Invia un feedback rapido

    Se hai attivato la condivisione delle statistiche sull'utilizzo per contribuire a migliorare Android Studio, vedrai queste due nuove icone nella barra di stato in fondo alla finestra IDE:

    Basta fare clic sull'icona che rappresenta al meglio la tua esperienza attuale con l'IDE. Quando lo fai, l'IDE invia statistiche sull'utilizzo che consentono al team Android Studio di comprendere meglio il tuo sentiment. In alcuni casi, ad esempio se indichi un'esperienza negativa con l'IDE, avrai l'opportunità di fornire un feedback aggiuntivo.

    Se non l'hai ancora fatto, puoi attivare la condivisione delle statistiche sull'utilizzo aprendo la finestra di dialogo Impostazioni Preferenze su Mac, andando su Aspetto e comportamento > Impostazioni di sistema > Condivisione dati e selezionando Invia statistiche sull'utilizzo a Google.

    3.2 (settembre 2018)

    Android Studio 3.2 è una release principale che include una serie di nuove funzionalità e miglioramenti.

    3.2.1 (ottobre 2018)

    Questo aggiornamento di Android Studio 3.2 include le seguenti modifiche e correzioni:

    • La versione in bundle di Kotlin ora è 1.2.71.
    • La versione predefinita degli strumenti di creazione è ora 28.0.3.
    • Nella libreria di navigazione, i tipi di argomenti sono stati rinominati da type a argType.
    • Sono stati risolti i seguenti bug:
      • Quando utilizzi la libreria di associazione dati, i nomi delle variabili con trattini bassi causavano errori di compilazione.
      • CMake stava causando il mancato funzionamento di IntelliSense e di altre funzionalità di CLion.
      • L'aggiunta di SliceProvider causava errori di compilazione nei progetti che non utilizzavano le librerie androidx.*.
      • Alcuni test delle unità Kotlin non venivano eseguiti.
      • Un problema con l'associazione di dati causava un PsiInvalidElementAccessException.
      • A volte gli elementi <merge> causavano l'arresto anomalo dell'Editor di layout.

    Problemi noti 3.2.0

    Nota: questi problemi sono stati risolti in Android Studio 3.2.1

    • Sconsigliamo vivamente di utilizzare Kotlin versione 1.2.70.

      Kotlin versione 1.2.61 corregge un bug che può causare il blocco di Android Studio, ma Kotlin 1.2.70 non include questa correzione.

      Le versioni di Kotlin 1.2.71 e successive, tuttavia, includono questa correzione.

    • Anche se in genere non è necessario specificare la versione degli strumenti di creazione, quando utilizzi il plug-in Android per Gradle 3.2.0 con renderscriptSupportModeEnabled impostato su true, devi includere quanto segue nel file build.gradle di ogni modulo:

      android.buildToolsVersion "28.0.3"

    Novità dell'assistente

    Un nuovo assistente ti informa degli ultimi cambiamenti in Android Studio.

    L'assistente si apre all'avvio di Android Studio dopo una nuova installazione o un aggiornamento se rileva che sono presenti nuove informazioni da mostrare. Puoi anche aprire l'assistente selezionando Guida > Novità di Android Studio.

    Jetpack Android

    Android Jetpack aiuta ad accelerare lo sviluppo di Android con componenti, strumenti e indicazioni che eliminano le attività ripetitive e consentono di creare più rapidamente e facilmente app testabili di alta qualità. Android Studio include i seguenti aggiornamenti per supportare Jetpack. Per maggiori informazioni, consulta la documentazione di Jetpack.

    Il nuovo editor di navigazione si integra con i componenti di navigazione di Android Jetpack per fornire una visualizzazione grafica per creare la struttura di navigazione della tua app. L'editor di navigazione semplifica la progettazione e l'implementazione della navigazione tra le destinazioni in-app.

    In Android Studio 3.2, l'editor di navigazione è una funzionalità sperimentale. Per attivare l'Editor di navigazione, fai clic su File > Impostazioni (Android Studio > Preferenze su Mac), seleziona la categoria Sperimentale nel riquadro a sinistra, seleziona la casella accanto a Abilita editor di navigazione e riavvia Android Studio.

    Per saperne di più, leggi la documentazione dell'editor di navigazione.

    Migrazione ad AndroidX

    Nell'ambito di Jetpack, eseguiremo la migrazione delle librerie di assistenza Android a una nuova libreria di estensioni Android utilizzando lo spazio dei nomi androidx. Per ulteriori informazioni, consulta la panoramica di AndroidX.

    Android Studio 3.2 ti aiuta in questo processo grazie a una nuova funzionalità di migrazione.

    Per eseguire la migrazione di un progetto esistente ad AndroidX, scegli Refactoring > Esegui migrazione ad AndroidX. Se hai dipendenze Maven di cui non è stata eseguita la migrazione allo spazio dei nomi AndroidX, anche il sistema di build Android Studio converte automaticamente queste dipendenze del progetto.

    Il plug-in Android Gradle fornisce i seguenti flag globali che puoi impostare nel file gradle.properties:

    • android.useAndroidX: se impostato su true, questo flag indica che vuoi iniziare a usare AndroidX d'ora in poi. Se il flag non è presente, Android Studio si comporta come se il flag fosse impostato su false.
    • android.enableJetifier: se impostato su true, questo flag indica che vuoi consentire al supporto degli strumenti (dal plug-in Android Gradle) per convertire automaticamente le librerie di terze parti esistenti come se fossero scritte per AndroidX. Se il flag non è presente, Android Studio si comporta come se il flag fosse impostato su false.

    Quando utilizzi il comando Migrate to AndroidX, entrambi i flag sono impostati su true.

    Se vuoi iniziare a utilizzare immediatamente le librerie AndroidX e non devi convertire le librerie di terze parti esistenti, puoi impostare il flag android.useAndroidX su true e il flag android.enableJetifier su false.

    Android App Bundle

    Android App Bundle è un nuovo formato di caricamento che include tutto il codice compilato e tutte le risorse dell'app, ma impedisce la generazione di APK e la firma sul Google Play Store.

    Il nuovo modello di pubblicazione di app di Google Play utilizza poi l'app bundle per generare e pubblicare APK ottimizzati per la configurazione del dispositivo di ogni utente, in modo che ogni utente scarichi solo il codice e le risorse necessarie per eseguire la tua app. Non hai più bisogno di creare, firmare e gestire più APK e gli utenti ricevono download più piccoli e ottimizzati.

    Inoltre, puoi aggiungere moduli delle funzionalità al progetto dell'app e includerli nel tuo app bundle. Gli utenti possono quindi scaricare e installare le funzionalità della tua app on demand.

    Per creare un bundle, scegli Crea > Build > Build bundle/APK > Build bundle.

    Per ulteriori informazioni, incluse le istruzioni per la creazione e l'analisi di un Android App Bundle, consulta la pagina Android App Bundle.

    Dati di esempio nell'Editor di layout

    Molti layout Android dispongono di dati di runtime che possono rendere difficile visualizzare l'aspetto di un layout durante la fase di progettazione dello sviluppo di app. Ora nell'Editor di layout puoi vedere facilmente un'anteprima della tua vista contenente dati di esempio. Quando aggiungi una vista, nella finestra Design viene visualizzato un pulsante sotto la vista. Fai clic su questo pulsante per impostare gli attributi di visualizzazione in fase di progettazione. Puoi scegliere tra vari modelli di dati di esempio e specificare il numero di elementi di esempio con cui completare la vista.

    Per provare a utilizzare i dati di esempio, aggiungi un elemento RecyclerView a un nuovo layout, fai clic sul pulsante degli attributi data/ora di progettazione sotto la visualizzazione e scegli una selezione dal carosello di modelli di dati di esempio.

    Sezioni

    Le sezioni offrono un nuovo modo per incorporare parti delle funzionalità della tua app in altre piattaforme dell'interfaccia utente su Android. Ad esempio, la funzionalità Sezioni consente di mostrare la funzionalità e i contenuti dell'app nei suggerimenti della Ricerca Google.

    Android Studio 3.2 dispone di un modello integrato che consente di estendere l'app con le nuove API Slice Provider, nonché con nuovi controlli lint per garantire il rispetto delle best practice durante la creazione delle sezioni.

    Per iniziare, fai clic con il tasto destro del mouse sulla cartella di un progetto e scegli Nuovo > Altro > Provider sezione.

    Per scoprire di più, ad esempio su come testare le interazioni di Slice, leggi la guida introduttiva alle sezioni.

    Kotlin 1.2.61

    Android Studio 3.2 integra Kotlin 1.2.61, mentre il nuovo SDK Android si integra meglio con Kotlin. Per ulteriori informazioni, consulta il Blog per sviluppatori Android.

    IntelliJ IDEA 2018.1.6

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

    Profiler Android

    Prova le nuove funzionalità di Android Profiler che seguono in Android Studio 3.2.

    Sessioni

    Ora puoi salvare i dati di Profiler come sessioni da rivedere e ispezionare in un secondo momento. Profiler conserva i dati delle sessioni fino al riavvio dell'IDE.

    Quando registri una traccia del metodo o acquisisci un dump dell'heap, l'IDE aggiunge questi dati (insieme all'attività di rete dell'app) come voce separata rispetto alla sessione corrente. Puoi passare facilmente da una registrazione all'altra per confrontare i dati.

    Traccia di sistema

    In CPU Profiler, seleziona la nuova configurazione System Trace per ispezionare l'attività di CPU e thread di sistema del tuo dispositivo. Questa configurazione di traccia è basata su systrace ed è utile per esaminare i problemi a livello di sistema, come il jank dell'interfaccia utente.

    Mentre utilizzi questa configurazione di traccia, puoi contrassegnare visivamente le routine di codice importanti nella sequenza temporale del profiler instrumentando il tuo codice C/C++ con l'API di tracciamento nativa o il tuo codice Java con la classe Trace.

    Ispeziona i riferimenti JNI in Profiler di memoria

    Se esegui il deployment della tua app su un dispositivo con Android 8.0 (livello API 26) o versioni successive, ora puoi controllare le allocazioni della memoria per il codice JNI dell'app utilizzando Memory Profiler.

    Mentre l'app è in esecuzione, seleziona una parte della sequenza temporale che vuoi ispezionare e seleziona heap JNI dal menu a discesa sopra l'elenco dei corsi, come mostrato di seguito. Puoi quindi ispezionare gli oggetti nell'heap come faresti normalmente e fare doppio clic sugli oggetti nella scheda Allocation Call Stack per vedere dove vengono allocati e rilasciati i riferimenti JNI nel codice.

    Importare, esportare e ispezionare i file di dump dell'heap della memoria

    Ora puoi importare, esportare e ispezionare i file di dump dell'heap della memoria di .hprof creati con Memory Profiler.

    Importa il file .hprof facendo clic su Avvia nuova sessione profiler nel riquadro Sessioni del profiler, quindi selezionando Carica da file. Puoi quindi esaminarne i dati in Memory Profiler come faresti con qualsiasi altro dump dell'heap.

    Per salvare i dati di dump dell'heap da esaminare in un secondo momento, utilizza il pulsante Esporta dump heap a destra della voce dump dell'heap nel riquadro Sessioni. Nella finestra di dialogo Esporta come visualizzata, salva il file con l'estensione .hprof del nome file.

    Registra l'attività della CPU durante l'avvio dell'app

    Ora puoi registrare l'attività della CPU durante l'avvio dell'app, nel seguente modo:

    1. Seleziona Esegui > Modifica configurazioni dal menu principale.
    2. Nella scheda Profilazione della configurazione di esecuzione che ti interessa, seleziona la casella accanto a Inizia la registrazione di una traccia del metodo all'avvio.
    3. Seleziona una configurazione di registrazione della CPU da utilizzare dal menu a discesa.
    4. Esegui il deployment dell'app su un dispositivo con Android 8.0 (livello API 26) o versioni successive selezionando Esegui > Profilo.
    Esporta tracce CPU

    Dopo aver registrato l'attività della CPU con il Profiler CPU, puoi esportare i dati come file .trace da condividere con altri o ispezionarli in un secondo momento.

    Per esportare una traccia dopo aver registrato l'attività della CPU:

    1. Fai clic con il tasto destro del mouse sulla registrazione che vuoi esportare dalla sequenza temporale della CPU.
    2. Seleziona Esporta traccia dal menu a discesa.
    3. Vai alla posizione in cui vuoi salvare il file e fai clic su Salva.
    Importa e controlla i file di traccia della CPU

    Ora puoi importare e ispezionare i file .trace creati con l'API di debug o con il CPU Profiler. Al momento non puoi importare registrazioni di System Trace.

    Importa il file di traccia facendo clic su Avvia nuova sessione del profiler nel riquadro Sessioni del profiler, quindi seleziona Carica da file. Puoi quindi esaminarne i dati nel Profiler della CPU come faresti normalmente, con le seguenti eccezioni:

    • L'attività della CPU non è rappresentata lungo la sequenza temporale della CPU.
    • La sequenza temporale dell'attività dei thread indica solo dove sono disponibili i dati di traccia per ogni thread e non gli stati effettivi dei thread (come in esecuzione, in attesa o in sospensione).
    Registra l'attività della CPU utilizzando l'API di debug

    Ora puoi avviare e interrompere la registrazione dell'attività della CPU nel Profiler CPU instrumentando la tua app con l'API di debug. Dopo aver eseguito il deployment dell'app su un dispositivo, il profiler inizia automaticamente a registrare l'attività della CPU quando l'app chiama startMethodTracing(String tracePath) e interrompe la registrazione quando la tua app chiama stopMethodTracing(). Durante la registrazione dell'attività della CPU attivata utilizzando questa API, Profiler CPU mostra l'API di debug come configurazione della registrazione della CPU selezionata.

    Profiler di energia

    Energy Profiler mostra una visualizzazione del consumo energetico stimato della tua app, nonché degli eventi di sistema che influiscono sul consumo energetico, come wakelock, sveglie e job.

    Quando esegui l'app su un dispositivo connesso o su un emulatore Android con Android 8.0 (API 26) o versioni successive, il Profiler energia viene visualizzato come nuova riga nella parte inferiore della finestra Profiler.

    Fai clic sulla riga Energia per massimizzare la visualizzazione del profilo dell'energia. Posiziona il puntatore del mouse su una barra della sequenza temporale per visualizzare un'analisi del consumo energetico per CPU, rete e risorse di geolocalizzazione (GPS), nonché i relativi eventi di sistema.

    Gli eventi di sistema che influiscono sul consumo energetico sono indicati nella sequenza temporale Sistema sotto la sequenza temporale Energia. I dettagli degli eventi di sistema entro l'intervallo di tempo specificato vengono mostrati nel riquadro degli eventi quando selezioni un intervallo di tempo nella sequenza temporale di Energia.

    Per visualizzare lo stack di chiamate e altri dettagli per un evento di sistema, ad esempio un wakelock, selezionalo nel riquadro degli eventi. Per accedere al codice responsabile di un evento di sistema, fai doppio clic sulla voce nello stack di chiamate.

    Controllo lint

    Android Studio 3.2 include molte funzionalità nuove e migliorate per il controllo tramite lint.

    I nuovi controlli lint consentono di trovare e identificare i problemi comuni relativi al codice, che vanno dagli avvisi su potenziali problemi di usabilità a errori ad alta priorità relativi a potenziali vulnerabilità di sicurezza.

    Controlli lint per l'interoperabilità Java/Kotlin

    Per assicurarti che il codice Java interopera correttamente con il codice Kotlin, i nuovi controlli lint applicano le best practice descritte nella Guida all'interoperabilità di Kotlin. Esempi di questi controlli includono la ricerca della presenza di annotazioni null, l'utilizzo di parole chiave hard Kotlin e l'inserimento dei parametri lambda per ultimi.

    Per attivare questi controlli, fai clic su File > Impostazioni (Android Studio > Preferenze su Mac) per aprire la finestra di dialogo Impostazioni, vai alla sezione Editor > Ispezioni > Android > Lint > Interoperabilità > Interoperabilità Kotlin e seleziona le regole che vuoi attivare.

    Per abilitare questi controlli per le build a riga di comando, aggiungi quanto segue al tuo file build.gradle:

            android {
                lintOptions {
                    check 'Interoperability'
                }
            }
            
          
    Lint controlla la presenza di sezioni

    Il nuovo lint controlla le sezioni per verificare che tu stia creando sezioni correttamente. Ad esempio, i controlli lint ti avvisano se non hai assegnato un'azione principale a una sezione.

    Nuovo target Gradle

    Utilizza la nuova attività Gradle lintFix per applicare tutte le correzioni di sicurezza suggerite dal controllo lint direttamente al codice sorgente. Un esempio di controllo lint che suggerisce una correzione sicura da applicare è SyntheticAccessor.

    Aggiornamenti dei metadati

    Vari metadati, come il controllo della trasmissione del servizio, sono stati aggiornati affinché i controlli lint funzionino con Android 9 (livello API 28).

    Avviso se viene eseguito lint su una nuova variante

    Lint ora registra la variante e la versione con cui viene registrata una base di riferimento e lint ti avvisa se viene eseguita su una variante diversa da quella con cui è stata creata la base di riferimento.

    Miglioramenti ai controlli lint esistenti

    Android Studio 3.2 include molti miglioramenti ai controlli lint esistenti. Ad esempio, i controlli del ciclo delle risorse ora si applicano a tipi di risorse aggiuntivi e il rilevatore di traduzione può trovare le traduzioni mancanti all'istante, nell'editor.

    ID problema più rilevabili

    Ora gli ID problema vengono mostrati in più posizioni, anche nella finestra Risultati dell'ispezione. In questo modo potrai trovare più facilmente le informazioni che ti servono per abilitare o disabilitare controlli specifici tramite lintOptions in build.gradle.

    Per maggiori informazioni, consulta Configurare le opzioni di lint con Gradle.

    Associazione dati V2

    Data Binding V2 è ora abilitata per impostazione predefinita ed è compatibile con la V1. Ciò significa che, se disponi di dipendenze di libreria compilate con la versione V1, puoi utilizzarle con i progetti che utilizzano l'associazione dati V2. Tuttavia, tieni presente che i progetti che utilizzano la versione V1 non possono utilizzare dipendenze compilate con V2.

    Rimozione dello zucchero D8

    In Android Studio 3.1 abbiamo integrato la fase di desugaring nello strumento D8 come funzionalità sperimentale, riducendo il tempo complessivo di compilazione. In Android Studio 3.2, il deprovisioning con D8 è attivo per impostazione predefinita.

    Nuovo strumento di riduzione del codice

    R8 è un nuovo strumento per la riduzione e l'offuscamento del codice che sostituisce ProGuard. Puoi iniziare a utilizzare la versione di anteprima di R8 includendo quanto segue nel file gradle.properties del tuo progetto:

          android.enableR8 = true
        

    ABI predefinite modificate per più APK

    Quando crei più APK che hanno come target una diversa ABI, il plug-in non genera più APK per le seguenti ABI per impostazione predefinita: mips, mips64 e armeabi.

    Se vuoi creare APK che hanno come target queste ABI, devi usare NDK r16b o precedente e specificare le ABI nel file build.gradle, come mostrato di seguito:

        splits {
            abi {
                include 'armeabi', 'mips', 'mips64'
                ...
            }
        }
        
        splits {
            abi {
                include("armeabi", "mips", "mips64")
                ...
            }
        }
        

    Nota: questa modifica del comportamento è inclusa anche in Android Studio 3.1 RC1 e versioni successive.

    Funzionalità dell'editor migliorate per i file di build CMake

    Se utilizzi CMake per aggiungere codice C e C++ al progetto, Android Studio include ora funzionalità di editor migliorate che consentono di modificare gli script di build CMake, come il seguente:

    • Evidenziazione della sintassi e completamento del codice: l'IDE ora evidenzia e suggerisce il completamento del codice per i comandi CMake più comuni. Inoltre, puoi passare a un file facendovi clic mentre premi il tasto Ctrl (Command su Mac).
    • Riformattazione del codice: ora puoi utilizzare l'opzione di riformattazione del codice di IntelliJ per applicare stili di codice agli script di build CMake.
    • Refactoring sicuro: gli strumenti di refactoring integrati dell'IDE ora controllano anche se stai rinominando o eliminando i file a cui fai riferimento negli script di build di CMake.

    Quando utilizzi la finestra Progetto nelle versioni precedenti di Android Studio, potevi esplorare e controllare solo i file di intestazione che appartengono alle librerie che crei da un progetto locale. Con questa release puoi ora visualizzare e ispezionare anche i file di intestazione inclusi con le dipendenze di libreria C/C++ esterne che importi nel progetto dell'app.

    Se includi già codice e librerie C/C++ nel tuo progetto, apri la finestra Progetto sul lato sinistro dell'IDE selezionando Visualizza > Finestre degli strumenti > Progetto dal menu principale e seleziona Android dal menu a discesa. Nella directory cpp, tutte le intestazioni che rientrano nell'ambito del progetto dell'app sono organizzate nel nodo include per ciascuna dipendenza della libreria C/C++ locale, come mostrato di seguito.

    Multidex nativo abilitato per impostazione predefinita

    Le versioni precedenti di Android Studio attivavano il multidex nativo durante il deployment della versione di debug di un'app su un dispositivo con livello API Android 21 o versioni successive. Ora, che tu stia eseguendo il deployment su un dispositivo o creando un APK per la release, il plug-in Android per Gradle abilita il multidex nativo per tutti i moduli che impostano minSdkVersion=21 o versioni successive.

    AAPT2 spostato nel Repository Maven di Google

    A partire da Android Studio 3.2, l'origine di AAPT2 (Android Asset Packaging Tool 2) è il Repository Maven di Google.

    Per utilizzare AAPT2, assicurati che sia presente una dipendenza google() nel file build.gradle, come mostrato qui:

        buildscript {
            repositories {
                google() // here
                jcenter()
            }
            dependencies {
                classpath 'com.android.tools.build:gradle:3.2.0'
            }
        }
        allprojects {
            repositories {
                google() // and here
                jcenter()
            }
        }
        
        buildscript {
            repositories {
                google() // here
                jcenter()
            }
            dependencies {
                classpath("com.android.tools.build:gradle:3.2.0")
            }
        }
        allprojects {
            repositories {
                google() // and here
                jcenter()
            }
        }
        

    La nuova versione di AAPT2 corregge molti problemi, tra cui una migliore gestione dei caratteri non ASCII su Windows.

    Rimozione della configurazione on demand

    La preferenza Configura on demand è stata rimossa da Android Studio.

    Android Studio non passa più l'argomento --configure-on-demand a Gradle.

    Assistente connessioni ADB

    Il nuovo ADB Connection Assistant fornisce istruzioni dettagliate per aiutarti a configurare e utilizzare un dispositivo tramite la connessione Android Debug Bridge (ADB).

    Per avviare l'assistente, scegli Strumenti > Assistente connessioni.

    L'Assistente connessioni ADB fornisce istruzioni, controlli contestuali e un elenco dei dispositivi connessi in una serie di pagine del riquadro Assistente.

    Miglioramenti all'emulatore

    Ora puoi salvare e caricare snapshot di una AVD (dispositivo virtuale Android) in qualsiasi momento nell'emulatore Android, in modo da ripristinare in modo facile e veloce un dispositivo emulato a uno stato noto per i test. Quando modifichi una Durata di visualizzazione media utilizzando Gestione AVD, puoi specificare l'istantanea della durata di visualizzazione media da caricare all'avvio.

    I controlli per il salvataggio, il caricamento e la gestione degli snapshot AVD sono ora disponibili nella scheda Snapshot della finestra Controlli estesi dell'emulatore.

    Per maggiori dettagli, vedi Istantanee.

    Per ulteriori informazioni sulle novità e sulle modifiche apportate all'emulatore, consulta le note di rilascio dell'emulatore.

    3.1 (marzo 2018)

    Android Studio 3.1.0 è una release principale che include una serie di nuove funzionalità e miglioramenti.

    3.1.4 (agosto 2018)

    Questo aggiornamento di Android Studio 3.1 include le seguenti modifiche e correzioni:

    • Il Kotlin in bundle è ora la versione 1.2.50.
    • I nuovi progetti vengono creati con kotlin-stdlib-jdk* artifacts anziché con gli artefatti kotlin-stdlib-jre*, che sono deprecati.
    • L'analisi R8 delle regole ProGuard è stata migliorata.
    • Sono stati risolti i seguenti bug:
      • Tentativo di eseguire la classe Kotlin Main non riuscito a causa di un errore: "Error: Could not find or load main class..."
      • R8 è entrato in un ciclo infinito durante l'esecuzione di determinate ottimizzazioni.
      • A volte, il comando Ripeti test non riusciti nella finestra Esegui restituiva erroneamente il messaggio "Nessun test trovato".
      • D8 non ha gestito correttamente le istanze invoke-virtual, causando un arresto anomalo con VerifyError: invoke-super/virtual can't be used on private method
      • Il compilatore di associazione dati dipendeva da una versione precedente di com.android.tools:annotations. Il compilatore ora utilizza annotazioni relative agli strumenti del progetto di base, se disponibili.
      • Android Studio ha subito un arresto anomalo durante le transizioni dei frammenti quando si utilizzano i profiler.
      • Si è verificato un arresto anomalo del debugger 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 di Android Studio 3.1 include correzioni per i seguenti bug:

    • A causa delle perdite di memoria, Android Studio rallentava e non rispondeva dopo che avevi iniziato a utilizzare l'editor di layout. Questo aggiornamento include correzioni per la maggior parte di questi problemi. Prevediamo di rilasciare a breve un altro aggiornamento per risolvere ulteriori perdite di memoria.
    • Alcune applicazioni create con D8 hanno registrato un arresto anomalo su alcuni tablet Verizon Ellipsis.
    • L'installazione delle applicazioni create con D8 non è riuscita con un errore INSTALL_FAILED_DEXOPT sui dispositivi con Android 5.0 o 5.1 (livello API 21 o 22).
    • Alcune applicazioni che utilizzavano la libreria OkHttp e erano state create con D8 si arrestavano in modo anomalo sui dispositivi con Android 4.4 (livello API 19).
    • A volte non è stato possibile avviare Android Studio, con un valore ProcessCanceledException durante l'inizializzazione della classe per com.intellij.psi.jsp.JspElementType.

    3.1.2 (aprile 2018)

    Questo aggiornamento di Android Studio 3.1 include correzioni per i seguenti bug:

    • In alcuni casi, Android Studio si è bloccato a tempo indeterminato durante l'uscita.
    • Le build configurate con set di origine non sono riuscite con il seguente messaggio quando è stata abilitata l'esecuzione istantanea:

      "The SourceSet name is not recognized by the Android Gradle Plugin."

    • Quando l'esecuzione istantanea è abilitata, le build di nuovi progetti Kotlin non sono riuscite quando vengono attivate dal comando Esegui.
    • Durante la modifica del file build.gradle, a volte si verificava un notevole ritardo tra la digitazione di un carattere e la sua visualizzazione sullo schermo.
    • Gli errori di build si sono verificati durante il processo di 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 alcune chiamate riflettenti.

    Questo aggiornamento include anche modifiche che rendono molto più veloce l'esecuzione dei controlli di lint da Gradle in alcuni scenari.

    3.1.1 (aprile 2018)

    Questo aggiornamento di 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à Crea compatibile con Gradle è stata rimossa dall'area Prima del lancio in Esegui/configurazioni debug. Il risultato è stato che i progetti non sono stati creati quando è stato fatto clic sul pulsante Esegui o Debug, il che causava errori come il deployment di APK errati e arresti anomali durante l'utilizzo dell'esecuzione istantanea.

      Per risolvere questo problema, Android Studio 3.1.1 aggiunge l'attività Crea con riconoscimento per Gradle alla configurazione di esecuzione per i progetti in cui manca questa voce. Questa modifica si verifica dopo la prima sincronizzazione di Gradle, quando il progetto viene caricato.

    • Si è verificato un arresto anomalo del debugger 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 Crea varianti.
    • I file AAR (archivio Android) sono stati estratti due volte, una durante il processo di sincronizzazione di Gradle e l'altra durante il processo di compilazione di Gradle.
    • Mancano elementi in alcuni disegni di disegno vettoriali importati dai file SVG.
    • L'avviso relativo al ritiro della configurazione delle dipendenze compile è stato aggiornato con indicazioni migliori relative alle configurazioni implementation e api. Per dettagli sulla migrazione dall'utilizzo della configurazione compile, consulta la documentazione relativa alle nuove configurazioni delle dipendenze.

    Programmazione/IDE

    IntelliJ 2017.3.3

    L'IDE principale di Android Studio è stato aggiornato con i miglioramenti apportati da IntelliJ IDEA durante la release 2017.3.3. I miglioramenti includono una migliore analisi del flusso di controllo per raccolte e stringhe, una migliore inferenza nulla, 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 gli aggiornamenti relativi alla correzione di bug.

    Miglioramenti alla modifica SQL con la stanza virtuale

    Quando utilizzi la libreria dei database delle stanze, puoi sfruttare diversi miglioramenti alla modifica SQL:

    • Il completamento del codice all'interno di un elemento Query comprende tabelle (entità), colonne, parametri di query, alias, join, sottoquery e clausole WITH SQL.
    • 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, riscrivendo anche 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 una classe o di un campo Java riscrive il codice SQL corrispondente.
    • Gli utilizzi di SQL vengono mostrati quando utilizzi Trova utilizzi (fai clic con il tasto destro del mouse e scegli Trova utilizzi dal menu contestuale).
    • Per accedere alla dichiarazione di un'entità SQL nel codice Java o Kotlin, puoi tenere premuto Ctrl (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 di dati

    Questo aggiornamento include diversi miglioramenti per l'associazione di dati:

    • Ora puoi utilizzare un oggetto LiveData come campo osservabile nelle espressioni di associazione di dati. La classe ViewDataBinding ora include un nuovo metodo setLifecycle() che puoi utilizzare per osservare gli oggetti LiveData.

    • La classe ObservableField ora può accettare altri oggetti Observable nel suo costruttore.

    • Puoi visualizzare l'anteprima di un nuovo compilatore incrementale per le classi di associazione di dati. Per i dettagli di questo nuovo compilatore e le istruzioni per abilitarlo, consulta Data Binding Compiler V2.

      I vantaggi del nuovo compilatore includono i seguenti:

      • Le classi ViewBinding vengono generate dal plug-in Android per Gradle prima del compilatore Java.
      • Le librerie mantengono le classi di associazione generate quando l'app viene compilata, anziché rigenerare ogni volta. Ciò può migliorare notevolmente le prestazioni per i progetti multimodulo.

    Compilatore e Gradle

    D8 è il compilatore DEX predefinito

    Il compilatore D8 viene ora utilizzato per impostazione predefinita per generare il bytecode DEX.

    Questo nuovo compilatore DEX offre diversi vantaggi, tra cui i seguenti:

    • Dexing più veloce
    • Riduzione della memoria utilizzata
    • Generazione del codice migliorata (allocazione dei registri migliore, tabelle di stringhe più intelligenti)
    • Migliore esperienza di debug durante la visualizzazione del codice

    Non è necessario apportare modifiche al codice o al flusso di lavoro di sviluppo per ottenere questi vantaggi, a meno che tu non abbia precedentemente disabilitato 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, consulta la sezione Nuovo compilatore DEX.

    Desugaring incrementale

    Per i progetti che utilizzano le funzionalità di linguaggio Java 8, il desugaring incrementale è abilitato per impostazione predefinita, il che può migliorare i tempi di build.

    La desugaring converte lo zucchero sintattico in un modulo che il compilatore può elaborare in modo più efficiente.

    Puoi disabilitare la desugaring incrementale specificando quanto segue nel file gradle.properties del tuo progetto:

            android.enableIncrementalDesugaring=false
          
    Finestra di output semplificata

    La console di Gradle è stata sostituita dalla finestra Crea, che contiene le schede Sincronizzazione e Crea.

    Per maggiori dettagli su come utilizzare la nuova finestra semplificata Crea, consulta Monitorare il processo di compilazione.

    Aggiornamenti batch e contemporaneità dell'indicizzazione

    I processi di sincronizzazione Gradle e IDE sono ora molto più efficienti, riducendo il tempo sprecato per molte operazioni di indicizzazione ridondanti.

    C++ e LLDB

    Abbiamo apportato numerosi miglioramenti a livello di qualità e prestazioni nelle fasi di programmazione, sincronizzazione, creazione e debug di C++. I miglioramenti includono quanto segue:

    • Se lavori con progetti C++ di grandi dimensioni, dovresti notare un miglioramento significativo nella riduzione del tempo dedicato alla creazione di simboli. Anche i tempi di sincronizzazione vengono ridotti notevolmente per i progetti di grandi dimensioni.

    • Le prestazioni durante la creazione e la sincronizzazione con CMake sono state migliorate grazie a un riutilizzo più aggressivo dei risultati memorizzati nella cache.

    • L'aggiunta di formatter ("stampanti belle") 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 usi Windows a 32 bit e devi eseguire il debug del codice nativo, utilizza Android Studio 2.3.

    Kotlin

    Kotlin aggiornato alla versione 1.2.30

    Android Studio 3.1 include la versione 1.2.30 di Kotlin.

    Il codice Kotlin ora è analizzato con il controllo lint della 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 le prestazioni

    Esempio di processi C++ nativi con CPU Profiler

    Il Profilo CPU ora include una configurazione predefinita per registrare tracce campionate dei thread nativi della tua app. Puoi utilizzare questa configurazione eseguendo il deployment della tua app su un dispositivo con Android 8.0 (livello API 26) o versioni successive, quindi selezionando Campionata (Nativa) dal menu a discesa delle configurazioni di registrazione di Profiler della CPU. 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 tracciamento dei thread Java, seleziona una configurazione Sampled (Java) o Instrumented (Java).

    Filtra le tracce della CPU, i risultati dell'allocazione della memoria e i dump dell'heap

    CPU Profiler e Memory Profiler includono una funzionalità di ricerca che consente di filtrare i risultati dalla registrazione di un'analisi del metodo, dall'allocazione della memoria o dal 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 aprire il campo di ricerca anche premendo Ctrl + F (Comando + F su Mac).

    Nella scheda Filame di Profiler della CPU, gli stack di chiamate che includono metodi correlati alla tua query di ricerca vengono evidenziati e spostati sul lato sinistro del grafico.

    Per maggiori informazioni sui filtri per metodo, classe o nome del pacchetto, consulta Registrare e ispezionare le tracce dei metodi.

    Scheda Richiesta in Profiler di rete

    Il Network Profiler ora include una scheda Richiesta che fornisce dettagli sulle richieste di rete durante la sequenza temporale selezionata. Nelle versioni precedenti, Network Profiler forniva solo informazioni sulle risposte di rete.

    Visualizzazione thread in Profiler di rete

    Dopo aver selezionato una parte della sequenza temporale in Network Profiler, puoi selezionare una delle seguenti schede per visualizzare ulteriori dettagli sull'attività di rete durante questo periodo di tempo:

    • Visualizzazione connessione: 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 esaminare la dimensione, il tipo, lo stato e la durata della trasmissione.
    • Visualizzazione thread: mostra l'attività di rete di ciascun thread della CPU dell'app. Questa visualizzazione consente di ispezionare i thread dell'app responsabili di ogni richiesta di rete.

    Controllo layout

    Layout Inspector ha acquisito nuove funzionalità, tra cui alcune funzionalità precedentemente fornite dagli strumenti deprecati di visualizzazione della gerarchia e 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 di utilizzarla come overlay (utile per confrontare il layout con un modello dell'interfaccia utente)
    • Esegui il rendering dell'anteprima del sottoalbero per isolare una visualizzazione in un layout complesso

    Editor layout

    La tavolozza nell'editor di layout ha ricevuto molti miglioramenti:

    • Riorganizzazione delle categorie per visualizzazioni e layout.
    • Nuova categoria Comune per viste e layout, a cui puoi aggiungere un comando Preferito.
    • Ricerca di viste e layout migliorata.
    • Nuovi comandi per la documentazione di apertura per una vista o un elemento di layout specifico.

    Puoi utilizzare il nuovo comando Converti vista nell'albero dei componenti o nell'editor di progettazione per convertire una vista o un layout in un altro tipo di vista o layout.

    Ora puoi creare facilmente vincoli per gli elementi vicino alla vista selezionata utilizzando i nuovi pulsanti Crea una connessione nello strumento di controllo delle viste nella parte superiore della finestra Attributi.

    Esecuzione ed esecuzione istantanea

    Il comportamento dell'opzione Utilizza la stessa selezione per i lanci futuri nella finestra di dialogo Seleziona la destinazione del deployment è stato reso più coerente. Se l'opzione Utilizza stessa selezione è abilitata, la finestra di dialogo Seleziona target di deployment si apre solo la prima volta che utilizzi il comando Esegui fino a quando il dispositivo selezionato non è più connesso.

    Quando scegli come target un dispositivo con Android 8.0 (livello API 26) o versioni successive, Esecuzione istantanea può eseguire il deployment delle 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 apportate nell'emulatore rispetto ad 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:

    • Snapshot di Avvio rapido per salvare lo stato dell'emulatore e avviare più rapidamente, grazie alla possibilità di utilizzare il comando Save now (Salva ora) per salvare uno stato di avvio personalizzato.
    • Schermata 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.

    Miglioramenti dell'interfaccia utente e dell'esperienza utente

    Altre descrizioni comando, scorciatoie da tastiera e messaggi utili

    Abbiamo aggiunto descrizioni comando e utili overlay di messaggi in molte posizioni all'interno di Android Studio.

    Per visualizzare le scorciatoie da tastiera per molti comandi, è sufficiente tenere premuto il puntatore del mouse su un pulsante fino alla visualizzazione della descrizione comando.

    Menu Strumenti > Android rimosso

    Il menu Strumenti > Android è stato rimosso. I comandi che prima erano inclusi in questo menu sono stati spostati.

    • Molti comandi sono stati spostati direttamente nel menu Strumenti.
    • Il comando Sincronizza progetto con file gradle è stato spostato nel menu File.
    • Il comando Device Monitor è stato rimosso, come descritto di seguito.

    Device Monitor disponibile dalla riga di comando

    In Android Studio 3.1, Monitoraggio dispositivi ha un ruolo minore rispetto a prima. In molti casi, la funzionalità disponibile tramite il Monitoraggio dispositivi è ora fornita da strumenti nuovi e migliorati.

    Consulta la documentazione di Device Monitor per le istruzioni su come richiamare Device Monitor dalla riga di comando e per i dettagli sugli strumenti disponibili tramite Device Monitor.

    3.0 (ottobre 2017)

    Android Studio 3.0.0 è una release principale che include una serie di nuove funzionalità e miglioramenti.

    Utenti di macOS: se stai aggiornando una versione precedente di Android Studio, potresti visualizzare una finestra di dialogo di errore di aggiornamento con il messaggio "Sono stati rilevati alcuni conflitti nell'area di installazione". Ignora questo errore e fai clic su Annulla per riprendere l'installazione.

    3.0.1 (novembre 2017)

    Si tratta di un aggiornamento secondario ad Android Studio 3.0 che include correzioni di bug generali e miglioramenti delle prestazioni.

    Plug-in Android per Gradle 3.0.0

    Il nuovo plug-in Android per Gradle include una serie di miglioramenti e nuove funzionalità, ma migliora principalmente le prestazioni delle build per i progetti con un numero elevato di moduli. Quando utilizzi il nuovo plug-in con questi progetti di grandi dimensioni, dovresti riscontrare quanto segue:

    • Tempi di configurazione delle build più rapidi grazie alla nuova risoluzione delle dipendenze in ritardo.
    • Risoluzione delle dipendenze con riconoscimento delle varianti solo per i progetti e le varianti che stai creando.
    • Tempi di build incrementali più rapidi quando si applicano semplici modifiche al codice o alle risorse.

    Nota: questi miglioramenti hanno richiesto modifiche significative che danneggiano alcuni comportamenti del plug-in, DSL e API. L'upgrade alla versione 3.0.0 potrebbe richiedere modifiche ai file di build e ai plug-in Gradle.

    Questa versione include anche quanto segue:

    • Supporto per Android 8.0.
    • Supporto per la creazione di APK separati in base alle risorse di lingua.
    • Supporto per librerie Java 8 e funzionalità in linguaggio Java 8 (senza il compilatore Jack).
    • Supporto per Android Test Support Library 1.0 (Android Test Utility e Android Test Orchestrator).
    • Velocità di build ndk-build e cmake migliorate.
    • Migliore velocità di sincronizzazione Gradle.
    • AAPT2 è ora attivo per impostazione predefinita.
    • L'utilizzo di ndkCompile è ora più limitato. Dovresti invece eseguire la migrazione a CMake o a ndk-build per compilare il codice nativo che vuoi pacchettizzare nel tuo APK. Per scoprire di più, consulta Eseguire la migrazione da ndkcompile.

    Per ulteriori informazioni su cosa è cambiato, consulta le note di rilascio del plug-in Android per Gradle.

    Se vuoi eseguire l'upgrade al nuovo plug-in, consulta la pagina Eseguire la migrazione al plug-in Android per Gradle 3.0.0.

    Assistenza Kotlin

    Come annunciato al Google I/O 2017, il linguaggio di programmazione Kotlin è ora ufficialmente supportato su Android. Pertanto, in questa release Android Studio include il supporto per il linguaggio Kotlin per lo sviluppo per Android.

    Puoi incorporare Kotlin nel tuo progetto convertendo un file Java in Kotlin (fai clic su Codice > Converti file Java in file Kotlin) o creando un nuovo progetto abilitato per Kotlin utilizzando la procedura guidata Nuovo progetto.

    Per iniziare, scopri come aggiungere Kotlin al tuo progetto.

    Supporto delle funzionalità del linguaggio Java 8

    Ora puoi utilizzare alcune funzionalità del linguaggio Java 8 e usufruire di librerie create con Java 8. Jack non è più necessario e devi prima disabilitare Jack per utilizzare il supporto migliorato di Java 8 integrato nella toolchain predefinita.

    Per aggiornare il progetto in modo da supportare la nuova toolchain del linguaggio Java 8, aggiorna Source Compatibility e Target Compatibility nella versione 1.8 nella finestra di dialogo Struttura del progetto (fai clic su File > Struttura del progetto). Per saperne di più, scopri come utilizzare le funzionalità del linguaggio Java 8.

    Profiler di Android

    Il nuovo Profiler Android sostituisce lo strumento Monitoraggio Android e fornisce una nuova suite di strumenti per misurare in tempo reale l'utilizzo di CPU, memoria e rete della tua app. Puoi eseguire il tracciamento dei metodi basati su campioni per cronometrare l'esecuzione del codice, acquisire dump dell'heap, visualizzare le allocazioni della memoria e analizzare i dettagli dei file trasmessi in rete.

    Per aprirlo, fai clic su Visualizza > Finestre degli strumenti > Profiler Android (o fai clic su Android Profiler nella barra degli strumenti).

    La sequenza temporale degli eventi nella parte superiore della finestra mostra gli eventi tocco, le pressioni dei tasti e le modifiche delle attività, in modo da avere più contesto per comprendere gli altri eventi di prestazioni nella sequenza temporale.

    Nota: anche la visualizzazione Logcat è stata spostata in una finestra separata (in precedenza si trovava all'interno di Android Monitor, che è stata rimossa).

    Dalla sequenza temporale panoramica di Android Profiler, fai clic sulle sequenze temporali di CPU, MEMORY o RETE per accedere agli strumenti del profiler corrispondenti.

    Profiler CPU

    Profiler della CPU consente di analizzare l'utilizzo dei thread della CPU da parte dell'app attivando una traccia della CPU di esempio o instrumentata. Dopodiché, puoi risolvere i problemi di prestazioni della CPU utilizzando diversi filtri e visualizzazioni dei dati.

    Per ulteriori informazioni, consulta la guida di Profiler CPU.

    Profiler di memoria

    Memory Profiler consente di identificare perdite di memoria e abbandono della memoria che possono causare interruzioni, blocchi e persino arresti anomali delle app. Mostra un grafico in tempo reale dell'utilizzo della memoria dell'app, ti consente di acquisire un dump dell'heap, forzare la garbage collection e monitorare le allocazioni della memoria.

    Per ulteriori informazioni, consulta la guida di Profiler di memoria.

    Profiler di rete

    Network Profiler consente di monitorare l'attività di rete della tua app, esaminare il payload di ciascuna richiesta di rete e collegarti al codice che ha generato la richiesta di rete.

    Per ulteriori informazioni, consulta la guida di Network Profiler.

    Profilazione e debug degli APK

    Android Studio ora ti consente di profilare ed eseguire il debug di qualsiasi APK senza doverlo creare da un progetto Android Studio, a condizione che l'APK sia stato realizzato per attivare il debug e che tu abbia accesso ai simboli di debug e ai file di origine.

    Per iniziare, fai clic su Profilo o APK di debug nella schermata di benvenuto di Android Studio. In alternativa, se hai già un progetto aperto, fai clic su File > Profilo o APK di debug nella barra dei menu. Vengono visualizzati i file APK non compressi, ma il codice non viene decompilato. Pertanto, per aggiungere correttamente i punti di interruzione e visualizzare le analisi dello stack, devi allegare file di origine Java e simboli di debug nativi.

    Per maggiori informazioni, consulta la pagina Profilo e debug di APK predefiniti.

    Esplora file del dispositivo

    La nuova Esplora file del dispositivo ti consente di esaminare il file system del dispositivo connesso e di trasferire file tra il dispositivo e il computer. Questo sostituisce lo strumento di file system disponibile in DCM.

    Per aprirlo, fai clic su Visualizza > Finestre degli strumenti > Esplora file del dispositivo.

    Per ulteriori informazioni, consulta la guida Esplora file del dispositivo.

    Supporto delle app istantanee

    Il nuovo supporto delle app istantanee Android ti consente di creare app istantanee nel tuo progetto utilizzando due nuovi tipi di moduli: i moduli per le app istantanee e i moduli delle funzionalità (che richiedono l'installazione dell'SDK per lo sviluppo di app istantanee).

    Android Studio include anche una nuova azione di refactoring modulare per aiutarti ad aggiungere il supporto per le app istantanee in un progetto esistente. Ad esempio, se vuoi eseguire il refactoring del progetto per inserire alcune classi in un modulo delle funzionalità dell'app istantanea, seleziona le classi nella finestra Progetto e fai clic su Refactoring > Modularizza. Nella finestra di dialogo visualizzata, seleziona il modulo in cui inserire i corsi e fai clic su OK.

    Quando sei pronto a testare la tua app istantanea, puoi creare ed eseguire il tuo modulo dell'app istantanea su un dispositivo connesso specificando l'URL dell'app istantanea nelle opzioni di avvio della configurazione. Seleziona Esegui > Modifica configurazioni, seleziona il modulo dell'app istantanea e imposta l'URL in Opzioni di avvio.

    Per ulteriori informazioni, consulta la sezione App istantanee Android.

    Moduli Android Things

    Nuovi modelli di Android Things nelle procedure guidate Nuovo progetto e Nuovo modulo per aiutarti a iniziare a sviluppare per dispositivi IoT con piattaforma Android.

    Per ulteriori informazioni, scopri come creare un progetto Android Things.

    Procedura guidata Icone adattive

    Image Asset Studio ora supporta gli disegnabili vettoriali e consente di creare icone adattive in Avvio applicazioni per Android 8.0 e contemporaneamente creare icone tradizionali (icone "Legacy") per i dispositivi meno recenti.

    Per iniziare, fai clic con il tasto destro del mouse sulla cartella res nel progetto, quindi fai clic su Nuovo > Asset immagine. Nella finestra di Asset Studio, seleziona Icone di Avvio app (adattive e legacy) come tipo di icona.

    Nota: devi impostare compileSdkVersion su 26 o un valore superiore per usare le icone di Avvio applicazioni adattive.

    Per maggiori informazioni, scopri di più sulle icone adattive.

    Supporto per le risorse per i caratteri

    Per supportare le nuove risorse per i caratteri in Android 8.0, Android Studio include un selettore di risorse per i caratteri che consente di raggruppare i caratteri nell'app o di configurare il progetto in modo da scaricare i caratteri sul dispositivo (se disponibili). L'editor di layout può anche visualizzare l'anteprima dei caratteri nel layout.

    Per provare i caratteri scaricabili, assicurati che sul tuo dispositivo o nell'emulatore sia in esecuzione Google Play Services 11.2.63 o versioni successive. Per maggiori informazioni, leggi l'articolo sui caratteri scaricabili.

    Assistente di indicizzazione delle app Firebase

    L'Assistente Firebase è stato aggiornato con un nuovo tutorial per testare l'indicizzazione delle app. Per aprire l'assistente, seleziona Strumenti > Firebase. Quindi, seleziona Indicizzazione delle app > Testa l'indicizzazione delle app.

    Il tutorial include nuovi pulsanti per testare l'indicizzazione dei contenuti pubblici e personali:

    • Nel passaggio 2, fai clic su Visualizza l'anteprima dei risultati di ricerca per verificare che gli URL vengano visualizzati nei risultati della Ricerca Google.
    • Nel passaggio 3, fai clic su Verifica la presenza di errori per verificare che gli oggetti indicizzabili nell'app siano stati aggiunti all'indice dei contenuti personali.

    L'Assistente Link alle app è stato aggiornato con le seguenti nuove funzionalità:

    • Aggiungi test degli URL per ogni mapping di URL per assicurarti che i filtri per intent gestiscano gli URL reali.

      Puoi anche definire questi test degli URL manualmente utilizzando il tag <tools:validation> descritto di seguito.

    • Crea un file Digital Asset Links con la voce dell'oggetto appropriata per supportare Google Smart Lock e aggiungi il tag asset_statements <meta-data> corrispondente al file manifest.

    Strumento di convalida del filtro per intent dell'URL

    Android Studio ora supporta un tag speciale nel file manifest che ti consente di verificare gli URL del filtro per intent. Si tratta degli stessi tag che l'Assistente link app può creare per te.

    Per dichiarare un URL di test per un filtro per intent, aggiungi un elemento <tools:validation> insieme all'elemento <intent-filter> corrispondente. Ecco alcuni esempi:

          <activity ...>
              <intent-filter>
                  ...
              </intent-filter>
              <tools:validation testUrl="https://www.example.com/recipe/1138" />
          </activity>
        
        

    Assicurati di includere anche xmlns:tools="http://schemas.android.com/tools" nel tag <manifest>.

    Se uno qualsiasi degli URL di test non supera la definizione del filtro per intent, viene visualizzato un errore lint. Un errore di questo tipo ti consente comunque di creare varianti di debug, ma comprometterà le build della release.

    Editor layout

    L'Editor di layout è stato aggiornato con una serie di miglioramenti, tra cui:

    • Nuovo layout della barra degli strumenti e nuove icone.
    • Layout aggiornato nell'albero dei componenti.
    • Migliorati gli inserti con visualizzazione a trascinamento.
    • Nuovo riquadro degli errori sotto l'editor che mostra tutti i problemi con suggerimenti da risolvere (se disponibili).
    • Diversi miglioramenti all'interfaccia utente per la creazione con ConstraintLayout, tra cui:
      • Nuovo supporto per creare barriere.
      • Nuovo supporto per la creazione di gruppi: nella barra degli strumenti, seleziona Linee guida > Aggiungi gruppo (richiede ConstraintLayout 1.1.0 beta 2 o versioni successive)
      • Nuova UI per creare catene: seleziona più viste, poi fai clic con il tasto destro del mouse e seleziona Catena.

    Controllo layout

    Controllo layout include miglioramenti che semplificano il debug dei problemi relativi ai layout delle app, tra cui il raggruppamento delle proprietà in categorie comuni e una nuova funzionalità di ricerca sia nel riquadro Visualizza struttura che nei riquadri Proprietà.

    Strumento di analisi APK

    Ora puoi utilizzare lo strumento di analisi APK dalla riga di comando con lo strumento apkanalyzer.

    Anche lo strumento di analisi APK è stato aggiornato con i seguenti miglioramenti:

    • Per gli APK creati con ProGuard, puoi caricare file di mapping ProGuard che aggiungono funzionalità al visualizzatore DEX, tra cui:
      • Nodi in grassetto per indicare che i nodi non devono essere rimossi durante la riduzione del codice.
      • Un pulsante per mostrare i nodi rimossi durante il processo di riduzione.
      • Pulsante che ripristina i nomi originali dei nodi nella visualizzazione ad albero che sono stati offuscati da ProGuard.
    • Il visualizzatore DEX ora mostra l'impatto stimato sulle dimensioni di ogni pacchetto, classe e metodo.
    • Nuove opzioni di filtro in alto per mostrare e nascondere campi e metodi.
    • Nella visualizzazione ad albero, i nodi che sono riferimenti non definiti nel file DEX sono riportati in corsivo.

    Per ulteriori informazioni, consulta Analizzare la build con lo strumento di analisi APK.

    Anteprima del compilatore DEX D8

    Android Studio 3.0 include un nuovo compilatore DEX opzionale chiamato D8. Alla fine sostituirà il compilatore DX, ma puoi scegliere di utilizzarlo subito.

    La compilazione DEX influisce direttamente sulla durata della build dell'app, sulle dimensioni del file .dex e sulle prestazioni di runtime. E quando confronti il nuovo compilatore D8 con l'attuale compilatore DX, D8 effettua la compilazione più velocemente e genera file .dex più piccoli, pur mantenendo prestazioni di runtime dell'app uguali o migliori.

    Per fare una prova, imposta quanto segue nel file gradle.properties del progetto:

    android.enableD8=true
        

    Per ulteriori informazioni, leggi il post del blog sul compilatore D8.

    Repository Maven di Google

    Android Studio ora utilizza il Repository Maven di Google per impostazione predefinita anziché a seconda di Android SDK Manager per ricevere aggiornamenti relativi a Android Support Library, Google Play Services, Firebase e altre dipendenze. In questo modo è più facile mantenere aggiornate le librerie, soprattutto quando si utilizza un sistema di integrazione continua (CI).

    Per impostazione predefinita, tutti i nuovi progetti ora includono il Repository Maven di Google. Per aggiornare il progetto esistente, aggiungi google() nel blocco repositories del file build.gradle di primo livello:

          allprojects {
              repositories {
                  google()
              }
          }
        
        

    Scopri di più sul Repository Maven di Google qui.

    Altre modifiche

    • Il debug nativo con Android Studio non supporta più Windows a 32 bit. Abbiamo scelto di concentrarci su altre piattaforme perché sono pochissimi gli sviluppatori che la utilizzano. Se usi Windows a 32 bit e prevedi di eseguire il debug del codice nativo, continua a utilizzare Android Studio 2.3.
    • È stato aggiornato l'IDE di base a IntelliJ 2017.1.2, che aggiunge una serie di nuove funzionalità da 2016.3 e 2017.1, come il refactoring del linguaggio Java 8, suggerimenti dei parametri, evidenziazione semantica, punti di interruzione trascinabili, risultati istantanei nella ricerca e molto altro.
    • Sono stati aggiunti molti nuovi controlli lint.
    • Scopri anche gli ultimi aggiornamenti di Android Emulator.

    2.3 (marzo 2017)

    Android Studio 2.3.0 è principalmente una correzione di bug e una release di stabilità, ma include anche una serie di nuove funzionalità.

    2.3.3 (giugno 2017)

    Si tratta di un aggiornamento di minore entità per aggiungere il supporto per Android O (livello API 26).

    2.3.2 (aprile 2017)

    Si tratta di un aggiornamento di minore entità ad Android Studio 2.3 per le seguenti modifiche:

    • Aggiornamenti di AVD Manager per supportare Google Play nelle immagini di sistema.
    • Correzioni di bug per le build NDK quando si utilizza la versione R14+ di NDK.

    Vedi anche gli aggiornamenti corrispondenti per Android Emulator 26.0.3.

    2.3.1 (aprile 2017)

    Si tratta di un aggiornamento di minore entità ad Android Studio 2.3 che corregge un problema per cui alcuni dispositivi Android fisici non funzionavano correttamente con Esecuzione istantanea (consulta il problema n. 235879).

    <h3 class="hide-from-toc">
      New
    </h3>
    
    <div class="video-wrapper-left">
      <iframe class="devsite-embedded-youtube-video" data-video-id="VFyKclKBGf0"
              data-autohide="1" data-showinfo="0" frameborder="0" allowfullscreen>
      </iframe>
    </div>
    
    <ul>
      <li>Android Studio can now convert PNG, BMP, JPG, and static GIF files to
      WebP format. WebP is an image file format from Google that provides lossy
      compression (like JPEG) as well as transparency (like PNG) but can provide
      better compression than either JPEG or PNG. For more information, see
        <a href="/studio/write/convert-webp.html">Convert images to WebP in Android
        Studio</a>.
      </li>
    
      <li>The new <a href="/studio/write/app-link-indexing.html">App Links
      Assistant</a> simplifies the process of adding Android App Links to your app
      into a step-by-step wizard. Android App Links are HTTP URLs that bring users
      directly to specific content in your Android app.
      </li>
    
      <li>The Layout Editor now includes support for two new ConstraintLayout
      features:
        <ul>
          <li>Define a view size based on an aspect ratio.
          </li>
          <li>Create packed, spread, and weighted linear groups with constraint
          chains.
          </li>
        </ul>
        For more information, see <a href=
        "/training/constraint-layout/index.html">Build a Responsive UI with
        ConstraintLayout</a>.
      </li>
    
      <li>The Layout Editor also now lets you create a list of <a href=
      "/studio/write/layout-editor.html#edit-properties">favorite attributes</a> so
      you don't have to click <b>View all attributes</b> to access the attributes
      you use most.
      </li>
    
      <li>When adding a material icon using the Vector Import Dialog (<b>File &gt;
      New &gt; Vector Asset</b>), you can now filter the list of available icons by
      category or by icon name. For more information, see <a href=
      "/studio/write/vector-asset-studio.html#materialicon">Adding a material
      icon</a>.
      </li>
    
      <li>
        <a href="/studio/write/annotations.html#accessibility">New and updated
        annotations</a>. The new <code>@RestrictTo</code> annotation for methods,
        classes, and packages lets you restrict an API. The updated
        <code>@VisibleForTesting</code> annotation now has an optional
        <code>otherwise</code> argument that lets you designate what the visibility
        of a method should be if not for the need to make it visible for testing.
        Lint uses the <code>otherwise</code> option to enforce the intended
        visibility of the method.
      </li>
    
      <li>New <a href="/studio/write/lint.html#snapshot">lint baseline support</a>
      allows you to use a snapshot of your project's current set of warnings as a
      baseline for future inspection runs so only new issues are reported. The
      baseline snapshot lets you start using lint to fail the build for new issues
      without having to go back and address all existing issues first.
      </li>
    
      <li>New lint checks, including the following:
        <ul>
          <li>Obsolete <code>SDK_INT</code> Checks: Android Studio removes obsolete
          code that checks for SDK versions.
          </li>
          <li>Object Animator Validation: Lint analyzes your code to make sure that
          your <code>ObjectAnimator</code> calls reference valid methods with the
          right signatures and checks that those methods are annotated with <code>
            @Keep</code> to prevent ProGuard from renaming or removing them during
            release builds.
          </li>
          <li>Unnecessary Item Decorator Copy: Older versions of the
          <code>RecyclerView</code> library did not include a divider decorator
          class, but one was provided as a sample in the support demos. Recent
          versions of the library have a divider decorator class. Lint looks for
          the old sample and suggests replacing it with the new one.
          </li>
          <li>WifiManager Leak: Prior to Android 7.0 (API level 24), initializing
          the <code>WifiManager</code> with <code><a href="/reference/android/content/Context.html#getSystemService(java.lang.Class&lt;T&gt;)">Context.getSystemService()</a></code>
          can cause a memory leak if the context is not the application context.
          Lint looks for these initializations, and if it <em>cannot</em> determine
          that the context is the application context, it suggests you use <code><a href="/reference/android/content/Context.html#getApplicationContext()">Context.getApplicationContext()</a></code> to get the proper context for the
          initialization.
          </li>
          <li>Improved Resource Prefix: The existing <code>resourcePrefix</code>
          lint check had many limitations. You can now configure your project with
          a prefix, such as <code>android { resourcePrefix '<var>my_lib</var>'
          }</code>, and lint makes sure that all of your resources are using this
          prefix. You can use variations of the name for styles and themes. For
          example for the <var>my_lib</var> prefix, you can have themes named
          <code>MyLibTheme</code>, <code>myLibAttr</code>,
          <code>my_lib_layout</code>, and so on.
          </li>
          <li>Switch to WebP: This check identifies images in your project that can
          be converted to WebP format based on your project’s
          <code>minSdkVersion</code> setting. An associated quickfix can
          automatically convert the images, or you can <a href=
          "/studio/write/convert-webp.html">convert images to WebP</a> manually.
          </li>
          <li>Unsafe WebP: If your project already includes WebP images, this check
          analyzes your project to ensure that your <code>minSdkVersion</code>
          setting is high enough to support the included images. For more
          information about WebP support in Android and Android Studio, see
          <a class="external" href=
          "https://developers.google.com/speed/webp/faq#which_web_browsers_natively_support_webp">
            Which browsers natively support WebP?</a> and <a href=
            "/studio/write/convert-webp.html">Create WebP Images Using Android
            Studio</a>.
          </li>
        </ul>
      </li>
    </ul>
    
    <h3 class="hide-from-toc">
      Changes
    </h3>
    
    <ul>
      <li>A separate button to push changes with Instant Run: After deploying your
      app, you now click <b>Apply Changes</b> <img src=
      "/studio/images/buttons/toolbar-apply-changes.svg" alt="" class=
      "inline-icon"> to quickly push incremental changes to your running app using
      Instant Run. The <b>Run</b> <img src="/studio/images/buttons/toolbar-run.png"
        alt="" class="inline-icon"> and <b>Debug</b> <img src=
        "/studio/images/buttons/toolbar-debug.png" alt="" class="inline-icon">
        buttons are always available to you when you want to reliably push your
        changes and force an app restart.
        <ul>
          <li>Instant Run is supported only when deploying your app to a target
          device running Android 5.0 (API level 21) or higher.
          </li>
          <li>Instant Run is no longer disabled for projects that <a href=
          "/studio/projects/add-native-code.html">link to external native
          projects</a> using CMake or ndk-build. However, you can only use Instant
          Run to push incremental changes to your Java code, not your native code.
          </li>
          <li>Cold swaps (which you can force for a running app by clicking
          <strong>Run</strong> <img src="/studio/images/buttons/toolbar-run.png"
          alt="" class="inline-icon">) are now more reliable. Forcing a cold swap
          also fixes the issue where changes to notification and widget UIs were
          not updated on the target device.
          </li>
          <li>Includes optimizations that make app startup much faster. These
          optimizations may affect profiling, so you should temporarily <a href=
          "/studio/run/index.html#disable-ir">disable Instant Run</a> whenever
          profiling your app.
          </li>
        </ul>
      </li>
    
      <li>
        <p>
          The <b>AVD Manager</b> <img src=
          "/studio/images/buttons/toolbar-avd-manager.png" alt="" class=
          "inline-icon"> and <b>SDK Manager</b> <img src=
          "/studio/images/buttons/toolbar-sdk-manager.png" alt="" class=
          "inline-icon"> buttons are now included in the lean Navigation Bar as
          well as the full Toolbar. To use the lean Navigation Bar, click
          <b>View</b> to open the View menu, then ensure that <b>Navigation Bar</b>
          is selected and <b>Toolbar</b> is <em>not</em> selected.
        </p>
        <img src="/studio/images/releases/navigationbar_sdkavd_2x.png" width="757">
      </li>
    
      <li>The "Hybrid" debugger has been renamed to "Dual" debugger.
      </li>
    
      <li>In the <a href="/studio/run/rundebugconfig.html">Run/Debug
      Configurations</a> dialog, under Defaults in the left pane, the following run
      configuration names have changed with no behavior changes:
        <ul>
          <li>The JUnit name has changed to Android JUnit. If you have a project
          that uses JUnit run configurations, those configurations are transformed
          to Android JUnit run configurations the first time you open the project
          with Android Studio. A dialog appears to inform you of the name change.
          </li>
          <li>The Android Tests name has changed to Android Instrumented Tests.
          </li>
        </ul>
      </li>
    
      <li>The <a href="/studio/debug/am-gpu-debugger.html">GPU Debugger</a> has
      been removed from Android Studio as of version 2.3. An open-source,
      standalone version of the tool is now available on <a href=
      "https://github.com/google/gapid" class="external-link">GitHub</a>.
      </li>
    
      <li>The Run/Debug option is no longer available when you right-click a <code>
        *.gradle build</code> script.
      </li>
    
      <li>All templates now use <code>ConstraintLayout</code> as the default
      layout.
      </li>
    
      <li>The Widgets palette in the Layout Editor has been redesigned.
      </li>
    </ul>
    
    <p>
      This release also includes a number of bug fixes. <a href=
      "https://code.google.com/p/android/issues/list?can=1&amp;q=target%3D2.3+status%3DReleased&amp;colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&amp;cells=tiles">
      See all bug fixes in 2.3.0.</a>
    </p>
    
    <p class="note">
      <b>Known issue:</b> Some device manufacturers block apps from automatically
      launching after being installed on the device. When deploying your app to a
      physical device using Android Studio 2.3, this restriction breaks the
      intended behavior of Instant Run and causes the following error output:
      <code>Error: Not found; no service started</code>. To avoid this issue,
      either <a href="/studio/run/emulator.html">use the emulator</a> or enable
      automatic launching for your app in your device's settings. The procedure
      for doing this is different for each device, so check the instructions
      provided by the manufacturer. To learn more about this issue, see
      <a href="https://code.google.com/p/android/issues/detail?id=235879">Issue
        #235879</a>.
    </p>
    

    2.2 (settembre 2016)

    2.2.3 (dicembre 2016)

    <p>
      This is a minor update to Android Studio 2.2. It includes a bug fixes
      focused around gradle, the core IDE, and lint.
    </p>
    
    <p>
      Highlighted build changes:
    </p>
    
    <ul>
      <li>ProGuard version rollback. Due to a <a href=
      "https://sourceforge.net/p/proguard/bugs/625/">correctness issue</a>
      discovered in ProGuard 5.3.1, we have rolled back to ProGuard 5.2.1. We
      have worked with the ProGuard team on getting a fix quickly, and we expect
      to roll forward to ProGuard 5.3.2 in Android Studio 2.3 Canary 3.
      </li>
      <li>Bug fix for <code>aaptOptions</code> <code>IgnoreAssetsPattern</code>
      not working properly (<a href="http://b.android.com/224167">issue
      224167</a>)
      </li>
      <li>Bug fix for Gradle autodownload for Constraint Layout library
        (<a href="https://code.google.com/p/android/issues/detail?id=212128">issue
        212128</a>)
      </li>
      <li>Bug fix for a JDK8/Kotlin compiler + dx issue (<a href=
      "http://b.android.com/227729">issue 227729</a>)
      </li>
    </ul>
    
    <p>
      <a href=
      "https://code.google.com/p/android/issues/list?can=1&amp;q=target%3D2.2.3+status%3AReleased+&amp;colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&amp;cells=tiles">
      See all bug fixes in 2.2.3</a>.
    </p>
    

    2.2.2 (ottobre 2016)

    <p>
      This is a minor update to Android Studio 2.2. It includes a number of small
      changes and bug fixes, including:
    </p>
    
    <ul>
      <li>When reporting Instant Run issues through the IDE, the report now also
      includes logcat output for <code>InstantRun</code> events. To help us
      improve Instant Run, please <a href=
      "/studio/run/index.html#submit-feedback">enable extra logging and report
      any issues</a>.
      </li>
      <li>A number of small bug fixes for Gradle.
      </li>
      <li>A fix for problems with generating multiple APKs.
      </li>
    </ul>
    

    2.2.1 (ottobre 2016)

    <p>
      This is a minor update to Android Studio 2.2. It includes several bug fixes
      and a new feature to enable extra logging to help us troubleshoot Instant
      Run issues—to help us improve Instant Run, please <a href=
      "/studio/run/index.html#submit-feedback">enable extra logging and report
      any issues</a>.
    </p>
    

    Novità

    • Il nuovo Editor di layout con strumenti creati appositamente per supportare ConstraintLayout.
    • <li>New <strong><a href=
      "http://tools.android.com/tech-docs/layout-inspector">Layout
      Inspector</a></strong> lets you examine snapshots of your layout hierarchy
      while your app is running on the emulator or a device.
      </li>
      
      <li>New <strong><a href="/studio/write/firebase.html">Assistant</a></strong>
      window to help you integrate Firebase services into your app.
      </li>
      
      <li>New <strong><a href="/studio/debug/apk-analyzer.html">APK
      Analyzer</a></strong> tool so you can inspect the contents of your packaged
      app.
      </li>
      
      <li>New <strong><a href=
      "http://tools.android.com/tech-docs/test-recorder">Espresso Test
      Recorder</a></strong> tool (currently in beta) to help you create UI tests by
      recording your own interactions.
      </li>
      
      <li>New <strong><a href=
      "http://tools.android.com/tech-docs/build-cache">build cache</a></strong>
      (currently experimental) to speed up build performance.
      </li>
      
      <li>New <strong>C/C++ build integration with CMake and ndk-build</strong>.
      Compile and build new or existing native code into libraries packaged into
      your APK, and debug using lldb. For new projects, Android Studio uses CMake
      by default, but also supports ndk-build for existing projects. To learn how
      to include native code in your Android application, read <a href=
      "/studio/projects/add-native-code.html">Add C and C++ Code to Your
      Project</a>. To learn how to debug native code with lldb, see <a href=
      "/studio/debug/index.html#debug-native">Debug Native Code</a>.
      </li>
      
      <li>New <strong><a href="/studio/intro/index.html#sample-code">Samples
      Browser</a></strong> so you can easily look up Google Android sample code
      from within Android Studio to jump start app development.
      </li>
      
      <li>New <strong>Merged Manifest Viewer</strong> to help you diagnose how your
      manifest file merges with your app dependencies across project build
      variants.
      </li>
      
      <li>The <strong>Run</strong> window now contains log messages for the current
      running app. Note that you can configure the <a href=
      "/studio/debug/am-logcat.html">logcat Monitor</a> display, but not the
      <strong>Run</strong> window.
      </li>
      
      <li>New <strong><a href="/studio/run/emulator.html">Android
      Emulator</a></strong> features:
        <ul>
          <li>Added new <strong>Virtual</strong> <strong>Sensors</strong> and
          <strong>Cellular</strong> &gt; <strong>Signal Strength</strong> controls.
          </li>
          <li>Added an <strong>LTE</strong> option to the <strong>Cellular</strong>
          &gt; <strong>Network type</strong> control.
          </li>
          <li>Added simulated vertical swipes for scrolling through vertical menus
          with a mouse wheel.
          </li>
        </ul>
      </li>
      
      <li>New <strong><a href="/studio/run/rundebugconfig.html">Run/Debug
      Configuration</a></strong> features:
        <ul>
          <li>The <strong>Debugger</strong> tab of the Android App and Android
          Tests templates now contain several new options for debugging with LLDB.
          </li>
          <li>The <strong>Profiling</strong> tab of the Android App and Android
          Tests templates now contain a <strong>Capture GPU Commands</strong>
          option for enabling GPU tracing. You can display GPU traces in the GPU
          Debugger (a beta feature).
          </li>
          <li>The Android Tests template now has a <strong>Firebase Test Lab Device
          Matrix</strong> option for the <strong>Deployment Target</strong>.
          </li>
          <li>The Native Application template has been deprecated. If you use this
          template in a project, Android Studio automatically converts it to the
          Android App template.
          </li>
          <li>The Android Application template has been renamed to Android App.
          </li>
        </ul>
      </li>
      
      <li>Improved installation, configuration, performance, and UI features in the
      <strong><a href="/studio/debug/am-gpu-debugger.html">GPU
      Debugger</a></strong> (currently in beta).
      </li>
      
      <li>Android Studio now comes bundled with <strong>OpenJDK 8</strong>.
      Existing projects still use the JDK specified in <strong>File &gt; Project
      Structure &gt; SDK Location</strong>. You can switch to use the new bundled
      JDK by clicking <strong>File &gt; Project Structure &gt; SDK
      Location</strong> and checking the <strong>Use embedded JDK</strong>
      checkbox.
      </li>
      
      <li>Added new <strong>help menus and buttons</strong> in the UI so you can
      more easily find the online documentation.
      </li>
      

    Modifiche

    • Aggiornamento del codebase IDE da IntelliJ 15 a IntelliJ 2016.1
    • Instant Run ora richiede l'installazione dell'SDK della piattaforma corrispondente al livello API del dispositivo di destinazione.
    • L'esecuzione istantanea viene disattivata automaticamente se l'utente esegue l'app in un profilo di lavoro o come utente secondario.
    • Risolti molti problemi di affidabilità per esecuzione istantanea in cui non veniva eseguito il deployment delle modifiche o in cui l'app si arrestava in modo anomalo:
      • Non è stato eseguito il deployment di alcuni asset per app nell'app in esecuzione (Bug: #213454).
      • L'app si arresta in modo anomalo quando l'utente passa da sessioni a esecuzione istantanea e non a esecuzione istantanea, in cui per una classe Serializable non è definito serialVersionUID. (Bug: #209006)
      • Le modifiche apportate allo stile non vengono applicate con l'esecuzione istantanea. (Bug: #210851)
      • La sessione a esecuzione istantanea non è affidabile e causa FileNotFoundException. (Bug: #213083)
      • Le modifiche agli elementi di disegno non vengono applicate finché non viene eseguita la rigenerazione completa per Lollipop. (Bug: #21530)
      • Le modifiche alle risorse non si riflettono con l'esecuzione istantanea quando gli sourceSet personalizzati contengono percorsi nidificati. (Bug: #219145)
      • Gli scambi a caldo e a caldo non funzionano se la classe modificata contiene un'annotazione con un valore enum. (Bug: #209047)
      • Le modifiche ai dati delle annotazioni non si riflettono con l'esecuzione istantanea. (Bug: #210089)
      • L'esecuzione istantanea non rileva le modifiche al codice se apporti modifiche al di fuori dell'IDE. (Bug: #213205)
      • La sessione di esecuzione istantanea non è affidabile a causa di una mancata corrispondenza del token di sicurezza. (Bug: n. 211989
      • Lo scambio a freddo non va a buon fine per i dispositivi che non supportano correttamente il run-as. (Bug: #210875)
      • Arresto anomalo dell'app dopo il riavvio dell'esecuzione istantanea. (Bug: n. 219744)
      • ClassNotFoundException osservata durante il passaggio da esecuzione istantanea a debug istantaneo. (Bug: #215805)
    • <li>Improved performance for <strong>Gradle sync</strong> within the IDE,
      especially for large projects.
      </li>
      
      <li>Improved build times for both full and incremental builds with new app
      packaging code.
      </li>
      
      <li>Improved <strong>Jack compiler performance and features</strong>,
      including support for annotation processors and dexing in process. To learn
      more, read the <a href=
      "/studio/releases/gradle-plugin.html#revisions">Android plugin for Gradle
      2.2.0 release notes</a>.
      </li>
      
      <li>Removed the <strong>Scale</strong> AVD property from the AVD Manager.
      </li>
      
      <li>The Android Emulator <strong>-port</strong> and <strong>-ports</strong>
      command-line options now report which ports and serial number the emulator
      instance is using, and warn if there are any issues with the values you
      provided.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/create-java-class.html">Create New Class dialog</a></strong>
      and the corresponding file templates. <strong>Note:</strong> If you've
      previously customized the <strong>AnnotationType</strong>,
      <strong>Class</strong>, <strong>Enum</strong>, <strong>Interface</strong>, or
      <strong>Singleton</strong> file templates, you need to modify your templates
      to comply with the new templates or you won’t be able to use the new fields
      in the <strong>Create New Class</strong> dialog.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/vector-asset-studio.html">Vector Asset Studio</a></strong>
      user interface and added support for Adobe Photoshop Document (PSD) files.
      </li>
      
      <li>Improved the <strong><a href=
      "/studio/write/image-asset-studio.html">Image Asset Studio</a></strong> user
      interface.
      </li>
      
      <li>Improved the <strong>Theme Editor</strong>'s Resource Picker.
      </li>
      
      <li>Fixed memory leaks and reduced overall memory usage in Android Studio.
      </li>
      
      <li>Added a <strong>Background</strong> button in the <strong><a href=
      "/studio/intro/update.html#sdk-manager">SDK Manager</a></strong> so you can
      get back to work and install your packages in the background.
      </li>
      
      <li>Improved <strong><a href="/studio/intro/accessibility.html">Accessibility
      features</a></strong>, including support for screen readers and keyboard
      navigation.
      </li>
      
      <li>Enhanced <strong>Code Analysis</strong> includes code quality checks for
      Java 8 language usage and more cross-file analysis.
      </li>
      
      <li>Several toolbar icons have changed.
      </li>
      

    2.1 (aprile 2016)

    Le modifiche principali di questo aggiornamento forniscono supporto per lo sviluppo con l'anteprima di Android N.

    2.1.3 (agosto 2016)

    Questo aggiornamento aggiunge la compatibilità con Gradle 2.14.1, che include miglioramenti delle prestazioni, nuove funzionalità e un'importante correzione di sicurezza. Per maggiori dettagli, consulta le note di rilascio di Gradle.

    Per impostazione predefinita, i nuovi progetti in Android Studio 2.1.3 utilizzano Gradle 2.14.1. Per i progetti esistenti, l'IDE richiede di eseguire l'upgrade a Gradle 2.14.1 e al plug-in Android per Gradle 2.1.3, richiesto quando si utilizza Gradle 2.14.1 e versioni successive.

    2.1.2 (giugno 2016)

    Questo aggiornamento include una serie di piccole modifiche e correzioni di bug:

    • Aggiornamenti e correzioni di bug relativi all'esecuzione istantanea.
    • Miglioramenti alle prestazioni di LLDB e alle notifiche sugli arresti anomali.
    • È stata corretta una regressione nell'aggiornamento della sicurezza di Android Studio 2.1.1 che ha causato l'errore di git rebase.

    2.1.1 (maggio 2016)

    Aggiornamento della release di sicurezza.

    La piattaforma Android N aggiunge il supporto per le funzionalità del linguaggio Java 8, che richiedono un nuovo compilatore sperimentale chiamato Jack. L'ultima versione di Jack è attualmente supportata solo in Android Studio 2.1. Quindi, se vuoi utilizzare le funzionalità in linguaggio Java 8, devi creare l'app con Android Studio 2.1.

    Nota: l'esecuzione istantanea è disabilitata quando abiliti il compilatore Jack, perché al momento non sono compatibili.

    Anche se Android Studio 2.1 è ora stabile, il compilatore Jack è ancora sperimentale e devi attivarlo con la proprietà jackOptions nel file build.gradle.

    Oltre alle modifiche per supportare l'anteprima N, Android Studio 2.1 include correzioni di bug minori e i seguenti miglioramenti:

    • Il debugger C++ supportato da Java è ora abilitato per impostazione predefinita quando utilizzi un emulatore o un dispositivo N e selezioni la modalità di debug Nativa (nella scheda Debugger per la configurazione di esecuzione/debug).

    Per altri miglioramenti della build, inclusi la compilazione incrementale di Java e il dexing-in-process,aggiorna il plug-in Android per Gradle alla versione 2.1.0.

    2.0 (aprile 2016)

    Nota: se stai sviluppando il programma per l'Anteprima per gli sviluppatori N, devi utilizzare Android Studio 2.1 Preview. Android Studio 2.0 non supporta tutte le funzionalità necessarie per il targeting dell'anteprima N.

    Esecuzione istantanea:

    • Android Studio ora esegue il deployment di build pulite più velocemente che mai. Inoltre, il push di modifiche incrementali al codice nell'emulatore o su un dispositivo fisico ora è quasi istantanea. Controlla gli aggiornamenti senza eseguire nuovamente il deployment di una nuova build di debug o, in molti casi, senza riavviare l'app.
    • L'esecuzione istantanea supporta il push delle seguenti modifiche a un'app in esecuzione:
      • Modifiche all'implementazione di un metodo di istanza esistente o di un metodo statico
      • Modifiche a una risorsa app esistente
      • Modifiche al codice strutturale, ad esempio la firma di un metodo o un campo statico (richiede un dispositivo di destinazione con livello API 21 o versioni successive).
    • Leggi la documentazione per scoprire di più sull'esecuzione istantanea.

      Nota: l'esecuzione istantanea è supportata solo quando esegui il deployment della variante della build di debug, utilizzi il plug-in Android per Gradle versione 2.0.0 o successive e configuri il file build.gradle a livello di modulo dell'app per minSdkVersion 15 o versioni successive. Per un rendimento ottimale, configura l'app per minSdkVersion 21 o versioni successive.

    Nuove aggiunte a Lint:

    • Ispezione delle istruzioni switch utilizzando numeri interi annotati @IntDef per garantire che tutte le costanti vengano gestite. Per aggiungere rapidamente le istruzioni mancanti, utilizza il menu a discesa delle azioni dell'intenzione e seleziona Aggiungi costanti @IntDef mancanti.
    • Flag per tentativi errati di utilizzo dell'interpolazione di stringhe per inserire i numeri di versione nel file build.gradle.
    • Flag per corsi anonimi che estendono la classe Fragment.
    • Flag per il codice nativo in località non sicure, come le cartelle res/ e asset/. Questo flag incoraggia l'archiviazione del codice nativo nella cartella libs/, che viene quindi pacchettizzata in modo sicuro nella cartella data/app-lib/ dell'applicazione al momento dell'installazione. AOSP: n. 169950
    • Flag per chiamate non sicure a Runtime.load() e System.load(). AOSP: n. 179980
    • Per trovare e rimuovere le risorse inutilizzate, seleziona Refactoring > Rimuovi risorse inutilizzate dalla barra dei menu. Il rilevamento delle risorse inutilizzate ora supporta le risorse a cui fanno riferimento solo le risorse inutilizzate, i riferimenti nei file non elaborati come i riferimenti alle immagini .html e gli attributi tools:keep e tools:discard utilizzati dallo strumento di riduzione delle risorse Gradle, prendendo in considerazione i set di origini inattive (come le risorse utilizzate in altre versioni di build) e la gestione corretta delle importazioni dei campi statici.
    • Verifica che i riferimenti API impliciti siano supportati su tutte le piattaforme scelte come target da minSdkVersion.
    • Segnala l'utilizzo improprio di RecyclerView e Parcelable.
    • Ora vengono controllate anche le ispezioni @IntDef, @IntRange e @Size per array e vararg int.

    Ulteriori miglioramenti:

    • Ottimizzato per Android Emulator 2.0, più veloce che mai, supporta una gamma più ampia di dispositivi virtuali e presenta un'UI notevolmente migliorata. Per scoprire di più sul nuovo emulatore, leggi le note di rilascio di SDK Tools.
    • Miglioramenti a Gestione dispositivi virtuali Android:
      • Le immagini di sistema ora sono classificate nelle seguenti schede: Consigliate, x86 e Altro.
      • Nelle impostazioni avanzate, puoi attivare il supporto multi-core e specificare il numero di core che l'emulatore può utilizzare.
      • Nelle impostazioni avanzate, puoi determinare come viene visualizzata la grafica nell'emulatore selezionando una delle seguenti opzioni:
        • Hardware: consente di utilizzare la scheda grafica del computer per un rendering più veloce.
        • Software: utilizza il rendering basato su software.
        • Automatica: lascia che sia l'emulatore a decidere l'opzione migliore. Questa è l'impostazione predefinita.
    • Tempi di pacchettizzazione AAPT migliorati mediante la specifica della destinazione di deployment prima della creazione dell'app. Ciò consente ad Android Studio di pacchettizzare in modo efficiente solo le risorse richieste dal dispositivo specificato.
    • Aggiunta l'integrazione con Cloud Test Lab per fornire test delle app on demand con la comodità e la scalabilità di un servizio cloud. Scopri di più su come utilizzare Cloud Test Lab con Android Studio.
    • È stata aggiunta un'anteprima del nuovo Debugger GPU. Per le applicazioni ad alta intensità di grafica, ora puoi visualizzare visivamente il codice OpenGL ES per ottimizzare l'app o il gioco.
    • È stato aggiunto il test di indicizzazione delle app di Google. Aggiungi il supporto per URL, indicizzazione delle app e funzionalità di ricerca alle tue app per aumentare il traffico verso la tua app, scoprire quali contenuti dell'app vengono utilizzati di più e attirare nuovi utenti. Testa e convalida gli URL nella tua app, tutto da Android Studio. Consulta la sezione Supporto di URL e indicizzazione delle app in Android Studio.
    • Upgrade dalla release più recente di IntelliJ 15, che includono prestazioni e analisi del codice migliorate. Consulta la sezione Novità di IntelliJ per una descrizione completa delle nuove funzionalità e dei miglioramenti.
    • Il completamento automatico dell'editor XML ora aggiunge le virgolette durante il completamento degli attributi. Per verificare se questa opzione è attivata, apri la finestra di dialogo Impostazioni o Preferenze, vai a Editor > Generale > Chiavi intelligenti e seleziona la casella accanto ad Aggiungi virgolette per il valore degli attributi al completamento dell'attributo. Problema: 195113
    • L'editor XML ora supporta il completamento del codice per le espressioni di associazione di dati.

    Android Studio 1.5.1 (dicembre 2015)

    Correzioni e miglioramenti:

    • Risolto un problema di errore di rendering nell'Editor di layout. Problema: 194612
    • È stata aggiunta la possibilità di variare gli attributi del file manifest description in base alla configurazione. Problema: 194705
    • È stato migliorato il contrasto del tema di aspetto Darcula di Android Studio in Vector Asset Studio. Problema: 191819
    • Aggiunto il supporto per il pulsante Guida a Vector Asset Studio.
    • Aggiunto il supporto per l'operatore % per l'associazione di dati. Problema: 194045
    • Risolto il caso in cui l'avvio di un'app per il debug causava la connessione del debugger al dispositivo sbagliato. Problema: 195167
    • È stata corretta un'eccezione del puntatore null che poteva verificarsi quando si cerca di eseguire un'app in determinati scenari.

    Android Studio v1.5.0 (novembre 2015)

    Correzioni e miglioramenti:

    • Sono state aggiunte nuove funzionalità di analisi di Monitoraggio memoria ad Android Monitor. Quando visualizzi un file HPROF acquisito da questo monitor, il display ora è più utile per individuare più rapidamente problemi, ad esempio perdite di memoria. Per utilizzare questo monitor, fai clic su Monitor Android nella parte inferiore della finestra principale. In Android Monitor, fai clic sulla scheda Memoria. Mentre il monitor è in esecuzione, fai clic sull'icona Dump Java Heap, quindi fai clic su Acquisizioni nella finestra principale, quindi fai doppio clic sul file per visualizzarlo. Fai clic su Acquisisci analisi a destra. Il monitor dei dispositivi Android non può essere eseguito contemporaneamente al monitor Android.
    • Aggiunto il supporto di nuovi link diretti e link all'app. L'editor di codice può creare automaticamente un filtro per intent per i link diretti nel file AndroidManifest.xml. Può anche generare codice per facilitare l'integrazione con l'API App Index in un'attività in un file Java. Una funzionalità di test dei link diretti consente di verificare che un link diretto specificato possa avviare un'app. Nella scheda Generali della finestra di dialogo Configurazioni di esecuzione/debug, puoi specificare le opzioni di avvio del link diretto. Puoi anche testare le chiamate API di Indicizzazione delle app in un'attività utilizzando la visualizzazione logcat di Android Monitor. Lo strumento lint di Android ora include avvisi per determinati problemi relativi ai link diretti e all'API di Indicizzazione delle app.
    • È stata aggiunta la possibilità di utilizzare i nomi brevi durante il completamento del codice delle visualizzazioni personalizzate nell'editor di codice.
    • Aggiunto il supporto di più elementi VectorDrawable a Vector Asset Studio per la compatibilità con le versioni precedenti. Vector Asset Studio può utilizzare questi elementi per convertire elementi disegnati vettoriali in immagini raster PNG da utilizzare con Android 4.4 (livello API 20) e versioni precedenti.
    • Sono stati aggiunti i nuovi controlli lint per Android TV e Android Auto per offrirti un feedback immediato e utile in Android Studio, oltre a diverse correzioni rapide. Ad esempio, per Android TV, può segnalare e fornire una soluzione rapida per autorizzazioni, hardware non supportato, elemento uses-feature e problemi relativi a banner mancanti. Per Android Auto, può convalidare l'utilizzo corretto nel file descrittore a cui fa riferimento il file AndroidManifest.xml, segnalare se non è presente un filtro per intent per la classe MediaBrowserService e identificare determinati problemi relativi alle azioni vocali.
    • Sono stati aggiunti nuovi controlli lint relativi a ricevitori di trasmissioni non sicuri, utilizzi nelle classi SSLCertificateSocketFactory e HostnameVerifier, nonché chiamate File.setReadable() e File.setWritable(). Rileva inoltre ricerche di risorse manifest non valide, in particolare per risorse che variano in base alla configurazione.
    • Sono stati risolti alcuni problemi di stabilità.

    Android Studio v1.4.1 (ottobre 2015)

    Correzioni e miglioramenti:

    • Risolto un problema di memorizzazione nella cache del modello Gradle che poteva portare a un'eccessiva sincronizzazione Gradle al riavvio dell'IDE.
    • Risolto un problema di deadlock di debug nativo.
    • Risolto un problema che bloccava gli utenti del sistema di controllo della versione Subversion 1.9.
    • Risolto il problema della finestra di dialogo Selettore dispositivo per cui dopo aver collegato un dispositivo non autorizzato non era più possibile selezionare l'emulatore. Problema: 189658
    • Sono stati corretti gli errori di segnalazione degli errori di traduzione per le impostazioni internazionali che hanno un qualificatore regione e una traduzione nella regione (ma non nell'impostazione internazionale di base). Problema: 188577
    • Risolto il problema di deadlock nell'editor dei temi relativo alla sua interazione con l'editor di layout. Problema: 188070
    • È stato risolto il problema di ricaricamento e di conflitto di modifica dell'Editor di temi che causavano l'aggiornamento non corretto degli attributi. Problema: 187726
    • Prestazioni dell'Editor di temi migliorate.
    • Risolto il problema per cui l'attributo android:required veniva ignorato nel file manifest. Problema: 187665

    Android Studio v1.4.0 (settembre 2015)

    Correzioni e miglioramenti:

    • È stato aggiunto lo strumento Vector Asset Studio per l'importazione di immagini vettoriali, come icone di materiali e file SVG. Per utilizzare questo strumento, nella visualizzazione Android della finestra del progetto, fai clic con il tasto destro del mouse sulla cartella res e seleziona Nuovo > Asset vettoriale.
    • Sono state aggiunte nuove funzioni di Monitoraggio Android, GPU e rete. Per utilizzare questi monitor, fai clic su Monitor Android nella parte inferiore della finestra principale. Il Monitoraggio dispositivi Android non può essere eseguito contemporaneamente al Monitor Android.
    • È stata aggiunta un'anteprima in anteprima del nuovo editor di temi. Per utilizzare questa funzionalità, seleziona Strumenti > Android > Editor di temi.
    • Aggiornamento dei modelli Android per la libreria di supporto per la progettazione. I modelli ora includono il supporto della specifica di Material Design e della libreria di supporto appcompat per la compatibilità con le versioni precedenti.

    Android Studio v1.3.2 (agosto 2015)

    Correzioni e miglioramenti:

    • Aggiunto il supporto per Android 6.0 (livello API 23), incluse nuove icone e supporto di Gestione AVD per la creazione di dispositivi con nuove densità dello schermo.
    • Correzione di un'eccezione che si verificava durante i controlli degli aggiornamenti. Problema: 183068
    • Risolto il problema per cui le coordinate di vista non risolte causavano l'arresto anomalo dell'editor di layout. Problema: 178690
    • È stato risolto il problema relativo agli avvisi relativi ai tipi di risorse non validi. Problema: 182433
    • È stato risolto il controllo lint che segnalava erroneamente le risorse come private. Problema: 183120

    Android Studio v1.3.1 (agosto 2015)

    Correzioni e miglioramenti:

    • È stato risolto il supporto della creazione di dispositivi virtuali Android Wear su Windows.
    • È stata aggiornata la procedura guidata del progetto in modo che utilizzi il nome del progetto inserito.
    • Aggiunto il supporto per consentire l'archiviazione dell'SDK Android in una directory di sola lettura.
    • Plug-in Android per Gradle aggiornato alla versione 1.3.0.
    • Sono stati risolti i problemi relativi all'avvio di una sessione di debug dalla shell Unix di Android Debug Bridge (adb).
    • Risolto il messaggio di ridenominazione del pacchetto Java in modo che venga visualizzato il nome del pacchetto corretto.

    Android Studio v1.3.0 (luglio 2015)

    Correzioni e miglioramenti:

    • Sono state aggiunte opzioni per attivare i servizi per gli sviluppatori, come Google AdMob e Analytics, nella tua app da Android Studio.
    • Sono state aggiunte annotazioni aggiuntive, come @RequiresPermission, @CheckResults e @MainThread.
    • È stata aggiunta la funzionalità per generare dump heap Java e analizzare le allocazioni dei thread da Memory Monitor. Puoi anche convertire i file di formato binario HPROF specifici per Android nel formato HPROF standard direttamente da Android Studio.
    • SDK Manager integrato in Android Studio per semplificare l'accesso a pacchetti e strumenti, nonché per fornire notifiche relative agli aggiornamenti.

      Nota: la versione autonoma di SDK Manager è ancora disponibile dalla riga di comando, ma è consigliato l'utilizzo solo con le installazioni di SDK autonomi.

    • È stato aggiunto il comando finger nella console dell'emulatore per simulare l'autenticazione fingerprint.
    • È stata aggiunta una dichiarazione delle risorse <public> per designare le risorse della libreria come risorse pubbliche e private.

      Nota: è necessario un plug-in Android per Gradle versione 1.3 o successive.

    • Aggiunto il supporto per l'associazione di dati per creare layout dichiarativi che associano la logica dell'applicazione agli elementi del layout.
    • Aggiunto il supporto per un modulo APK di test separato per creare APK di test in Android Studio.
    • Aggiornamento di Gestione AVD con ottimizzazioni HAXM e notifiche migliorate.
    • Aggiunto il supporto per l'emulatore ARM e MIPS a 64 bit per QEMU 2.1.
    • È stata semplificata la risoluzione dei lint avvisi aggiungendo correzioni rapide, come la generazione automatica dell'implementazione Parcelable.
    • Aggiunto il supporto per i modelli pubblicati per l'inserimento rapido di snippet di codice.

    Android Studio v1.2.2(giugno 2015)

    Correzioni e miglioramenti:

    • Sono stati risolti i problemi relativi alle build che ne impedivano il completamento.

    Android Studio v1.2.1 (maggio 2015)

    Correzioni e miglioramenti:

    • Risolti problemi minori relativi a prestazioni e funzionalità.

    Android Studio v1.2.0 (aprile 2015)

    Correzioni e miglioramenti:

    • È stata aggiornata la finestra del runtime Android in modo da includere lo strumento Memory Monitor e aggiunta una scheda per il monitoraggio delle prestazioni della CPU.
    • È stata aggiunta una scheda Acquisizioni nel margine sinistro per visualizzare la memoria acquisita e i file di dati sulle prestazioni della CPU, come il monitoraggio dei metodi della CPU e gli snapshot dell'heap di memoria.
    • Supporto esteso per le annotazioni con annotazioni di metadati aggiuntive e valori nulli dedotti.
    • È stato migliorato l'editor delle traduzioni con il supporto aggiuntivo per la best practice attuale (BCP) 47, che utilizza i codici lingua e regione di tre lettere.
    • Funzionalità IntelliJ 14 e 14.1 integrate per migliorare le prestazioni e l'analisi del codice:
      • Debug avanzato per mostrare i valori in linea per le variabili e gli oggetti di riferimento, nonché per eseguire la valutazione in linea delle espressioni lambda e di operatori.
      • Aggiunto il rilevamento dello stile del codice per le dimensioni di schede e rientro.
      • Sono stati aggiunti file temporanei per esperimenti di codice e prototipazione senza file di progetto.
      • È stato aggiunto l'inserimento simultaneo dei tag di apertura e chiusura nei file HTML e XML.
      • È stato aggiunto un decompilatore integrato di classi Java, che ti consente di vedere cosa c'è all'interno di una libreria per la quale il codice sorgente non è disponibile.

      Consulta la sezione Novità di IntelliJ per una descrizione completa delle nuove funzionalità e dei miglioramenti.

    • Sono state aggiunte altre visualizzazioni del progetto per Graffi, File di progetto, Problemi, Produzione e Test per migliorare la gestione e l'accesso dei progetti.
    • Sono stati migliorati il menu e le finestre di dialogo File > Impostazioni per migliorare l'accesso e la gestione delle impostazioni.
    • Aggiunto il supporto per display ad alta densità per Windows e Linux.
    • Aggiunto il supporto per le risorse a 280 dpi nella cartella res/drawable-280dpi/.

    Android Studio v1.1.0 (febbraio 2015)

    Varie correzioni e miglioramenti:

    • Aggiunto il supporto per il modello di orologio Android Wear.
    • È stata modificata la creazione di nuovi progetti e moduli per includere le cartelle res/mipmap per le icone in Avvio applicazioni specifiche per densità. Questa cartella res/mipmap sostituisce le cartelle res/drawable per le icone in Avvio applicazioni.
    • Sono state aggiornate le icone in Avvio applicazioni in modo che abbiano un aspetto Material Design e abbiamo aggiunto un'icona in Avvio applicazioni xxxhdpi.
    • Controlli Lint aggiunti e migliorati per verificare la presenza di combinazioni di regione e lingua, icone di avvio applicazioni, nomi delle risorse e altri problemi comuni relativi al codice.
    • Aggiunto il supporto per il tag lingua BCP (Best practice attuale) 47.

    Android Studio v1.0.1 (dicembre 2014)

    Varie correzioni e miglioramenti:

    • Risolto il problema di blocco dei file di AVD Manager e device.xml.
    • È stato risolto il log dell'emulatore sui sistemi Windows.
    • È stato risolto il problema relativo alla creazione di AVD con Android Studio e l'SDK Android installato su unità diverse nei sistemi Windows.
    • Imposta il canale di aggiornamento predefinito per i nuovi download su Stabile. Se hai installato la versione 1.0.0 di Android Studio e vuoi ricevere aggiornamenti di versione stabili e pronti per la produzione, seleziona File > Impostazioni > Aggiornamenti per passare al canale di aggiornamento Stabile.

    Android Studio versione 1.0 (dicembre 2014)

    Versione iniziale di Android Studio.

    Android Studio versione 0.8.14 (ottobre 2014)

    Consulta la pagina tools.android.com per un elenco completo delle modifiche.

    Android Studio versione 0.8.6 (agosto 2014)

    Per un elenco completo delle modifiche, visita la pagina tools.android.com.

    Android Studio versione 0.8.0 (giugno 2014)

    Aggiunto il supporto per i progetti Android Wear.

    Per un elenco completo delle modifiche, visita la pagina tools.android.com.

    Android Studio v0.5.2 (maggio 2014)

    Android Studio v0.4.6 (marzo 2014)

    Android Studio v0.4.2 (gennaio 2014)

    Android Studio v0.3.2 (ottobre 2013)

    Android Studio v0.2.x (luglio 2013)

    • Unito nelle ultime modifiche al codebase IntelliJ. Sono incluse le correzioni dei problemi segnalati dagli utenti di Studio, ad esempio le modifiche alle dimensioni e al rendering dei caratteri di Linux.
    • Plug-in Android per Gradle aggiornato alla versione 0.5.0.

      Attenzione:questa nuova versione non è compatibile con le versioni precedenti. Durante l'apertura di un progetto che utilizza una versione precedente del plug-in, Studio mostra l'errore L'aggiornamento del progetto Gradle <nome_progetto> non è riuscito.

      Il plug-in Gradle aggiornato include le seguenti modifiche:

      • È stato corretto il modello IDE affinché contenga il file di output anche se è personalizzato tramite DSL. Inoltre, è stato corretto il DSL per ottenere/impostare il file di output sull'oggetto variante, in modo che non sia necessario utilizzare variant.packageApplication or variant.zipAlign
      • È stata corretta la risoluzione delle dipendenze in modo da risolvere insieme la combinazione anziché separatamente.
      • Dipendenza fissa per consentire ai test del progetto di libreria di includere correttamente tutte le dipendenze della libreria stessa.
      • Risolto il caso in cui due dipendenze hanno lo stesso nome foglia.
      • Risolto il problema per cui il file delle regole Proguard non può essere applicato alle versioni flavor.

      Tutte le note di rilascio del plug-in Gradle sono disponibili qui: http://tools.android.com/tech-docs/new-build-system.

    • Gli errori Gradle di aapt non puntano più ai file di output uniti nella cartella di build/, ma alle posizioni di origine reali.
    • build parallele. Ora è possibile utilizzare le build parallele di Gradle. Tieni presente che le build parallele sono in "incubation" (consulta la documentazione di Gradle). Per impostazione predefinita questa funzionalità non è attiva. Per abilitarlo, vai a Preferenze > Compilatore e seleziona la casella Compila moduli indipendenti in parallelo.
    • Continua a lavorare sul nuovo repository di risorse utilizzato per il rendering del layout, il piegatura delle risorse nell'editor e altro ancora:
      • Supporto di base per le dipendenze della libreria .aar (ad esempio, utilizzo di una libreria senza una copia locale delle origini). Ancora non funziona per la convalida XML delle risorse e la navigazione negli editor del codice sorgente.
      • Rilevamento dei cicli nei riferimenti delle risorse.
      • La Documentazione rapida (F1), che può mostrare tutte le traduzioni della stringa sotto il cursore, ora mostrerà anche tutti gli overlay di risorse dei vari tipi di build e versioni di Gradle, oltre alle librerie. Sono elencate in ordine inverso per l'overlay delle risorse, con le versioni della stringa mascherate.
      • Correzioni per gestire l'aggiornamento delle risorse unite quando il set di dipendenze dei moduli cambia.
      • Correzioni del rendering XML per gestire correttamente le dichiarazioni delle entità dei caratteri e gli escape XML e Unicode.
    • Salva il supporto degli screenshot per le finestre dell'anteprima del layout e dell'editor di layout.
    • Correzioni di bug dei modelli.
    • Correzioni di bug lint.
    • Varie correzioni per i report sugli arresti anomali. Grazie e continua a inviare report sugli arresti anomali.

    Android Studio v0.1.x (maggio 2013)

    • Varie correzioni di bug, tra cui una correzione per un problema comune di installazione di Windows.

    Versioni precedenti del plug-in Android per Gradle

    3.6.0 (febbraio 2020)

    Questa versione del plug-in Android richiede quanto segue:

    Nuove funzionalità

    Questa versione del plug-in Android per Gradle include le seguenti nuove funzionalità.

    Visualizza associazione

    L'associazione delle visualizzazioni offre sicurezza in fase di compilazione quando fai riferimento alle viste nel codice. Ora puoi sostituire findViewById() con il riferimento alla classe di associazione generato automaticamente. Per iniziare a utilizzare l'associazione Visualizza, includi quanto segue nel file build.gradle di ogni modulo:

          android {
              viewBinding.enabled = true
          }
          
          android {
              viewBinding.enabled = true
          }
          

    Per scoprire di più, leggi la documentazione sull'associazione delle visualizzazioni.

    Supporto per il plug-in Maven publish

    Il plug-in Android Gradle include il supporto per il plug-in Maven Pubblica Gradle, che consente di pubblicare artefatti delle build in un repository Maven di Apache. Il plug-in Android Gradle crea un componente per ogni artefatto delle varianti di build nella tua app o nel modulo della libreria che puoi utilizzare per personalizzare una pubblicazione in un repository Maven.

    Per scoprire di più, consulta la pagina su come utilizzare il plug-in Maven Pubblica.

    Nuovo strumento di pacchettizzazione predefinito

    Durante la creazione della versione di debug dell'app, il plug-in utilizza un nuovo strumento di pacchetto, chiamato zipflinger, per creare l'APK. Questo nuovo strumento dovrebbe fornire miglioramenti della velocità di build. Se il nuovo strumento di presentazione non funziona come previsto, segnala un bug. Puoi ripristinare il vecchio strumento di pacchettizzazione includendo quanto segue nel file gradle.properties:

            android.useNewApkCreator=false
          
    Attribuzione nativa build

    Ora puoi determinare il tempo necessario a Clang per creare e collegare ciascun file C/C++ nel tuo progetto. Gradle può generare una traccia di Chrome contenente timestamp per questi eventi di compilazione, in modo che tu possa comprendere meglio il tempo necessario per creare il tuo progetto. Per generare questo file di attribuzione della build:

    1. Aggiungi il flag -Pandroid.enableProfileJson=true durante l'esecuzione di una build Gradle. Ecco alcuni esempi:

      gradlew assembleDebug -Pandroid.enableProfileJson=true

    2. Apri il browser Chrome e digita chrome://tracing nella barra di ricerca.

    3. Fai clic sul pulsante Carica e vai a <var>project-root</var>/build/android-profile per trovare il file. Il nome del file è profile-<var>timestamp</var>.json.gz.

    Puoi visualizzare i dati di attribuzione della build nativa nella parte superiore dello spettatore:

    Traccia di attribuzione della build nativa in Chrome

    Modifiche del comportamento

    Quando utilizzi questa versione del plug-in, potresti riscontrare i seguenti cambiamenti di comportamento.

    Librerie native pacchettizzate non compresse per impostazione predefinita

    Quando crei la tua app, il plug-in ora imposta extractNativeLibs su "false" per impostazione predefinita. In altre parole, le librerie native sono allineate di pagina e pacchettizzate non compresse. Anche se ciò comporta dimensioni di caricamento maggiori, i tuoi utenti beneficiano di quanto segue:

    • Dimensioni di installazione delle app ridotte perché la piattaforma può accedere alle librerie native direttamente dall'APK installato, senza creare una copia delle librerie.
    • Dimensioni di download ridotte, perché in genere la compressione sul Play Store è migliore se includi librerie native non compresse nell'APK o nell'Android App Bundle.

    Se vuoi che il plug-in Android Gradle pacchettizzi librerie native compresse, includi quanto segue nel file manifest dell'app:

            <application
              android:extractNativeLibs="true"
              ... >
            </application>
            
          

    Nota: l'attributo del file manifest extractNativeLibs è stato sostituito dall'opzione DSL useLegacyPackaging. Per ulteriori informazioni, consulta la nota di rilascio Utilizzare la connessione DSL per pacchettizzare librerie native compresse.

    Versione NDK predefinita

    Se scarichi più versioni dell'NDK, il plug-in Android per Gradle seleziona ora una versione predefinita da utilizzare per compilare i file di codice sorgente. In precedenza, il plug-in selezionava l'ultima versione scaricata dell'NDK. Utilizza la proprietà android.ndkVersion nel file build.gradle del modulo per sostituire il valore predefinito selezionato dal plug-in.

    Generazione semplificata di classi R

    Il plug-in Android Gradle semplifica il classpath di compilazione generando una sola classe R per ogni modulo della libreria nel tuo progetto e condividendo queste classi R con altre dipendenze del modulo. Questa ottimizzazione dovrebbe portare a build più rapide, ma richiede di tenere presente quanto segue:

    • Poiché il compilatore condivide le classi R con dipendenze dei moduli upstream, è importante che ogni modulo del progetto utilizzi un nome di pacchetto univoco.
    • La visibilità della classe R di una libreria rispetto ad altre dipendenze del progetto è determinata dalla configurazione utilizzata per includere la libreria come dipendenza. Ad esempio, se la Libreria A include la Libreria B come dipendenza "api", la Libreria A e le altre librerie che dipendono dalla Libreria A hanno accesso alla classe R della Libreria B. Tuttavia, altre librerie potrebbero non avere accesso alla classe R della Libreria B. Se la Libreria A utilizza la configurazione delle dipendenze implementation. Per scoprire di più, scopri di più sulle configurazioni delle dipendenze.
    Rimuovi le risorse mancanti dalla configurazione predefinita

    Per i moduli Library, se includi una risorsa per una lingua che non includi nel set predefinito di risorse, ad esempio se includi hello_world come risorsa stringa in /values-es/strings.xml ma non definisci questa risorsa in /values/strings.xml, il plug-in Android Gradle non include più questa risorsa durante la compilazione del progetto. Questa modifica del comportamento dovrebbe comportare meno Resource Not Found eccezioni di runtime e una migliore velocità delle build.

    D8 ora rispetta il criterio di conservazione CLASS per le annotazioni

    Quando compila la tua app, D8 ora rispetta l'applicazione di un criterio di conservazione CLASS alle annotazioni, che non sono più disponibili durante il runtime. Questo comportamento si verifica anche quando l'SDK di destinazione dell'app viene impostato al livello API 23, che in precedenza consentiva l'accesso a queste annotazioni durante il runtime durante la compilazione dell'app utilizzando versioni precedenti del plug-in Android Gradle e D8.

    Altre modifiche del comportamento
    • aaptOptions.noCompress non è più sensibile alle maiuscole su tutte le piattaforme (sia per APK che per bundle) e rispetta i percorsi che utilizzano caratteri maiuscoli.
    • L'associazione di dati è ora incrementale per impostazione predefinita. Per scoprire di più, consulta il problema n. 110061530.

    • Tutti i test delle unità, inclusi quelli delle unità Roboelettriche, sono ora completamente memorizzabili nella cache. Per scoprire di più, consulta il problema n. 115873047.

    Correzioni di bug

    Questa versione del plug-in Android per Gradle include le seguenti correzioni di bug:

    • I test delle unità Robolectric sono ora supportati nei moduli della libreria che utilizzano l'associazione di dati. Per scoprire di più, consulta il problema n. 126775542.
    • Ora puoi eseguire connectedAndroidTest attività su più moduli mentre è abilitata la modalità di esecuzione parallela di Gradle.

    Problemi noti

    Questa sezione descrive i problemi noti che esistono nel plug-in Android per Gradle 3.6.0.

    Prestazioni lente dell'attività Lint di Android

    Il completamento di Android Lint può richiedere molto più tempo in alcuni progetti a causa di una regressione nella sua infrastruttura di analisi, che comporta un calcolo più lento dei tipi dedotti per le lambda in alcuni costrutti di codice.

    Il problema viene segnalato come un bug in IDEA e verrà risolto nel plug-in Android per Gradle 4.0.

    Classe manifest mancante {:#agp-missing-manifest}

    Se la tua app definisce autorizzazioni personalizzate nel file manifest, il plug-in Android Gradle genera in genere una classe Manifest.java che include le tue autorizzazioni personalizzate come costanti delle stringhe. Il plug-in pacchettizza questa classe con la tua app, così puoi fare riferimento a queste autorizzazioni più facilmente in fase di runtime.

    La generazione della classe del manifest viene interrotta nel plug-in Android Gradle 3.6.0. Se crei l'app con questa versione del plug-in, che fa riferimento alla classe manifest, potresti visualizzare un'eccezione ClassNotFoundException. Per risolvere il problema, esegui una delle seguenti operazioni:

    • Fai riferimento alle autorizzazioni personalizzate indicando il loro nome completo. Ad esempio, "com.example.myapp.permission.DEADLY_ACTIVITY".

    • Definisci le tue costanti, come mostrato di seguito:

                  public final class CustomPermissions {
                    public static final class permission {
                      public static final String DEADLY_ACTIVITY="com.example.myapp.permission.DEADLY_ACTIVITY";
                    }
                  }
                  
                

    3.5.0 (agosto 2019)

    Il plug-in Android per Gradle 3.5.0, insieme ad Android Studio 3.5, è una release principale e il risultato di Project Marble, che ha lo scopo di migliorare tre aree principali degli strumenti per sviluppatori Android: integrità del sistema, perfezionamento delle funzionalità e correzione dei bug. In particolare, il miglioramento della velocità di build del progetto è stato un obiettivo principale di questo aggiornamento.

    Per informazioni su questi e altri aggiornamenti di Project Marble, leggi il post del blog per gli sviluppatori Android o le sezioni seguenti.

    Questa versione del plug-in Android richiede quanto segue:

    3.5.4 (luglio 2020)

    Questo aggiornamento secondario supporta la compatibilità con le nuove impostazioni e funzionalità predefinite per la visibilità dei pacchetti in Android 11.

    Per informazioni dettagliate, consulta le note di rilascio 4.0.1.

    3.5.3 (dicembre 2019)

    Questo aggiornamento secondario supporta Android Studio 3.5.3 e include varie correzioni di bug e miglioramenti delle prestazioni.

    3.5.2 (novembre 2019)

    Questo aggiornamento secondario supporta Android Studio 3.5.2 e 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.5.1 (ottobre 2019)

    Questo aggiornamento secondario supporta Android Studio 3.5.1 e 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.

    Elaborazione incrementale delle annotazioni

    Il processore di annotazioni Associazione dati supporta l'elaborazione incrementale delle annotazioni se imposti android.databinding.incremental=true nel tuo file gradle.properties. Questa ottimizzazione migliora le prestazioni incrementali delle build. Per un elenco completo dei processori di annotazione ottimizzati, consulta la tabella dei processori di annotazione incrementali.

    Inoltre, KAPT 1.3.30 e versioni successive supportano anche i processori di annotazioni incrementali, che puoi abilitare includendo kapt.incremental.apt=true nel file gradle.properties.

    Test delle unità memorizzabili nella cache

    Quando consenti ai test delle unità di utilizzare risorse, asset e manifest di Android impostando includeAndroidResources su true, il plug-in Android Gradle genera un file di configurazione dei test contenente percorsi assoluti, che interrompe la rilocalizzazione della cache. Puoi indicare al plug-in di generare la configurazione di test utilizzando percorsi relativi, in modo che l'attività AndroidUnitTest possa essere completamente memorizzabile nella cache, includendo quanto segue nel file gradle.properties:

          android.testConfig.useRelativePath = true
        

    Problemi noti

    • Quando utilizzi il plug-in Kotlin Gradle 1.3.31 o versioni precedenti, potresti visualizzare il seguente avviso durante la creazione o la sincronizzazione del progetto:

                WARNING: API 'variant.getPackageLibrary()' is obsolete and has been replaced
                        with 'variant.getPackageLibraryProvider()'.
                
              

      Per risolvere questo problema, esegui l'upgrade del plug-in alla versione 1.3.40 o successive.

    3.4.0 (aprile 2019)

    Questa versione del plug-in Android richiede quanto segue:

    3.4.3 (luglio 2020)

    Questo aggiornamento secondario supporta la compatibilità con le nuove impostazioni e funzionalità predefinite per la visibilità dei pacchetti in Android 11.

    Per informazioni dettagliate, consulta le note di rilascio 4.0.1.

    3.4.2 (luglio 2019)

    Questo aggiornamento secondario supporta Android Studio 3.4.2 e 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 supporta Android Studio 3.4.1 e 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.

    Nuove funzionalità

    • Nuove configurazioni delle dipendenze per i controlli lint: il comportamento di lintChecks è cambiato ed è stata introdotta una nuova configurazione delle dipendenze, lintPublish, per offrire maggiore controllo sui controlli lint pacchettizzati nelle librerie Android.

      • lintChecks: questa è una configurazione esistente che devi utilizzare per i controlli lint da eseguire solo quando crei il progetto localmente. Se in precedenza utilizzavi la configurazione delle dipendenze lintChecks per includere i controlli lint nell'AAR pubblicato, devi eseguire la migrazione di queste dipendenze per utilizzare invece la nuova configurazione lintPublish descritta di seguito.
      • lintPublish: utilizza questa nuova configurazione nei progetti delle librerie per i controlli lint da includere nell'AAR pubblicato, come mostrato di seguito. Ciò significa che i progetti che utilizzano la tua libreria applicano questi controlli lint.

      Il seguente esempio di codice utilizza entrambe le configurazioni delle dipendenze in un progetto di libreria Android locale.

      dependencies {
        // Executes lint checks from the ':lint' project at build time.
        lintChecks project(':lint')
        // Packages lint checks from the ':lintpublish' in the published AAR.
        lintPublish project(':lintpublish')
      }
              
      dependencies {
        // Executes lint checks from the ':lint' project at build time.
        lintChecks(project(":lint"))
        // Packages lint checks from the ':lintpublish' in the published AAR.
        lintPublish(project(":lintpublish"))
          }
              
      • In generale, le attività di pacchettizzazione e firma dovrebbero migliorare la velocità di creazione complessiva. Se noti una regressione delle prestazioni relativa a queste attività, segnala un bug.

    Modifiche del comportamento

    • Avviso relativo al ritiro del plug-in delle app istantanee Android: se usi ancora il plug-in com.android.feature per creare la tua app istantanea, il plug-in Android Gradle 3.4.0 ti restituirà un avviso di ritiro. Per assicurarti di poter comunque creare la tua app istantanea su versioni future del plug-in, esegui la migrazione dell'app istantanea al plug-in delle funzionalità dinamiche, che ti consente anche di pubblicare le esperienze delle app istantanee e installate da un unico Android App Bundle.

    • R8 abilitato per impostazione predefinita: R8 integra la desugaring, la riduzione, l'offuscamento, l'ottimizzazione e il dexing in un unico passaggio, con conseguente miglioramenti evidenti delle prestazioni della build. R8 è stato introdotto nel plug-in Android Gradle 3.3.0 e ora è abilitato per impostazione predefinita sia per i progetti di app che per le 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 della tua app per quel tipo di build, indipendentemente dal fatto che R8 venga disabilitato nel file gradle.properties del tuo progetto.

    • L'app ndkCompile è deprecata:ora ricevi un errore di build se provi a utilizzare ndkBuild per compilare le tue librerie native. Dovresti invece utilizzare CMake o ndk-build per aggiungere codice C e C++ al tuo progetto.

    Problemi noti

    • Al momento non viene applicato in modo corretto l'utilizzo di nomi di pacchetto univoci, ma diventerà più rigido nelle versioni successive del plug-in. Nella versione 3.4.0 del plug-in Gradle per Android versione 3.4.0, puoi attivare la verifica per verificare se il tuo progetto dichiara nomi di pacchetti accettabili aggiungendo la riga di seguito al file gradle.properties.

                android.uniquePackageNames = true
                
              

      Per scoprire di più sull'impostazione del nome di un pacchetto tramite il plug-in Android Gradle, consulta Impostare l'ID applicazione.

    3.3.0 (gennaio 2019)

    Questa versione del plug-in Android richiede quanto segue:

    3.3.3 (luglio 2020)

    Questo aggiornamento secondario supporta la compatibilità con le nuove impostazioni e funzionalità predefinite per la visibilità dei pacchetti in Android 11.

    Per informazioni dettagliate, consulta le note di rilascio 4.0.1.

    3.3.2 (marzo 2019)

    Questo aggiornamento secondario supporta Android Studio 3.3.2 e 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.3.1 (febbraio 2019)

    Questo aggiornamento secondario supporta Android Studio 3.3.1 e include varie correzioni di bug e miglioramenti delle prestazioni.

    Nuove funzionalità

    • Sincronizzazione dei classpath migliorata: per risolvere le dipendenze dai classpath del runtime e del tempo di compilazione, il plug-in Android Gradle tenta di risolvere alcuni conflitti di versione downstream per le dipendenze che si verificano in più percorsi delle classi.

      Ad esempio, se il classpath del runtime include Library A versione 2.0 e il classpath di compile include la Libreria A versione 1.0, il plug-in aggiorna automaticamente la dipendenza del classpath di compile alla libreria A versione 2.0 per evitare errori.

      Tuttavia, se il classpath del runtime include la Libreria A versione 1.0 e la compilazione include la Libreria A versione 2.0, il plug-in non esegue il downgrade della dipendenza del classpath di compile alla Libreria A versione 1.0 e verrà visualizzato un errore. Per scoprire di più, consulta Risolvere i conflitti tra i classpath.

    • Compilazione Java incrementale migliorata quando si utilizzano processori di annotazione: questo aggiornamento riduce i tempi di build migliorando il supporto della compilazione Java incrementale quando si utilizzano processori di annotazione.

      Nota: questa funzionalità è compatibile con Gradle 4.10.1 e versioni successive, ad eccezione di Gradle 5.1 a causa del problema di Gradle 8194.

      • Per i progetti che utilizzano Kapt (la maggior parte dei progetti solo per Kotlin e i progetti ibridi Kotlin-Java): la compilazione Java incrementale è abilitata, anche quando utilizzi l'associazione di dati o il plug-in retro-lambda. L'elaborazione delle annotazioni da parte dell'attività Kapt non è ancora incrementale.

      • Per i progetti che non utilizzano Kapt (progetti solo Java): se i processori di annotazione che utilizzi tutti supportano l'elaborazione incrementale delle annotazioni, la compilazione Java incrementale è abilitata per impostazione predefinita. Per monitorare l'adozione incrementale del processore di annotazioni, guarda il video Gradle issue 5277.

        Tuttavia, se uno o più processori di annotazione non supportano build incrementali, la compilazione Java incrementale non è abilitata. Puoi invece includere il seguente flag nel file gradle.properties:

        android.enableSeparateAnnotationProcessing=true
                    

        Se includi questo flag, il plug-in Android Gradle esegue i processori di annotazione in un'attività separata e consente l'esecuzione incrementale dell'attività di compilazione Java.

    • Informazioni di debug migliori in caso di utilizzo di un'API obsoleta: quando il plug-in rileva che usi un'API non più supportata, ora può fornire informazioni più dettagliate per aiutarti a determinare dove viene usata l'API. Per visualizzare le informazioni aggiuntive, devi includere quanto segue nel file gradle.properties del progetto:

                android.debug.obsoleteApi=true
              

      Puoi abilitare il flag anche passando -Pandroid.debug.obsoleteApi=true dalla riga di comando.

    • Puoi eseguire test della strumentazione sui moduli delle caratteristiche dalla riga di comando.

    Modifiche del comportamento

    • Configurazione delle attività lazy: il plug-in ora utilizza la nuova API di Gradle per la creazione di attività per evitare di inizializzare e configurare attività non necessarie per completare la build attuale (o attività non presenti nel grafico delle attività di esecuzione). Ad esempio, se hai più varianti di build, come le varianti di build "release" e "debug", e stai creando la versione di "debug" della tua app, il plug-in evita di inizializzare e configurare le attività per la versione "release" della tua app.

      La chiamata di alcuni metodi meno recenti nell'API Variants, ad esempio variant.getJavaCompile(), potrebbe comunque forzare la configurazione delle attività. Per assicurarti che la tua build sia ottimizzata per la configurazione di attività lazy, richiama nuovi metodi che restituiscono invece un oggetto TaskProvider, come variant.getJavaCompileProvider().

      Se esegui attività di compilazione personalizzate, scopri come adattarti alla nuova API di creazione di attività di Gradle.

    • Per un determinato tipo di build, quando imposti useProguard false, il plug-in ora utilizza R8 anziché ProGuard per ridurre e offuscare il codice e le risorse della tua app. Per scoprire di più su R8, leggi questo post del blog dell'Android Developer’s Blog.

    • Generazione più veloce delle classi R per i progetti di libreria: in precedenza, il plug-in Gradle per Android generava un file R.java per ogni dipendenza del progetto e compilava queste classi R insieme alle altre classi dell'app. Il plug-in ora genera direttamente un file JAR contenente direttamente la classe R compilata dell'app, senza prima creare classi R.java intermedie. Questa ottimizzazione potrebbe migliorare notevolmente le prestazioni delle build per i progetti che includono molti sottoprogetti e dipendenze di libreria, nonché migliorare la velocità di indicizzazione in Android Studio.

    • Quando crei un Android App Bundle, gli APK generati dall'app bundle che hanno come target Android 6.0 (livello API 23) o versioni successive ora includono per impostazione predefinita versioni non compresse delle librerie native. Questa ottimizzazione evita la necessità che il dispositivo crei una copia della libreria, riducendo così le dimensioni sul disco della tua app. Se preferisci disabilitare questa ottimizzazione, aggiungi quanto segue al file gradle.properties:

      android.bundle.enableUncompressedNativeLibs = false
              
    • Il plug-in applica le versioni minime di alcuni plug-in di terze parti.

    • Sincronizzazione del progetto con una variante singola: sincronizzare il progetto con la configurazione di build è un passaggio importante per consentire ad Android Studio di comprendere come è strutturato il progetto. Tuttavia, questo processo può richiedere molto tempo per i progetti di grandi dimensioni. Se il tuo progetto utilizza più varianti di build, ora puoi ottimizzare le sincronizzazioni del progetto limitandole solo alla variante attualmente selezionata.

      Per abilitare questa ottimizzazione, devi utilizzare Android Studio 3.3 o versioni successive con il plug-in per Android per Gradle 3.3.0 o versioni successive. Se soddisfi questi requisiti, l'IDE ti chiede di abilitare l'ottimizzazione quando sincronizzi il progetto. L'ottimizzazione è abilitata per impostazione predefinita anche sui nuovi progetti.

      Per attivare questa ottimizzazione manualmente, fai clic su File > Impostazioni > Sperimentale > Gradle (Android Studio > Preferenze > Sperimentale > Gradle su un Mac) e seleziona la casella di controllo Sincronizza solo la variante attiva.

      Nota: questa ottimizzazione supporta completamente i progetti che includono i linguaggi Java e C++ e supporta Kotlin. Quando abiliti l'ottimizzazione per i progetti con contenuti Kotlin, la sincronizzazione Gradle torna a utilizzare internamente le varianti complete.

    • Download automatico dei pacchetti SDK mancanti: questa funzionalità è stata ampliata per supportare NDK. Per scoprire di più, leggi Eseguire automaticamente il download dei pacchetti mancanti con Gradle.

    Correzioni di bug

    • Il plug-in Android Gradle 3.3.0 corregge i seguenti problemi:

      • Il processo di compilazione chiama android.support.v8.renderscript.RenderScript anziché la versione di AndroidX, nonostante Jetifier sia abilitato
      • Arresti anomali dovuti a androidx-rs.jar, inclusi i bundle statici annotation.AnyRes
      • Quando utilizzi RenderScript, non devi più impostare manualmente la versione degli strumenti di creazione nei file build.gradle

    3.2.0 (settembre 2018)

    Questa versione del plug-in Android richiede quanto segue:

    3.2.1 (ottobre 2018)

    Con questo aggiornamento, non è più necessario specificare una versione per SDK Build Tools. Il plug-in Android Gradle ora utilizza la versione 28.0.3 per impostazione predefinita.

    Nuove funzionalità

    • Supporto per la creazione di Android App Bundle: l'app bundle è un nuovo formato di caricamento che include tutte le risorse e il codice compilato dell'app, rimandando al tempo stesso la generazione di APK e la firma sul Google Play Store. Non dovrai più creare, firmare e gestire più APK e gli utenti ricevono download più piccoli ottimizzati per il loro dispositivo. Per saperne di più, consulta Informazioni su Android App Bundle.

    • Supporto del miglioramento della velocità di build incrementale quando si utilizzano i processori di annotazioni: DSL di AnnotationProcessorOptions ora estende CommandLineArgumentProvider, che consente a te o all'autore del processore di annotazioni di annotare gli argomenti per il processore utilizzando annotazioni di tipo di proprietà di compilazione incrementale. L'utilizzo di queste annotazioni migliora la correttezza e le prestazioni delle build nitide e incrementali e memorizzate nella cache. Per scoprire di più, leggi Passare argomenti ai processori di annotazione.

    • Strumento di migrazione per AndroidX:quando utilizzi il plug-in Android Gradle 3.2.0 con Android 3.2 e versioni successive, puoi eseguire la migrazione delle dipendenze locali e Maven del progetto per utilizzare le nuove librerie AndroidX selezionando Refactoring > Migrate to AndroidX dalla barra dei menu. Se utilizzi questo strumento di migrazione, vengono impostati anche i seguenti flag su true nel file gradle.properties:

      • android.useAndroidX: se impostato su true, il plug-in Android utilizza la libreria AndroidX appropriata anziché una Support Library. Se questo flag non viene specificato, il plug-in lo imposta su false per impostazione predefinita.

      • android.enableJetifier: se impostato su true, il plug-in Android esegue automaticamente la migrazione delle librerie di terze parti esistenti per utilizzare AndroidX riscrivendo i relativi programmi binari. Se questo flag non è specificato, il plug-in lo imposta su false per impostazione predefinita. Puoi impostare questo flag su true solo mentre anche android.useAndroidX è impostato su true, altrimenti riceverai un errore di generazione.

        Per ulteriori informazioni, leggi la panoramica di AndroidX.

    • Nuovo strumento di riduzione del codice, R8: R8 è un nuovo strumento per la riduzione e l'offuscamento del codice che sostituisce ProGuard. Puoi iniziare a utilizzare la versione di anteprima di R8 includendo quanto segue nel file gradle.properties del tuo progetto:

              android.enableR8 = true
              
              android.enableR8 = true
              

    Modifiche del comportamento

    • La desugaring con D8 è ora abilitata per impostazione predefinita.

    • AAPT2 è ora nel repository Maven di Google. Per utilizzare AAPT2, assicurati di avere la dipendenza google() nel file build.gradle, come mostrato di seguito:

                buildscript {
                      repositories {
                          google() // here
                          jcenter()
                      }
                      dependencies {
                          classpath 'com.android.tools.build:gradle:3.2.0'
                      }
                  }
                  allprojects {
                      repositories {
                          google() // and here
                          jcenter()
                  }
                
                buildscript {
                      repositories {
                          google() // here
                          jcenter()
                      }
                      dependencies {
                          classpath 'com.android.tools.build:gradle:3.2.0'
                      }
                  }
                  allprojects {
                      repositories {
                          google() // and here
                          jcenter()
                  }
                
    • Il multidex nativo è ora attivo per impostazione predefinita. Le versioni precedenti di Android Studio abilitavano il multidex nativo durante il deployment della versione di debug di un'app su un dispositivo con il livello API Android 21 o versioni successive. Ora, che tu stia eseguendo il deployment su un dispositivo o creando un APK per la release, il plug-in Android Gradle abilita il multidex nativo per tutti i moduli che impostano minSdkVersion=21 o versioni successive.

    • Il plug-in ora applica una versione minima del plug-in protobuf (0.8.6), del plug-in Kotlin (1.2.50) e del plug-in Crashlytics (1.25.4).

    • Il plug-in del modulo delle funzionalità com.android.feature ora impone l'utilizzo solo di lettere, numeri e trattini bassi per specificare il nome di un modulo. Ad esempio, se il nome del modulo delle funzionalità include trattini, viene visualizzato un errore di compilazione. Questo comportamento corrisponde a quello del plug-in per le funzionalità dinamiche.

    Correzioni di bug

    • Ora JavaCompile può essere inserito nella cache nei progetti con associazione di dati. (Numero 69243050)
    • Migliore prevenzione di compilazione per i moduli della libreria con associazione di dati. (Numero 77539932)
    • Ora puoi riattivare la funzionalità configure on demand se l'hai disabilitata nelle versioni precedenti a causa di alcuni errori di build imprevedibili. (Numero 77910727)

    3.1.0 (marzo 2018)

    Questa versione del plug-in Android richiede quanto segue:

    • Gradle 4.4 o superiore.

      Per scoprire di più, consulta la sezione sull'aggiornamento di Gradle.

    • Strumenti di creazione 27.0.3 o versioni successive.

      Tieni presente che non è più necessario specificare una versione per gli strumenti di creazione utilizzando la proprietà android.buildToolsVersion, poiché il plug-in utilizza per impostazione predefinita la versione minima richiesta.

    Nuovo compilatore DEX, D8

    Per impostazione predefinita, Android Studio ora utilizza un nuovo compilatore DEX chiamato D8. La compilazione DEX è il processo di trasformazione del bytecode .class in bytecode .dex per Android Runtime (o Dalvik, per le versioni precedenti di Android). Rispetto al compilatore precedente, chiamato DX, D8 effettua la compilazione più velocemente e restituisce file DEX più piccoli, il tutto mantenendo prestazioni di runtime dell'app uguali o migliori.

    D8 non dovrebbe modificare il tuo flusso di lavoro quotidiano di sviluppo di app. Tuttavia, se riscontri problemi relativi al nuovo compilatore, segnala un bug. Puoi disabilitare temporaneamente D8 e utilizzare DX includendo quanto segue nel file gradle.properties del tuo progetto:

          android.enableD8=false
        

    Per i progetti che utilizzano le funzionalità del linguaggio Java 8, il desugaring incrementale è abilitato per impostazione predefinita. Puoi disabilitarlo specificando quanto segue nel file gradle.properties del tuo progetto:

          android.enableIncrementalDesugaring=false.
        

    Utenti con anteprima: se già utilizzi una versione di anteprima di D8, tieni presente che ora viene compilata in base alle librerie incluse negli strumenti di creazione SDK, non in JDK. Pertanto, se accedi alle API che esistono nel JDK ma non nelle librerie degli strumenti di creazione dell'SDK, viene visualizzato un errore di compilazione.

    Modifiche del comportamento

    • Quando crei più APK che hanno come target un'ABI diversa, per impostazione predefinita non vengono più generati APK per le seguenti ABI: mips, mips64 e armeabi.

      Se vuoi creare APK che hanno come target queste ABI, devi utilizzare NDK r16b o precedente e specificare le ABI nel file build.gradle, come mostrato di seguito:

                splits {
                    abi {
                        include 'armeabi', 'mips', 'mips64'
                        ...
                    }
                }
              
                splits {
                    abi {
                        include("armeabi", "mips", "mips64")
                        ...
                    }
                }
              
    • Ora la cache di build del plug-in Android rimuove le voci della cache più vecchie di 30 giorni.

    • La trasmissione di "auto" a resConfig non seleziona più automaticamente risorse stringa da pacchettizzare nel tuo APK. Se continui a usare "auto", il plug-in pacchettizza tutte le risorse stringa fornite dalla tua app e dalle sue dipendenze. Pertanto, devi invece specificare ogni impostazione internazionale che vuoi che il plug-in pacchettizzi nel tuo APK.

    • Poiché i moduli locali non possono dipendere dall'APK di test della tua app, l'aggiunta di dipendenze ai test strumentati utilizzando la configurazione androidTestApi, anziché androidTestImplementation, fa sì che Gradle invii il seguente avviso:

              WARNING: Configuration 'androidTestApi' is obsolete
              and has been replaced with 'androidTestImplementation'
              
              WARNING: Configuration 'androidTestApi' is obsolete
              and has been replaced with 'androidTestImplementation'
              

    Correzioni

    • Risolvi un problema per cui Android Studio non riconosce correttamente le dipendenze nelle build composte.
    • Risolvi il problema per cui si verifica un errore di sincronizzazione del progetto quando carichi più volte il plug-in Android in una singola build, ad esempio quando più sottoprogetti includono ciascuno il plug-in Android nel classpath di buildscript.

    3.0.0 (ottobre 2017)

    Il plug-in Android Gradle 3.0.0 include una serie di modifiche volte a risolvere i problemi di prestazioni dei progetti di grandi dimensioni.

    Ad esempio, in un progetto scheletro di esempio con circa 130 moduli e un numero elevato di dipendenze esterne (ma senza codice o risorse), puoi riscontrare miglioramenti delle prestazioni simili a quanto segue:

    Versione plug-in Android + versione Gradle Plug-in Android 2.2.0 + Gradle 2.14.1 Plug-in Android 2.3.0 + Gradle 3.3 Plug-in Android 3.0.0 + Gradle 4.1
    Configurazione (ad es. esecuzione di ./gradlew --help) ~2 min ~9 s ~2,5 s
    Modifica Java di una riga (modifica dell'implementazione) ~2 min 15 sec ~29 s ~6,4 s

    Alcune di queste modifiche danneggiano le build esistenti. Dovresti quindi considerare lo sforzo di eseguire la migrazione del progetto prima di utilizzare il nuovo plug-in.

    Se non riscontri i miglioramenti delle prestazioni descritti sopra, segnala un bug e includi una traccia della tua build utilizzando Gradle Profiler.

    Questa versione del plug-in Android richiede quanto segue:

    • Gradle 4.1 o superiore. Per scoprire di più, consulta la sezione sull'aggiornamento di Gradle.
    • Build Tools 26.0.2 o versioni successive. Con questo aggiornamento, non è più necessario specificare una versione per gli strumenti di compilazione, poiché per impostazione predefinita il plug-in utilizza la versione minima richiesta. Pertanto, ora puoi rimuovere la proprietà android.buildToolsVersion.

    3.0.1 (novembre 2017)

    Si tratta di un aggiornamento secondario per supportare Android Studio 3.0.1 e include correzioni di bug generali e miglioramenti delle prestazioni.

    Ottimizzazioni

    • Migliorare il parallelismo per i progetti multi-modulo tramite un grafico delle attività granulare.
    • Quando si apportano modifiche alla dipendenza, Gradle esegue build più rapide perché non ricompila i moduli che non hanno accesso all'API di quella dipendenza. Dovresti limitare le dipendenze ad altri moduli utilizzando le nuove configurazioni delle dipendenze di Gradle: implementation, api, compileOnly e runtimeOnly.
    • Velocità di build incrementale più rapida grazie al dexing di ogni classe. Ogni classe viene ora compilata in file DEX separati e solo le classi modificate vengono modificate. Dovresti inoltre aspettarti velocità di build migliorate per le app che impostano minSdkVersion su 20 o un valore inferiore e utilizzano multi-dex legacy.
    • Velocità di build migliorate mediante l'ottimizzazione di determinate attività in modo da utilizzare output con problemi. Per trarre vantaggio da questa ottimizzazione, devi prima abilitare la cache di build Gradle.
    • È stata migliorata l'elaborazione incrementale delle risorse utilizzando AAPT2, che ora è abilitato per impostazione predefinita. Se riscontri problemi durante l'utilizzo di AAPT2, segnala un bug. Puoi anche disabilitare AAPT2 impostando android.enableAapt2=false nel file gradle.properties e riavviando il daemon Gradle eseguendo ./gradlew --stop dalla riga di comando.

    Nuove funzionalità

    • Gestione delle dipendenze sensibile alle varianti. Quando crei una determinata variante di un modulo, il plug-in ora abbina automaticamente le varianti delle dipendenze del modulo della libreria locale alla variante del modulo che stai creando.
    • Include un nuovo plug-in per il modulo delle funzionalità per supportare le app istantanee Android e l'SDK delle app istantanee Android (che puoi scaricare utilizzando SDK Manager). Per scoprire di più sulla creazione di moduli delle funzionalità con il nuovo plug-in, consulta Struttura di un'app istantanea con più funzionalità.
    • Supporto integrato per l'utilizzo di alcune funzionalità del linguaggio Java 8 e delle librerie Java 8. Jack è ora deprecato e non è più obbligatorio. Devi prima disabilitare Jack per utilizzare il supporto migliorato di Java 8 integrato nella toolchain predefinita. Per maggiori informazioni, consulta la pagina Utilizzare le funzionalità del linguaggio Java 8.
    • Aggiunto il supporto per l'esecuzione di test con Android Test Orchestrator, che consente di eseguire ogni test dell'app all'interno della propria chiamata a Instrumentation. Poiché ogni test viene eseguito nella propria istanza di strumentazione, gli stati condivisi tra i test non si accumulano sulla CPU o sulla memoria del dispositivo. Inoltre, anche se un test si arresta in modo anomalo, rimuove solo la propria istanza di Instrumentation, quindi gli altri test continuano a essere eseguiti.

      • È stato aggiunto testOptions.execution per determinare se utilizzare l'orchestrazione dei test sul dispositivo. Se vuoi utilizzare Android Test Orchestrator, devi specificare ANDROID_TEST_ORCHESTRATOR, come mostrato di seguito. Per impostazione predefinita, questa proprietà è impostata su HOST, il che disattiva l'orchestrazione on-device ed è il metodo standard per l'esecuzione dei test.

      trendy

              android {
                testOptions {
                  execution 'ANDROID_TEST_ORCHESTRATOR'
                }
              }
              

      Kotlin

              android {
                testOptions {
                  execution = "ANDROID_TEST_ORCHESTRATOR"
                }
              }
              
    • La nuova configurazione delle dipendenze androidTestUtil consente di installare un altro APK di supporto di test prima di eseguire i test di strumentazione, ad esempio Android Test Orchestrator:

      trendy

              dependencies {
                androidTestUtil 'com.android.support.test:orchestrator:1.0.0'
                ...
              }
              

      Kotlin

              dependencies {
                androidTestUtil("com.android.support.test:orchestrator:1.0.0")
                ...
              }
              
    • È stato aggiunto testOptions.unitTests.includeAndroidResources per supportare i test delle unità che richiedono risorse Android, ad esempio Roboelectric. Quando imposti questa proprietà su true, il plug-in esegue l'unione di risorse, asset e manifest prima di eseguire i test delle unità. I test possono quindi controllare com/android/tools/test_config.properties sul classpath per verificare la presenza delle seguenti chiavi:

      • android_merged_assets: il percorso assoluto alla directory degli asset uniti.

        Nota: per i moduli della libreria, le risorse unite non contengono gli asset delle dipendenze (vedi il problema n. 65550419).

      • android_merged_manifest: il percorso assoluto al file manifest unito.

      • android_merged_resources: il percorso assoluto alla directory delle risorse unite, che contiene tutte le risorse del modulo e tutte le sue dipendenze.

      • android_custom_package: il nome del pacchetto della classe R finale. Se modifichi l'ID applicazione in modo dinamico, il nome del pacchetto potrebbe non corrispondere all'attributo package nel file manifest dell'app.

    • Supporto per i caratteri come risorse (una nuova funzionalità introdotta in Android 8.0 (livello API 26)).
    • Supporto di APK specifici per lingua con SDK per app istantanee Android 1.1 e versioni successive.
    • Ora puoi modificare la directory di output per il progetto di build nativo esterno, come mostrato di seguito:

      trendy

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory "./outputs/cmake"
                      }
                  }
              }
              

      Kotlin

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory = "./outputs/cmake"
                      }
                  }
              }
              
    • Ora puoi utilizzare CMake 3.7 o versioni successive per la creazione di progetti nativi da Android Studio.
    • La nuova configurazione delle dipendenze lintChecks consente di creare un JAR che definisce le regole di lint personalizzate e di pacchettizzarlo nei progetti AAR e APK.

      Le regole lint personalizzate devono appartenere a un progetto separato che restituisce un singolo JAR e include solo le dipendenze compileOnly. Altri moduli di app e librerie possono quindi dipendere dal progetto lint utilizzando la configurazione lintChecks:

      trendy

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks project(':lint-checks')
              }
              

      Kotlin

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks(project(":lint-checks"))
              }
              

    Modifiche del comportamento

    • Il plug-in Android 3.0.0 rimuove determinate API e, se le utilizzi, la tua build si interromperà se le utilizzi. Ad esempio, non puoi più utilizzare l'API Variants per accedere agli oggetti outputFile() o utilizzare processManifest.manifestOutputFile() per ottenere il file manifest per ogni variante. Per scoprire di più, consulta la sezione Modifiche alle API.
    • Non è più necessario specificare una versione per gli strumenti di creazione (quindi, ora puoi rimuovere la proprietà android.buildToolsVersion). Per impostazione predefinita, il plug-in utilizza automaticamente la versione minima degli strumenti di creazione richiesta per la versione del plug-in Android in uso.
    • Ora attivi/disattivi l'elaborazione dei contenuti PNG nel blocco buildTypes, come mostrato di seguito. Il crunching PNG è abilitato per impostazione predefinita per tutte le build, ad eccezione di quelle di debug, perché aumenta i tempi di creazione per i progetti che includono molti file PNG. Quindi, per migliorare i tempi di compilazione per altri tipi di build, devi disattivare il crunching dei file PNG o convertire le tue immagini in WebP.

      trendy

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  crunchPngs false
                }
              }
            }
            

      Kotlin

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  isCrunchPngs = false
                }
              }
            }
            
    • Il plug-in Android ora crea automaticamente target eseguibili che configuri nei progetti CMake esterni.
    • Ora devi aggiungere processori di annotazione al percorso della classe del processore utilizzando la configurazione delle dipendenze annotationProcessor.
    • L'utilizzo della versione deprecata ndkCompile è ora più limitata. Dovresti invece eseguire la migrazione a CMake o a ndk-build per compilare il codice nativo che vuoi pacchettizzare nel tuo APK. Per scoprire di più, consulta Eseguire la migrazione da ndkcompile.

    3.0.0 (ottobre 2017)

    Il plug-in Android Gradle 3.0.0 include una serie di modifiche volte a risolvere i problemi di prestazioni dei progetti di grandi dimensioni.

    Ad esempio, in un progetto scheletro di esempio con circa 130 moduli e un numero elevato di dipendenze esterne (ma senza codice o risorse), puoi riscontrare miglioramenti delle prestazioni simili a quanto segue:

    Versione plug-in Android + versione Gradle Plug-in Android 2.2.0 + Gradle 2.14.1 Plug-in Android 2.3.0 + Gradle 3.3 Plug-in Android 3.0.0 + Gradle 4.1
    Configurazione (ad es. esecuzione di ./gradlew --help) ~2 min ~9 s ~2,5 s
    Modifica Java di una riga (modifica dell'implementazione) ~2 min 15 sec ~29 s ~6,4 s

    Alcune di queste modifiche danneggiano le build esistenti. Dovresti quindi considerare lo sforzo di eseguire la migrazione del progetto prima di utilizzare il nuovo plug-in.

    Se non riscontri i miglioramenti delle prestazioni descritti sopra, segnala un bug e includi una traccia della tua build utilizzando Gradle Profiler.

    Questa versione del plug-in Android richiede quanto segue:

    • Gradle 4.1 o superiore. Per scoprire di più, consulta la sezione sull'aggiornamento di Gradle.
    • Build Tools 26.0.2 o versioni successive. Con questo aggiornamento, non è più necessario specificare una versione per gli strumenti di compilazione, poiché per impostazione predefinita il plug-in utilizza la versione minima richiesta. Pertanto, ora puoi rimuovere la proprietà android.buildToolsVersion.

    3.0.1 (novembre 2017)

    Si tratta di un aggiornamento secondario per supportare Android Studio 3.0.1 e include correzioni di bug generali e miglioramenti delle prestazioni.

    Ottimizzazioni

    • Migliorare il parallelismo per i progetti multi-modulo tramite un grafico delle attività granulare.
    • Quando si apportano modifiche alla dipendenza, Gradle esegue build più rapide perché non ricompila i moduli che non hanno accesso all'API di quella dipendenza. Dovresti limitare le dipendenze ad altri moduli utilizzando le nuove configurazioni delle dipendenze di Gradle: implementation, api, compileOnly e runtimeOnly.
    • Velocità di build incrementale più rapida grazie al dexing di ogni classe. Ogni classe viene ora compilata in file DEX separati e solo le classi modificate vengono modificate. Dovresti inoltre aspettarti velocità di build migliorate per le app che impostano minSdkVersion su 20 o un valore inferiore e utilizzano multi-dex legacy.
    • Velocità di build migliorate mediante l'ottimizzazione di determinate attività in modo da utilizzare output con problemi. Per trarre vantaggio da questa ottimizzazione, devi prima abilitare la cache di build Gradle.
    • È stata migliorata l'elaborazione incrementale delle risorse utilizzando AAPT2, che ora è abilitato per impostazione predefinita. Se riscontri problemi durante l'utilizzo di AAPT2, segnala un bug. Puoi anche disabilitare AAPT2 impostando android.enableAapt2=false nel file gradle.properties e riavviando il daemon Gradle eseguendo ./gradlew --stop dalla riga di comando.

    Nuove funzionalità

    • Gestione delle dipendenze sensibile alle varianti. Quando crei una determinata variante di un modulo, il plug-in ora abbina automaticamente le varianti delle dipendenze del modulo della libreria locale alla variante del modulo che stai creando.
    • Include un nuovo plug-in per il modulo delle funzionalità per supportare le app istantanee Android e l'SDK delle app istantanee Android (che puoi scaricare utilizzando SDK Manager). Per scoprire di più sulla creazione di moduli delle funzionalità con il nuovo plug-in, consulta Struttura di un'app istantanea con più funzionalità.
    • Supporto integrato per l'utilizzo di alcune funzionalità del linguaggio Java 8 e delle librerie Java 8. Jack è ora deprecato e non è più obbligatorio. Devi prima disabilitare Jack per utilizzare il supporto migliorato di Java 8 integrato nella toolchain predefinita. Per maggiori informazioni, consulta la pagina Utilizzare le funzionalità del linguaggio Java 8.
    • Aggiunto il supporto per l'esecuzione di test con Android Test Orchestrator, che consente di eseguire ogni test dell'app all'interno della propria chiamata a Instrumentation. Poiché ogni test viene eseguito nella propria istanza di strumentazione, gli stati condivisi tra i test non si accumulano sulla CPU o sulla memoria del dispositivo. Inoltre, anche se un test si arresta in modo anomalo, rimuove solo la propria istanza di Instrumentation, quindi gli altri test continuano a essere eseguiti.

      • È stato aggiunto testOptions.execution per determinare se utilizzare l'orchestrazione dei test sul dispositivo. Se vuoi utilizzare Android Test Orchestrator, devi specificare ANDROID_TEST_ORCHESTRATOR, come mostrato di seguito. Per impostazione predefinita, questa proprietà è impostata su HOST, il che disattiva l'orchestrazione on-device ed è il metodo standard per l'esecuzione dei test.

      trendy

              android {
                testOptions {
                  execution 'ANDROID_TEST_ORCHESTRATOR'
                }
              }
              

      Kotlin

              android {
                testOptions {
                  execution = "ANDROID_TEST_ORCHESTRATOR"
                }
              }
              
    • La nuova configurazione delle dipendenze androidTestUtil consente di installare un altro APK di supporto di test prima di eseguire i test di strumentazione, ad esempio Android Test Orchestrator:

      trendy

              dependencies {
                androidTestUtil 'com.android.support.test:orchestrator:1.0.0'
                ...
              }
              

      Kotlin

              dependencies {
                androidTestUtil("com.android.support.test:orchestrator:1.0.0")
                ...
              }
              
    • È stato aggiunto testOptions.unitTests.includeAndroidResources per supportare i test delle unità che richiedono risorse Android, ad esempio Roboelectric. Quando imposti questa proprietà su true, il plug-in esegue l'unione di risorse, asset e manifest prima di eseguire i test delle unità. I test possono quindi controllare com/android/tools/test_config.properties sul classpath per verificare la presenza delle seguenti chiavi:

      • android_merged_assets: il percorso assoluto alla directory degli asset uniti.

        Nota: per i moduli della libreria, le risorse unite non contengono gli asset delle dipendenze (vedi il problema n. 65550419).

      • android_merged_manifest: il percorso assoluto al file manifest unito.

      • android_merged_resources: il percorso assoluto alla directory delle risorse unite, che contiene tutte le risorse del modulo e tutte le sue dipendenze.

      • android_custom_package: il nome del pacchetto della classe R finale. Se modifichi l'ID applicazione in modo dinamico, il nome del pacchetto potrebbe non corrispondere all'attributo package nel file manifest dell'app.

    • Supporto per i caratteri come risorse (una nuova funzionalità introdotta in Android 8.0 (livello API 26)).
    • Supporto di APK specifici per lingua con SDK per app istantanee Android 1.1 e versioni successive.
    • Ora puoi modificare la directory di output per il progetto di build nativo esterno, come mostrato di seguito:

      trendy

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory "./outputs/cmake"
                      }
                  }
              }
              

      Kotlin

              android {
                  ...
                  externalNativeBuild {
                      // For ndk-build, instead use the ndkBuild block.
                      cmake {
                          ...
                          // Specifies a relative path for outputs from external native
                          // builds. You can specify any path that's not a subdirectory
                          // of your project's temporary build/ directory.
                          buildStagingDirectory = "./outputs/cmake"
                      }
                  }
              }
              
    • Ora puoi utilizzare CMake 3.7 o versioni successive per la creazione di progetti nativi da Android Studio.
    • La nuova configurazione delle dipendenze lintChecks consente di creare un JAR che definisce le regole di lint personalizzate e di pacchettizzarlo nei progetti AAR e APK.

      Le regole lint personalizzate devono appartenere a un progetto separato che restituisce un singolo JAR e include solo le dipendenze compileOnly. Altri moduli di app e librerie possono quindi dipendere dal progetto lint utilizzando la configurazione lintChecks:

      trendy

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks project(':lint-checks')
              }
              

      Kotlin

              dependencies {
                  // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file
                  // and package it with your module. If the module is an Android library,
                  // other projects that depend on it automatically use the lint checks.
                  // If the module is an app, lint includes these rules when analyzing the app.
                  lintChecks(project(":lint-checks"))
              }
              

    Modifiche del comportamento

    • Il plug-in Android 3.0.0 rimuove determinate API e, se le utilizzi, la tua build si interromperà se le utilizzi. Ad esempio, non puoi più utilizzare l'API Variants per accedere agli oggetti outputFile() o utilizzare processManifest.manifestOutputFile() per ottenere il file manifest per ogni variante. Per scoprire di più, consulta la sezione Modifiche alle API.
    • Non è più necessario specificare una versione per gli strumenti di creazione (quindi, ora puoi rimuovere la proprietà android.buildToolsVersion). Per impostazione predefinita, il plug-in utilizza automaticamente la versione minima degli strumenti di creazione richiesta per la versione del plug-in Android in uso.
    • Ora attivi/disattivi l'elaborazione dei contenuti PNG nel blocco buildTypes, come mostrato di seguito. Il crunching PNG è abilitato per impostazione predefinita per tutte le build, ad eccezione di quelle di debug, perché aumenta i tempi di creazione per i progetti che includono molti file PNG. Quindi, per migliorare i tempi di compilazione per altri tipi di build, devi disattivare il crunching dei file PNG o convertire le tue immagini in WebP.

      trendy

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  crunchPngs false
                }
              }
            }
            

      Kotlin

            android {
              buildTypes {
                release {
                  // Disables PNG crunching for the release build type.
                  isCrunchPngs = false
                }
              }
            }
            
    • Il plug-in Android ora crea automaticamente target eseguibili che configuri nei progetti CMake esterni.
    • Ora devi aggiungere processori di annotazione al percorso della classe del processore utilizzando la configurazione delle dipendenze annotationProcessor.
    • L'utilizzo della versione deprecata ndkCompile è ora più limitata. Dovresti invece eseguire la migrazione a CMake o a ndk-build per compilare il codice nativo che vuoi pacchettizzare nel tuo APK. Per scoprire di più, consulta Eseguire la migrazione da ndkcompile.

    2.3.0 (febbraio 2017)

    2.3.3 (giugno 2017)

    Si tratta di un aggiornamento secondario che aggiunge la compatibilità con Android Studio 2.3.3.

    2.3.2 (maggio 2017)

    Si tratta di un aggiornamento secondario che aggiunge la compatibilità con Android Studio 2.3.2.

    2.3.1 (aprile 2017)

    Si tratta di un piccolo aggiornamento al plug-in Android 2.3.0 che corregge un problema per cui alcuni dispositivi Android fisici non funzionavano correttamente con l'esecuzione istantanea (vedi il problema n. 235879).

    Dipendenze:
    Novità:
    • Utilizza Gradle 3.3, che include miglioramenti delle prestazioni e nuove funzionalità. Per maggiori dettagli, consulta le note di rilascio di Gradle.
    • Crea cache: memorizza alcuni output generati dal plug-in Android durante la creazione del progetto (ad esempio AAR non in pacchetto e dipendenze remote predefinite). Le build nitide sono molto più veloci durante l'utilizzo della cache perché il sistema di compilazione può semplicemente riutilizzare i file memorizzati nella cache durante le build successive, invece di ricrearli. I progetti che utilizzano il plug-in Android 2.3.0 e versioni successive utilizzano la cache delle build per impostazione predefinita. Per scoprire di più, consulta Migliorare la velocità di build con Build Cache.
    Modifiche:

    2.2.0 (settembre 2016)

    Dipendenze:
    Novità:
    • Utilizza Gradle 2.14.1, che include miglioramenti delle prestazioni e nuove funzionalità, e corregge una vulnerabilità di sicurezza che consente l'escalation dei privilegi locali quando si utilizza il daemon Gradle. Per ulteriori dettagli, consulta le note di rilascio di Gradle.
    • Utilizzando la DSL di externalNativeBuild {}, Gradle ora ti consente di collegarti alle tue origini native e di compilare le librerie native utilizzando CMake o ndk-build. Dopo aver creato le librerie native, Gradle le pacchettizza nel tuo APK. Per scoprire di più sull'utilizzo di CMake e ndk-build con Gradle, leggi Aggiungere codice C e C++ al tuo progetto.
    • Quando esegui una build dalla riga di comando, Gradle ora tenta di scaricare automaticamente tutti i componenti o gli aggiornamenti dell'SDK mancanti da cui dipende il tuo progetto. Per saperne di più, leggi Eseguire automaticamente il download dei pacchetti mancanti con Gradle.
    • Una nuova funzionalità sperimentale di memorizzazione nella cache consente a Gradle di accelerare i tempi di compilazione eseguendo il pre-dexing, l'archiviazione e il riutilizzo delle versioni pre-dexed delle tue librerie. Per scoprire di più sull'utilizzo di questa funzionalità sperimentale, leggi la guida Crea cache.
    • Migliora le prestazioni di build adottando una nuova pipeline di pacchettizzazione predefinita che gestisce la compressione, la firma e l'allineamento della compressione in un'unica attività. Puoi tornare a utilizzare gli strumenti di pacchettizzazione precedenti aggiungendo android.useOldPackaging=true al file gradle.properties. Quando utilizzi il nuovo strumento di pacchettizzazione, l'attività zipalignDebug non è disponibile. Tuttavia, puoi crearne uno autonomamente chiamando il metodo createZipAlignTask(String taskName, File inputFile, File outputFile).
    • La firma dell'APK ora utilizza lo schema di firma dell'APK v2 oltre alla tradizionale firma JAR. Tutte le piattaforme Android accettano gli APK risultanti. Qualsiasi modifica a questi APK dopo la firma rende non valide le relative firme v2 e impedisce l'installazione su un dispositivo. Per disabilitare questa funzionalità, aggiungi quanto segue al file build.gradle a livello di modulo:

      trendy

      android {
        ...
        signingConfigs {
          config {
            ...
            v2SigningEnabled false
          }
        }
      }
            

      Kotlin

      android {
        ...
        signingConfigs {
          create("config") {
            ...
            v2SigningEnabled = false
          }
        }
      }
            
    • Per le build multidex, ora puoi utilizzare le regole ProGuard per determinare quali classi Gradle deve compilare nel file DEX principale dell'app. Poiché il sistema Android carica prima il file DEX principale all'avvio dell'app, puoi dare la priorità a determinate classi all'avvio compilandole nel file DEX principale. Dopo aver creato un file di configurazione ProGuard specifico per il file DEX principale, passa il percorso del file di configurazione a Gradle utilizzando buildTypes.multiDexKeepProguard. L'utilizzo di questa DSL è diverso dall'utilizzo di buildTypes.proguardFiles, che fornisce regole ProGuard generali per la tua app e non specifica classi per il file DEX principale.
    • Aggiunge il supporto per il flag android:extractNativeLibs, che può ridurre le dimensioni della tua app quando la installi su un dispositivo. Quando imposti questo flag su false nell'elemento <application> del file manifest dell'app, Gradle pacchettizza versioni non compresse e allineate delle tue librerie native con il tuo APK. In questo modo, PackageManager non potrà copiare le librerie native dall'APK nel file system del dispositivo durante l'installazione, con il vantaggio aggiuntivo di ridurre le dimensioni degli aggiornamenti delta dell'app.
    • Ora puoi specificare versionNameSuffix e applicationIdSuffix per i sapori dei prodotti. (Problema 59614)
    Modifiche:
    • getDefaultProguardFile ora restituisce i file ProGuard predefiniti forniti dal plug-in Android per Gradle e non utilizza più quelli nell'SDK Android.
    • Prestazioni e funzionalità del compilatore Jack migliorate:
      • Jack ora supporta la copertura di test Jacoco quando viene impostato testCoverageEnabled su true.
      • Supporto migliorato per i processori di annotazioni. I processori di annotazione sul tuo classpath, come le eventuali dipendenze compile, vengono applicati automaticamente alla build. Puoi anche specificare un processore di annotazioni nella build e passare gli argomenti utilizzando la DSL javaCompileOptions.annotationProcessorOptions {} nel file build.gradle a livello di modulo:

        trendy

        android {
          ...
          defaultConfig {
            ...
            javaCompileOptions {
              annotationProcessorOptions {
                className 'com.example.MyProcessor'
                // Arguments are optional.
                arguments = [ foo : 'bar' ]
              }
            }
          }
        }
            

        Kotlin

        android {
          ...
          defaultConfig {
            ...
            javaCompileOptions {
              annotationProcessorOptions {
                className = "com.example.MyProcessor"
                // Arguments are optional.
                arguments(mapOf(foo to "bar"))
              }
            }
          }
        }
            

        Se vuoi applicare un processore di annotazioni in fase di compilazione, ma non lo includi nel tuo APK, utilizza l'ambito della dipendenza annotationProcessor:

        trendy

        dependencies {
            compile 'com.google.dagger:dagger:2.0'
            annotationProcessor 'com.google.dagger:dagger-compiler:2.0'
           // or use buildVariantAnnotationProcessor to target a specific build variant
        }
            

        Kotlin

        dependencies {
            implementation("com.google.dagger:dagger:2.0")
            annotationProcessor("com.google.dagger:dagger-compiler:2.0")
           // or use buildVariantAnnotationProcessor to target a specific build variant
        }
            
      • Per un elenco dei parametri che puoi impostare, esegui questo comando dalla riga di comando:

        java -jar /build-tools/jack.jar --help-properties
        
      • Per impostazione predefinita, se la dimensione heap del daemon Gradle è di almeno 1,5 GB, Jack ora viene eseguito nello stesso processo di Gradle. Per regolare le dimensioni dell'heap del daemon, aggiungi quanto segue al tuo file gradle.properties:
        # This sets the daemon heap size to 1.5GB.
        org.gradle.jvmargs=-Xmx1536M
        

    2.1.0 (aprile 2016)

    2.1.3 (agosto 2016)

    Questo aggiornamento richiede Gradle 2.14.1 o versioni successive. Gradle 2.14.1 include miglioramenti delle prestazioni, nuove funzionalità e un'importante correzione di sicurezza. Per maggiori dettagli, consulta le note di rilascio di Gradle.

    Dipendenze:
    Novità:
    • Aggiunto il supporto per le funzionalità Anteprima per sviluppatori N, JDK 8 e Java 8 utilizzando la toolchain Jack. Per ulteriori informazioni, leggi la N Guida all'anteprima.

      Nota: al momento l'esecuzione istantanea non funziona con Jack e verrà disabilitata durante l'utilizzo della nuova toolchain. Devi usare Jack solo se stai sviluppando per l'anteprima N e vuoi utilizzare le funzionalità in linguaggio Java 8 supportate.

    • Aggiunto il supporto predefinito per la compilazione Java incrementale per ridurre i tempi di compilazione durante lo sviluppo. Per farlo, ricompila solo le parti dell'origine che sono cambiate o che devono essere ricompilate. Per disabilitare questa funzionalità, aggiungi il seguente codice al file build.gradle a livello di modulo:

      trendy

      android {
        ...
        compileOptions {
          incremental false
        }
      }
      

      Kotlin

      android {
        ...
        compileOptions {
          incremental = false
        }
      }
      
    • Aggiunto il supporto per dexing-in-process, che esegue il dexing all'interno del processo di compilazione anziché in processi VM esterni separati. Questo non solo velocizza le build incrementali, ma accelera anche le build complete. La funzionalità è abilitata per impostazione predefinita per i progetti che hanno impostato la dimensione massima dell'heap del daemon Gradle su almeno 2048 MB. Per farlo, includi quanto segue nel file gradle.properties del progetto:

      ```none org.gradle.jvmargs = -Xmx2048m ```

      Se hai definito un valore per javaMaxHeapSize nel file build.gradle a livello di modulo, devi impostare org.gradle.jvmargs sul valore di javaMaxHeapSize + 1024 MB. Ad esempio, se hai impostato javaMaxHeapSize su "2048m", devi aggiungere quanto segue al file gradle.properties del tuo progetto:

      ```none org.gradle.jvmargs = -Xmx3072m ```

      Per disabilitare dexing-in-process, aggiungi il seguente codice al file build.gradle a livello di modulo:

      trendy

      android {
        ...
        dexOptions {
            dexInProcess false
        }
      }
      

      Kotlin

      android {
        ...
        dexOptions {
            dexInProcess = false
        }
      }
      

    2.0.0 (aprile 2016)

    Dipendenze:
    Novità:
    • Abilita Esecuzione istantanea supportando l'inserimento di bytecode e inviando aggiornamenti di codice e risorse a un'app in esecuzione nell'emulatore o su un dispositivo fisico.
    • Aggiunto il supporto per le build incrementali, anche quando l'app non è in esecuzione. I tempi di compilazione completi sono migliorati inviando modifiche incrementali tramite Android Debug Bridge al dispositivo connesso.
    • È stato aggiunto maxProcessCount per controllare quanti processi Dex dei worker possono essere generati contemporaneamente. Il seguente codice, nel file build.gradle a livello di modulo, imposta il numero massimo di processi simultanei su 4:

      trendy

      android {
        ...
        dexOptions {
          maxProcessCount = 4 // this is the default value
        }
      }
      

      Kotlin

      android {
        ...
        dexOptions {
          maxProcessCount = 4 // this is the default value
        }
      }
      
        </li>
      
        <li>Added an experimental code shrinker to support pre-dexing and reduce re-dexing
        of dependencies, which are not supported with Proguard. This improves the build
        speed of your debug build variant. Because the experimental shrinker does not
        support optimization and obfuscation, you should enable Proguard for your
        release builds. To enable the experimental shrinker for your debug builds, add
        the following to your module-level <code>build.gradle</code> file:
      

      trendy

      android {
        ...
        buildTypes {
          debug {
            minifyEnabled true
            useProguard false
          }
          release {
            minifyEnabled true
            useProguard true // this is a default setting
          }
        }
      }
      

      Kotlin

      android {
        ...
        buildTypes {
          getByName("debug") {
            minifyEnabled = true
            useProguard = false
          }
          getByName("release") {
            minifyEnabled = true
            useProguard = true // this is a default setting
          }
        }
      }
      
        </li>
      
        <li>Added logging support and improved performance for the resource shrinker.
        The resource shrinker now logs all of its operations into a <code>resources.txt</code>
        file located in the same folder as the Proguard log files.
        </li>
      </ul>
      

    Comportamento modificato:
    • Se il valore di minSdkVersion è impostato su 18 o superiore, la firma dell'APK utilizza l'algoritmo SHA256.
    •   <li>DSA and ECDSA keys can now sign APK packages.
      
          <p class="note">
            <strong>Note:</strong> The <a href=
            "/training/articles/keystore.html">Android keystore</a> provider no
            longer supports <a href=
            "/about/versions/marshmallow/android-6.0-changes.html#behavior-keystore">
            DSA keys on Android 6.0</a> (API level 23) and higher.
          </p>
      
        </li>
      </ul>
      

    Problemi risolti:
    • Risolto un problema che causava dipendenze AAR duplicate nella configurazione della build di test e principale.

    Plug-in Android per Gradle, revisione 1.5.0 (novembre 2015)

    Dipendenze:
    • Gradle 2.2.1 o superiore.
    • Build Tools 21.1.1 o versioni successive.
    Note generali:
    • Integrazione del plug-in Data Binding nel plug-in Android per Gradle. Per abilitarlo, aggiungi il seguente codice a ogni file build.gradle per progetto che utilizza il plug-in:
    • android {
          dataBinding {
              enabled = true
          }
      }
              
      android {
          dataBinding {
              enabled = true
          }
      }
              
    • È stata aggiunta una nuova API Transform per consentire ai plug-in di terze parti di manipolare i file .class compilati prima che vengano convertiti in file .dex. L'API Transform semplifica l'inserimento di manipolazioni delle classi personalizzate e offre una maggiore flessibilità su ciò che puoi manipolare. Per inserire una trasformazione in una build, crea una nuova classe che implementa una delle interfacce Transform e registrala con android.registerTransform(theTransform) o android.registerTransform(theTransform, dependencies). Non è necessario collegare le varie attività. Tieni presente quanto segue sull'API Transform:
      • Una trasformazione può essere applicata a uno o più dei seguenti elementi: progetto attuale, sottoprogetti e librerie esterne.
      • Una trasformazione deve essere registrata a livello globale, in modo da applicarla a tutte le varianti.
      • L'elaborazione interna del codice tramite la Java Code Copertura Library (JaCoCo), ProGuard e MultiDex ora utilizza l'API Transform. Tuttavia, il Java Android Compiler Kit (Jack) non utilizza questa API: lo fa solo il percorso del codice javac/dx.
      • Gradle esegue le trasformazioni nel seguente ordine: JaCoCo, plug-in di terze parti e ProGuard. L'ordine di esecuzione per i plug-in di terze parti corrisponde all'ordine in cui le trasformazioni vengono aggiunte dai plug-in di terze parti; gli sviluppatori di plug-in di terze parti non possono controllare l'ordine di esecuzione delle trasformazioni tramite un'API.
    • Il getter dex è stato ritirato dalla classe ApplicationVariant. Non puoi più accedere all'attività Dex tramite l'API della variante perché ora viene eseguita tramite una trasformazione. Al momento non esiste alcuna sostituzione per il controllo della procedura Dex.
    • Supporto incrementale fisso degli asset.
    • Supporto di MultiDex migliorato rendendolo disponibile per i progetti di test. I test ora presentano automaticamente la dipendenza com.android.support:multidex-instrumentation.
    • È stata aggiunta la possibilità di non riuscire correttamente a una build Gradle e di segnalare la causa dell'errore sottostante quando la build Gradle richiama attività asincrone e si verifica un errore nel processo worker.
    • Aggiunto il supporto per la configurazione di un'ABI (Application Binary Interface) specifica nelle varianti che contengono più ABI.
    • Aggiunto il supporto per un elenco separato da virgole di numeri di serie dei dispositivi per la variabile di ambiente ANDROID_SERIAL durante l'installazione o l'esecuzione dei test.
    • È stato risolto un errore di installazione sui dispositivi con Android 5.0 (livello API 20) e versioni successive quando il nome APK contiene uno spazio.
    • Risolti vari problemi relativi all'output di errore dello strumento AAPT (Android Asset Packaging Tool).
    • È stato aggiunto il supporto della strumentazione incrementale di JaCoCo per build incrementali più veloci. Il plug-in Android per Gradle ora richiama direttamente l'instrumenter JaCoCo. Per forzare una versione più recente dell'instrumenter JaCoCo, devi aggiungerla come dipendenza dello script di build.
    • È stato corretto il supporto di JaCoCo, che ora ignora i file che non sono classi.
    • Aggiunto il supporto di trascinamento di vettori per la generazione di PNG in fase di creazione per garantire la compatibilità con le versioni precedenti. Il plug-in Android per Gradle genera file PNG per ogni trascinamento vettoriale trovato in una directory delle risorse che non specifica una versione dell'API o specifica un attributo android:minSdkVersion pari o inferiore a 20 nell'elemento <uses-sdk> del file manifest dell'app. Puoi impostare le densità dei file PNG utilizzando la proprietà generatedDensities nelle sezioni defaultConfig o productFlavor di un file build.gradle.
    • È stata aggiunta la condivisione del android.jar fittizio, che il plug-in genera solo una volta e utilizza per il test delle unità. Ora più moduli, come app e lib, li condividono. Elimina $rootDir/build per rigenerarlo.
    • È stata modificata l'elaborazione delle risorse Java in modo che si verifichi prima delle attività di offuscamento anziché durante la pacchettizzazione dell'APK. Questa modifica consente alle attività di offuscamento di avere la possibilità di adattare le risorse Java dopo l'offuscamento dei pacchetti.
    • Risolto il problema relativo all'utilizzo del codice JNI (Java Native Interface) nel plug-in della libreria sperimentale.
    • È stata aggiunta la possibilità di impostare la versione della piattaforma separatamente dall'attributo android:compileSdkVersion nel plug-in della libreria sperimentale.

    Plug-in Android per Gradle, revisione 1.3.1 (agosto 2015)

    Dipendenze:
    • Gradle 2.2.1 o superiore.
    • Build Tools 21.1.1 o versioni successive.
    Note generali:
    • È stata corretta l'attività ZipAllinea in modo da utilizzare correttamente l'output dell'attività precedente quando si utilizzava un nome file personalizzato.
    • Correzione del pacchetto Renderscript con l'NDK.
    • Supporto mantenuto per l'attività di creazione createDebugCoverageReport.
    • È stato corretto il supporto dell'uso personalizzato della proprietà archiveBaseName nel file di build build.gradle.
    • È stato risolto l'avviso Invalid ResourceType lint causato dalla ricerca di annotazioni con metodo parametro quando viene eseguito lint al di fuori di Android Studio.

    Plug-in Android per Gradle, revisione 1.3.0 (luglio 2015)

    Dipendenze:
    • Gradle 2.2.1 o superiore.
    • Build Tools 21.1.1 o versioni successive.
    Note generali:
    • Aggiunto il supporto della proprietà com.android.build.threadPoolSize per controllare le dimensioni del pool di thread delle attività Android dal file gradle.properties o dalla riga di comando. Nell'esempio seguente questa proprietà viene impostata su 4.

              
              -Pcom.android.build.threadPoolSize=4
              
            
    • Imposta il comportamento predefinito della build in modo da escludere i file LICENSE e LICENSE.txt dagli APK. Per includere questi file in un APK, rimuovili dalla proprietà packagingOptions.excludes nel file build.gradle. Ecco alcuni esempi:
      android {
            packagingOptions.excludes = []
          }
            
      android {
            packagingOptions.excludes.clear()
          }
          
    • È stata aggiunta l'attività sourceSets per esaminare l'insieme di tutti i set di origini disponibili.
    • Supporto migliorato dei test delle unità per il riconoscimento delle cartelle di origine multi versione e varianti di build. Ad esempio, per testare un'app con più versioni flavor1 e flavorA con il tipo di build Debug, i set di origini di test sono:
      • test
      • TestFlavor1
      • TestFlavorA
      • TestFlavor1FlavorA
      • TestFlavor1FlavorADebug

      I test Android hanno già riconosciuto le cartelle di origine multi-versione.

    • Supporto migliorato del test delle unità per:
      • Esegui javac sulle origini principali e di test, anche se la proprietà useJack è impostata su true nel file di build.
      • Riconosci correttamente le dipendenze per ogni tipo di build.
    • Aggiunto il supporto per specificare gli argomenti dell'esecutore test della strumentazione dalla riga di comando. Ad esempio:
      ./gradlew connectedCheck \
         -Pandroid.testInstrumentationRunnerArguments.size=medium \
         -Pandroid.testInstrumentationRunnerArguments.class=TestA,TestB
              
    • Aggiunto il supporto per parametri aggiuntivi arbitrari dello strumento AAPT (Android Asset Packaging Tool) nel file build.gradle. Ecco alcuni esempi:

      android {
          aaptOptions {
            additionalParameters "--custom_option", "value"
          }
      }
            
      android {
          aaptOptions {
            additionalParameters += listOf("--custom_option", "value")
          }
      }
            
    • Aggiunto il supporto per un modulo APK di test come modulo di test separato, utilizzando le proprietà targetProjectPath e targetVariant per impostare il percorso dell'APK e la variante di destinazione.

      Nota: un modulo APK di test non supporta le varianti di prodotto e può avere come target solo una singola variante. Inoltre, Jacoco non è ancora supportato.

    • È stata aggiunta la convalida del nome delle risorse prima dell'unione delle risorse.
    • Quando crei un pacchetto AAR (Android ARchive) per i moduli della libreria, non fornire un segnaposto @{applicationId} automatico nelle impostazioni di unione dei file manifest. Utilizza invece un segnaposto diverso, come @{libApplicationId}, e fornisci un valore se vuoi includere gli ID delle applicazioni nella libreria di archivio.

    Plug-in Android per Gradle, revisione 1.2.0 (aprile 2015)

    Dipendenze:
    • Gradle 2.2.1 o superiore.
    • Build Tools 21.1.1 o versioni successive.
    Note generali:
    • Supporto migliorato per l'esecuzione di test delle unità con Gradle.
      • Aggiunto il supporto per includere risorse in stile Java nel classpath quando si eseguono test delle unità direttamente da Gradle.
      • Aggiunto il supporto delle dipendenze per i test delle unità per gli artefatti di Android Archive (AAR).
      • Aggiunto il supporto per la proprietà unitTestVariants, in modo che le varianti dei test delle unità possano essere manipolate utilizzando il file build.gradle.
      • È stato aggiunto il blocco di codice unitTest.all in testOptions per configurare attività personalizzate per il test delle unità. Il seguente codice di esempio mostra come aggiungere le impostazioni di configurazione del test delle unità utilizzando questa nuova opzione:
        android {
          testOptions {
            unitTest.all {
              jvmArgs '-XX:MaxPermSize=256m' // Or any other gradle option.
            }
          }
        }
        
        android {
          testOptions {
            unitTest.all {
              jvmArgs += listOf("-XX:MaxPermSize=256m") // Or any other gradle option.
            }
          }
        }
                    
      • È stata corretta la gestione delle enum e dei campi di istanze pubbliche nella pacchettizzazione del file mockable-android.jar.
      • Sono state corrette le dipendenze delle attività del progetto di libreria, in modo che le classi di test vengano ricompilate dopo le modifiche.
    • È stata aggiunta la proprietà testProguardFile per applicare i file ProGuard durante la minimizzazione di un APK di test.
    • È stata aggiunta la proprietà timeOut al blocco di codice adbOptions per impostare il tempo di registrazione massimo per la registrazione dello schermo con Android Debug Bridge.
    • Aggiunto il supporto per le risorse a 280 dpi.
    • Prestazioni migliorate durante la valutazione del progetto.

    Plug-in Android per Gradle, revisione 1.1.3 (marzo 2015)

    Dipendenze:
    • Gradle 2.2.1 o superiore.
    • Build Tools 21.1.1 o versioni successive.
    Note generali:
    • Risolto il problema delle dipendenze duplicate su un'app di test che attivava un errore di ProGuard.
    • Correzione dell'implementazione di Comparator che non rispettava il contratto JDK Comparator e ha generato un errore JDK 7.

    Plug-in Android per Gradle, revisione 1.1.2 (febbraio 2015)

    Dipendenze:
    • Gradle 2.2.1 o superiore.
    • Build Tools 21.1.1 o versioni successive.
    Note generali:
    • Percorso normalizzato durante la creazione di un JAR fittizio per il test delle unità.
    • È stata corretta l'impostazione archivesBaseName nel file build.gradle.
    • È stato risolto l'errore non risolto del segnaposto nell'unione del manifest durante la creazione di un'applicazione di test della libreria.

    Plug-in Android per Gradle, revisione 1.1.1 (febbraio 2015)

    Dipendenze:
    • Gradle 2.2.1 o superiore.
    • Build Tools 21.1.1 o versioni successive.
    Note generali:
    • Le varianti di build sono state modificate in modo che solo le varianti che includono un'app Wear attivano attività di creazione specifiche per Wear.
    • Problemi relativi alle dipendenze modificati in modo che abbiano esito negativo in fase di build anziché in fase di debug. Questo comportamento consente di eseguire attività di diagnostica (ad esempio "dipendenze") per risolvere il conflitto.
    • È stato corretto il metodo android.getBootClasspath() per restituire un valore.

    Plug-in Android per Gradle, revisione 1.1.0 (febbraio 2015)

    Dipendenze:
    • Gradle 2.2.1 o superiore.
    • Build Tools 21.1.1 o versioni successive.
    Note generali:
    • Aggiunta del nuovo supporto per test delle unità
      • Abilitati i test delle unità per l'esecuzione sulla JVM locale su una versione speciale del file android.jar compatibile con i framework di simulazione più diffusi, ad esempio Mockito.
      • Sono state aggiunte nuove attività di test testDebug, testRelease e testMyFlavorDebug quando si utilizzano le varietà di prodotto.
      • Sono state aggiunte nuove cartelle di origine riconosciute come test delle unità: src/test/java/, src/testDebug/java/, src/testMyFlavor/java/.
      • Sono state aggiunte nuove configurazioni nel file build.gradle per la dichiarazione delle dipendenze solo di test, ad esempio testCompile 'junit:junit:4.11' e testMyFlavorCompile 'some:library:1.0'.

        Nota: le dipendenze solo per il test non sono attualmente compatibili con Jack (Java Android Compiler Kit).

      • È stata aggiunta l'opzione android.testOptions.unitTests.returnDefaultValues per controllare il comportamento del file android.jar fittizio.
    • Test sostituito nei nomi delle attività di test con AndroidTest. Ad esempio, l'attività assembleDebugTest ora è assembleDebugAndroidTest. Le attività di test delle unità hanno ancora UnitTest nel nome dell'attività, ad esempio assembleDebugUnitTest.
    • File di configurazione ProGuard modificati per non essere più applicati all'APK di test. Se la minimizzazione è attivata, ProGuard elabora l'APK di test e applica solo il file di mapping generato durante la minimizzazione dell'APK principale.
    • Gestione delle dipendenze aggiornata
      • Sono stati risolti i problemi relativi all'utilizzo degli ambiti provided e package.

        Nota: questi ambiti sono incompatibili con i pacchetti AAR (Android ARchive) e causano l'errore di una build con pacchetti AAR.

      • Risoluzione delle dipendenze modificata per confrontare le dipendenze di un'app sottoposta a test e di quella di test. Se viene trovato un artefatto con la stessa versione per entrambe le app, non viene incluso nell'app di test ed è pacchettizzato solo con l'app sottoposta a test. Se viene trovato un artefatto con una versione diversa per entrambe le app, la build non riesce.
    • Aggiunto il supporto per il qualificatore delle risorse anyDpi nell'unione delle risorse.
    • Velocità di valutazione e sincronizzazione IDE migliorate per i progetti con un gran numero di moduli Android.

    Plug-in Android per Gradle, revisione 1.0.1 (gennaio 2015)

    Dipendenze:
    • Gradle 2.2.1 fino a 2.3.x.

      Nota: questa versione del plug-in Android per Gradle non è compatibile con Gradle 2.4 e versioni successive.

    • Build Tools 21.1.1 o versioni successive.
    Note generali:
    • È stato risolto il problema relativo all'errore di build Gradle durante l'accesso al modulo extractReleaseAnnotations. (Issue 81638).
    • È stato risolto il problema per cui Disable passava l'impostazione --no-optimize al bytecode Dalvik Executable (dex). (Issue 82662).
    • Sono stati risolti i problemi di unione dei manifest durante l'importazione di librerie con un valore targetSdkVersion inferiore a 16.
    • È stato risolto il problema di ordinamento della densità quando si utilizzava Android Studio con JDK 8.

    Plug-in Android per Gradle, revisione 1.0.0 (dicembre 2014)

    Dipendenze:
    • Gradle 2.2.1 fino a 2.3.x.

      Nota: questa versione del plug-in Android per Gradle non è compatibile con Gradle 2.4 e versioni successive.

    • Build Tools 21.1.1 o versioni successive.
    Note generali:
    • Rilascio iniziale del plug-in.