Release 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 versione principale che include una serie di nuove funzionalità e miglioramenti.

Vogliamo anche ringraziare tutti i collaboratori della community che hanno contribuito a questa release.

3.6.3 (aprile 2020)

Questo aggiornamento minore include varie correzioni di bug. Per visualizzare un elenco di importanti correzioni di bug, leggi il post correlato nella Blog degli aggiornamenti delle release.

3.6.2 (marzo 2020)

Questo aggiornamento minore include varie correzioni di bug. Per visualizzare un elenco di importanti correzioni di bug, leggi il post correlato nella Blog degli aggiornamenti delle release.

3.6.1 (febbraio 2020)

Questo aggiornamento minore include varie correzioni di bug. Per visualizzare un elenco delle correzioni di bug più importanti, leggi il post correlato nel blog degli aggiornamenti delle release.

Strumenti di progettazione

Questa versione di Android Studio include aggiornamenti di diversi strumenti di progettazione, tra cui Layout Editor e Resource Manager.

Visualizzazione divisa e zoom negli editor di progettazione

la visualizzazione divisa mostra contemporaneamente la visualizzazione struttura e testo

Questo documento include i seguenti aggiornamenti agli editor di progettazione visiva release:

  • Gli editor di progettazione, come l'editor di layout e l'editor di navigazione, ora forniscono una vista Divisa che ti consente di visualizzare contemporaneamente le viste Design e Codice della tua UI. Nell'angolo in alto a destra della finestra dell'editor, ora sono 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 della visualizzazione divisa.
    • Per attivare la visualizzazione dell'origine XML, fai clic sull'icona Origine. icona vista origine.
    • Per attivare la Vista struttura, fai clic sull'icona Design icona visualizzazione struttura.
  • I controlli per lo zoom e la panoramica all'interno degli editor di progettazione sono stati spostati in un riquadro mobile nell'angolo in basso a destra della finestra dell'editor.

Per scoprire di più, consulta Creare una UI con l'editor layout.

Scheda Risorsa selettore colori

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

Selettore colori con valori di colore inseriti

Resource Manager

Resource Manager contiene i seguenti aggiornamenti:

  • Resource Manager ora supporta la maggior parte dei tipi di risorse.
  • Quando si cerca una risorsa, Resource Manager ora mostra i risultati di per tutti i moduli del progetto. In precedenza, le ricerche restituivano risultati solo dalla modulo selezionato.
  • Il pulsante del filtro consente di visualizzare le risorse da moduli dipendenti locali, librerie esterne e il framework Android. Puoi anche utilizzare il filtro per mostrare gli attributi del tema.
  • Ora puoi rinominare le risorse durante la procedura di importazione facendo clic all'interno della casella di testo sopra la risorsa.

Per saperne di più, vedi Gestisci le risorse UI della tua app con Resource Manager.

Aggiornamenti al plug-in Android per Gradle

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

Visualizza associazione

L'opzione Visualizza associazione ti consente di visualizzare scrivere facilmente codice che interagisca con le viste generando una classe di associazione per ogni XML di layout. Queste classi contengono riferimenti diretti a tutte le visualizzazioni che hanno un ID nel layout corrispondente.

Poiché sostituisce findViewById(), il binding delle viste elimina il rischio di eccezioni di puntatore nullo derivanti da un ID vista non valido.

Per attivare l'associazione delle viste, devi usare il plug-in Android per Gradle 3.6.0 o versioni successive e includere quanto segue negli File build.gradle:

Groovy

  android {
      buildFeatures.viewBinding = true
  }
  

Kotlin

  android {
      buildFeatures.viewBinding = true
  }
  

Applica modifiche

Ora puoi aggiungere un corso e poi eseguire il deployment della modifica del 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, vedi Applica modifiche.

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

Ora puoi attivare immediatamente il modulo di base in qualsiasi momento dopo aver creato l'app. progetto come segue:

  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 Esegui il refactoring > Attiva il supporto delle app istantanee.
  3. Nella finestra di dialogo visualizzata, seleziona il modulo base dal menu a discesa.
  4. Fai clic su OK.

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

Per saperne di più, leggi Panoramica di Google Play Instant.

Deobfuscare il bytecode di classi e metodi in APK Analyzer

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

  1. Seleziona Crea > Analizza l'APK dalla barra dei menu.
  2. Nella finestra di dialogo visualizzata, vai all'APK che vuoi ispezionare e selezionatelo.
  3. Fai clic su Apri.
  4. Nello strumento di analisi APK, seleziona il file DEX che vuoi esaminare.
  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 sul corso o sul metodo che vuoi esaminare e seleziona Mostra bytecode.

Strumenti nativi

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

Supporto di Kotlin

Le seguenti funzioni NDK in Android Studio, precedentemente supportate in Java, sono: ora supportata 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 di elemento C o C++ accanto il numero di riga nel file di codice sorgente gestito.

  • Crea automaticamente una funzione di implementazione stub per una dichiarazione JNI. Definire prima la dichiarazione JNI, quindi digitare "jni" o il nome del metodo il file C/C++ per attivare.

  • Le funzioni di implementazione native non utilizzate sono evidenziate come avviso nella codice sorgente. Anche le dichiarazioni JNI con implementazioni mancanti sono evidenziato come errore.

  • Quando rinomini (rifai il refactoring) una funzione di implementazione nativa, tutte le dichiarazioni JNI corrispondenti vengono aggiornate. Rinomina una dichiarazione JNI in aggiorna la funzione di implementazione nativa.

  • Controllo della firma per le implementazioni JNI implicitamente associate.

Altri miglioramenti di JNI

L'editor di codice in Android Studio ora supporta uno sviluppo JNI più fluido flusso di lavoro, tra cui suggerimenti migliorati sui tipi, completamento automatico, ispezioni il refactoring del codice.

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

Non devi più creare un nuovo progetto se l'APK del tuo progetto viene aggiornato all'esterno dell'IDE. Android Studio rileva le modifiche nell'APK e ti offre la possibilità di importarle di nuovo.

Allega origini APK solo per Kotlin

Ora puoi collegare origini APK esterne solo per Kotlin quando crei un profilo ed eseguire il debug degli APK predefiniti. Per saperne di più, vedi Allega fonti Kotlin/Java.

Rilevamento di perdite in Memory Profiler

Quando analizzi un dump dell'heap in Memory Profiler, ora puoi filtrare la profilazione dati che Android Studio ritiene possano indicare perdite di memoria per Activity e Fragment istanze nella tua app.

I tipi di dati mostrati dal filtro includono:

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

Allega origini APK solo Kotlin

Ora puoi collegare origini APK esterne solo per Kotlin quando crei un profilo ed eseguire il debug degli APK predefiniti. Per saperne di più, vedi Allega fonti Kotlin/Java.

Rilevamento di perdite in Memory Profiler

Quando analizzi un dump dell'heap in Memory Profiler, ora puoi filtrare la profilazione dati che Android Studio ritiene possano indicare perdite di memoria per Activity e Fragment istanze nella tua app.

I tipi di dati mostrati dal filtro includono:

  • Istanze Activity che sono state distrutte, ma a cui viene ancora fatto riferimento.
  • Fragment di istanze senza un indirizzo valido FragmentManager ma vi fanno ancora riferimento.

In alcune situazioni, ad esempio le seguenti, il filtro potrebbe restituire false positivi:

  • Un Fragment è stato creato, ma non è ancora stato utilizzato.
  • Un Fragment viene memorizzato nella cache, ma non nell'ambito di una FragmentTransaction.

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

Profiler: rilevamento di fughe di memoria

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

Emulatori

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

Miglioramento del supporto della posizione

Android Emulator 29.2.7 e versioni successive forniscono un supporto aggiuntivo per l'emulazione delle coordinate GPS e delle informazioni sui percorsi. Quando apri gli emulatori Controlli estesi, nella scheda Posizione sono ora organizzate in due schede: Singoli punti e Percorsi.

Punti singoli

Nella scheda Punti singoli, puoi utilizzare la WebView di Google Maps per cercare punti di interesse, proprio come faresti quando usi Google Maps su un telefono o del browser. Quando cerchi o fai clic su un luogo nella mappa, puoi salvare il luogo selezionando Salva punto nella parte inferiore della mappa. Tutti i tuoi le località salvate sono elencate sul lato destro della sezione Controlli estesi finestra.

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

Scheda Single Points in Emulator Extended Controls..

Percorsi

Analogamente alla scheda Singoli punti, la scheda Percorsi offre una WebView di Maps che puoi utilizzare per creare un percorso tra due o più località. 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à dai risultati di ricerca.
  3. Seleziona 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 seguendo il percorso salvato, selezionalo da nell'elenco Percorsi salvati e fai clic su Riproduci percorso in basso a destra la finestra Controlli estesi. Per interrompere la simulazione, fai clic su Interrompi percorso.

Scheda Routes in Emulator Extended Controls..

Per simulare continuamente l'emulatore seguendo il percorso specificato, attiva l'opzione accanto a Ripeti la riproduzione. Per modificare la velocità di risposta dell'emulatore 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 fino a due display aggiuntivi come segue:

  1. Apri l'app Controlli estesi e vai alla scheda Display.

  2. Aggiungi un'altra visualizzazione facendo clic su Aggiungi display secondario.

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

  4. Seleziona una delle proporzioni preimpostate

  5. Seleziona Personalizzata e imposta Altezza, Larghezza e DPI per il display personalizzato.

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

  7. Fai clic su Applica modifiche per aggiungere i display specificati ai dispositivo virtuale.

Aggiungi più display alla scheda Display dei controlli estesi dell'emulatore.

Nuovi dispositivi virtuali e modelli di progetto per Android Automotive OS

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

Selezionare un modello di progetto Android Automotive..

Inoltre, ora puoi creare un dispositivo virtuale Android Per i dispositivi con sistema operativo Android Automotive, seleziona una delle seguenti opzioni nella scheda Automotive nella procedura guidata Configurazione dispositivo virtuale.

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

Selezionare un dispositivo virtuale Android Automotive..

Download di SDK ripristinabili

Quando scarichi componenti e strumenti SDK usando SDK Manager, Android Studio ora ti 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, come 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, puoi Ora metti in pausa o riprendi il download utilizzando i controlli nella barra di stato.

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

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

Win32 deprecato

La versione a 32 bit di Android Studio per Windows non riceverà più aggiornamenti dopo dicembre 2019 e non sarà più supportata dopo dicembre 2020. Puoi continuare a utilizzare Android Studio. Tuttavia, per ricevere ulteriori aggiornamenti, eseguire l'upgrade della workstation a una versione a 64 bit di Windows.

Per scoprire di più, leggi il blog sul ritiro di Windows a 32 bit

Nuova opzione per ottimizzare il tempo di sincronizzazione Gradle

Nelle versioni precedenti, Android Studio ha recuperato l'elenco di tutte le attività di 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 della sincronizzazione Gradle, vai a File > Impostazioni > Sperimentale e seleziona Non creare l'elenco di attività Gradle durante la sincronizzazione con Gradle.

Se attivi questa opzione, Android Studio salta la creazione dell'elenco di attività durante che consente un completamento più rapido della sincronizzazione Gradle e migliora l'UI la reattività. Tieni presente che quando l'IDE salta la creazione dell'elenco di attività, gli elenchi di attività nel riquadro Gradle sono vuoti e il completamento automatico dei nomi delle attività di Cloud Build non funzionano.

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. Poi, vicino alla parte superiore Nella finestra 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 miglioramenti di IntelliJ IDEA tramite la release 2019.2.

Per ulteriori informazioni sui miglioramenti di altre versioni di IntelliJ che sono incluso cumulativamente con la versione 2019.2, consulta le seguenti pagine:

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, vorremmo ringraziare le seguenti persone che hanno segnalato bug:

  • Albert Lo
  • Alexey Rott
  • Andrea Leganza
  • Benedikt Kolb
  • César Puerta
  • Curtis Kroetsch
  • Damian Wieczorek
  • Dan Lew
  • Davide Bruno
  • Deepanshu
  • Egor Andreevici
  • Eli Graber
  • Mario Rossi
  • Giulia Ferrara
  • Frantisek Nagy
  • Greg Moens
  • Hannes Achleitner
  • Hans Petter Eide
  • Letto a castello Henning
  • Hugo Visser
  • Igor escodro
  • Villa di Iñaki
  • Javentira Lienata
  • Joe Rogers
  • Kristoffer Danielsson
  • Liran Barsisa
  • Louis CAD
  • Lóránt Pintér
  • Łukasz Wasylkowski
  • Luke Fielke
  • Malvin Sutanto
  • Masatoshi Kubode
  • Matteo Inverni
  • Michael Bailey
  • Michał Górny
  • Mihai Neacsu
  • Michela Bianchi
  • Monte Creasor
  • Nelson Osacky
  • Nelson Osacky
  • Nick Firmani
  • Nicklas Ansman Giertz
  • Niclas Kron
  • Nicolás Lichtmaier
  • Niek Haarman
  • Niels van Hove
  • Niklas Baudy
  • Renato Goncalves
  • Grønmo
  • Ruslan Baratov
  • Sinan Kozak
  • Slawomir Czerwinski
  • Stefan Lupo
  • Stephen D'Amico
  • Tao Wang
  • Tomas Chladek
  • Tomáš Procházka
  • Tonia Robalik
  • Torbjørn Sørli
  • Andrea Rossi
  • Yenchi Lin
  • Cinturino 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 si è estesa a più release che si concentrano su migliorando 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 l'articolo Post del blog per sviluppatori Android o le sezioni di seguito.

    Vogliamo inoltre ringraziare tutti i nostri collaboratori della community che hanno ha contribuito in questa versione.

    3.5.3 (dicembre 2019)

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

    3.5.2 (novembre 2019)

    Questo aggiornamento minore include varie correzioni di bug e miglioramenti delle prestazioni. Per visualizzare un elenco di importanti correzioni di bug, leggi il post correlato nella Blog degli aggiornamenti delle release.

    3.5.1 (ottobre 2019)

    Questo aggiornamento minore include varie correzioni di bug e miglioramenti delle prestazioni. Per visualizzare un elenco delle correzioni di bug più importanti, leggi il post correlato nel blog degli aggiornamenti delle release.

    Project Marble: integrità del sistema

    Questa sezione descrive le modifiche in Android Studio 3.5 incentrate sulle migliorando l'integrità del sistema.

    Impostazioni di memoria consigliate

    Ora Android Studio ti invia una notifica se rileva che potresti migliorare le prestazioni aumentando la quantità massima di RAM che il sistema operativo deve allocare per i processi di Android Studio, come l'IDE di base, il daemon Gradle e il daemon Kotlin. Tu puoi accettare le impostazioni consigliate facendo clic sul link di azione nel Notifica oppure puoi regolare queste impostazioni manualmente selezionando File > Impostazioni (o Android Studio > Preferenze su macOS), quindi trova Sezione Impostazioni memoria in Aspetto e Comportamento > Impostazioni di sistema. Per saperne di più, consulta Dimensioni massime dell'heap.

    Una notifica relativa alle impostazioni di memoria consigliate.

    Una notifica sulle impostazioni di memoria consigliate.

    Report sull'utilizzo della memoria

    I problemi di memoria in Android Studio a volte sono difficili da riprodurre e report. Per risolvere questo problema, Android Studio ti consente di generare una memoria report sull'utilizzo facendo clic su Guida > Analizza l'utilizzo della memoria dalla barra dei menu. Quando lo fai, l'IDE sanifica localmente i dati per trovare informazioni personali chiedendo se vuoi inviarlo al team di Android Studio per aiutarti a identificare l'origine dei problemi di memoria. Per scoprire di più, vedi Eseguire un utilizzo della memoria report.

    Un report sull'utilizzo della memoria.

    Un report sull'utilizzo della memoria.

    Windows: ottimizzazione I/O dei file antivirus

    Android Studio ora controlla automaticamente se determinate directory del progetto sono escluse dalla scansione antivirus in tempo reale. Quando è possibile apportare modifiche per migliorare il rendimento della compilazione, Android Studio ti invia una notifica 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à di compilazione.

    Project Marble: smalto delle caratteristiche

    Questa sezione descrive le modifiche in Android Studio 3.5 incentrate sulle migliorare le funzionalità esistenti.

    Applica modifiche

    Applica modifiche ti consente di inviare modifiche al codice e alle risorse dell'app in esecuzione senza riavviare l'app e, in alcuni casi, senza riavviare l'attività corrente. L'applicazione delle modifiche implementa un approccio completamente nuovo per preservare il tuo lo stato dell'app. A differenza di Instant Run, che ha riscritto il bytecode dell'APK, apply Change ridefinisce le classi all'istante sfruttando la strumentazione di runtime Funzionalità supportata in Android 8.0 (livello API 26) o versioni successive.

    Per scoprire di più, consulta l'articolo Applicare le 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 il dispositivo in cui vuoi eseguire il deployment della tua app. Questo menu include anche una nuova opzione che ti consente di eseguire la tua app su più dispositivi contemporaneamente.

    Menu a discesa Dispositivo target.

    Menu a discesa del dispositivo di destinazione.

    Sincronizzazione Gradle e rilevamento della cache migliorati

    L'IDE ora rileva meglio quando Gradle cancella periodicamente la cache di compilazione per ridurre il consumo dell'hard disk. Nelle versioni precedenti, questo stato causava la segnalazione di dipendenze mancanti da parte dell'IDE e il fallimento della sincronizzazione di Gradle. L'IDE scarica le dipendenze secondo necessità per garantire che la sincronizzazione Gradle sia completata correttamente.

    Output degli errori di compilazione migliorato

    La Icona della finestra di Build di Build finestra ora fornisce una migliore segnalazione degli errori, come un link al file e alla riga dell'errore segnalato, per i seguenti processi di build:

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

    Upgrade dei progetti

    Esperienza di aggiornamento migliorata per fornire più informazioni e azioni per aiutarti a aggiornare l'IDE e il plug-in Android Gradle. Ad esempio, altri errori di sincronizzazione e compilazione includono azioni che ti aiutano a ridurre gli errori durante l'aggiornamento.

    È importante tenere presente che puoi aggiornare l'IDE indipendentemente da altri componenti, come il plug-in Android per Gradle. Di conseguenza, puoi aggiornare in 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 alla visualizzazione del layout, la gestione e l'interazione.

    Quando lavori con ConstraintLayout, viene applicato un nuovo vincolo nel riquadro Attributi, elenca le relazioni dei vincoli degli il componente UI selezionato. Puoi selezionare un vincolo dalla progettazione o dall'elenco dei vincoli per evidenziare il vincolo in entrambe le aree.

    Relazioni di vincolo per un elemento dell'interfaccia utente selezionato.

    Relazioni di vincolo per un elemento dell'interfaccia utente selezionato.

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

    Quando una visualizzazione è selezionata, puoi creare una limitazione facendo clic su una delle icone + nella sezione Widget di vincolo del riquadro Attributi, come mostrato nell'immagine seguente. Quando crei un nuovo vincolo, il layout Editor ora seleziona ed evidenzia il vincolo, fornendo immagini immediate feedback sugli elementi appena aggiunti.

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

    Utilizzo del widget dei vincoli per creare vincoli.

    Quando crei una limitazione, l'editor di layout ora mostra solo i punti di ancoraggio idonei a cui puoi applicare la limitazione. In precedenza, l'Editor layout mostrava tutti gli elementi punti di ancoraggio su tutte le viste, a prescindere dalla tua limitazione. Inoltre, un overlay blu ora evidenzia il target del vincolo. Questo evidenziato è particolarmente utile quando si tenta di limitare un componente che si sovrappone a un altro.

    Un'animazione che mostra come creare un vincolo per una sovrapposizione
            in Android Studio 3.4.

    Creazione di un vincolo per un componente sovrapposto in Android Studio 3.4.

    Un'animazione che mostra come creare un vincolo per una sovrapposizione
            in Android Studio 3.5.

    Creazione di un vincolo per un componente sovrapposto in Android Studio 3.5.

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

    • Ora il widget Vincolo e il menu a discesa Margine predefinito ti consentono di usare le risorse delle dimensioni per i margini.
    • Nella barra degli strumenti di Layout Editor, l'elenco dei dispositivi che determinano le dimensioni dell'area di progettazione è stato aggiornato. Inoltre, è stato migliorato il comportamento di aggancio durante il ridimensionamento e i maniglie di ridimensionamento sulla superficie di progettazione ora sono sempre visibili. Quando regoli le dimensioni, vengono visualizzati nuovi overlay che mostrano le dimensioni comuni dei dispositivi.
    • L'editor del layout ha una nuova combinazione di colori che migliora la coerenza e riduce il contrasto tra componenti, testo e vincoli.
    • La modalità progetto ora include il supporto del testo per alcuni componenti in cui il testo non era che viene mostrato.

    Per ulteriori informazioni su queste modifiche, vedi Android Studio Project Marble: Editor layout.

    Associazione dati

    Oltre ad aggiungere il supporto per l'elaborazione delle annotazioni incrementali per Data Binding, l'IDE migliora le funzionalità e le prestazioni dell'editor intelligente quando crei espressioni di associazione di dati in XML.

    Un'animazione che mostra il rendimento dell'editor di codice in Android Studio
            3.4.

    Prestazioni dell'editor di codice su Android Studio 3.4.

    Un'animazione che mostra il rendimento dell'editor di codice in Android Studio
            3.5.

    Miglioramento delle prestazioni di modifica del codice in Android Studio 3.5.

    Supporto migliorato per i progetti C/C++

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

    Miglioramenti al riquadro Crea varianti per la sincronizzazione di una singola variante

    Ora puoi specificare sia la variante di build attiva sia l'ABI attiva nel Riquadro Varianti build. Questa funzionalità semplifica la configurazione della build per modulo e migliorare le prestazioni della sincronizzazione Gradle.

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

    Riquadro Varianti build che mostra la selezione di una singola variante in base all'ABI.

    Il riquadro Varianti build con la selezione di una singola variante per ABI

    Versioni affiancate dell'NDK

    Ora puoi utilizzare più versioni dell'NDK una accanto all'altra. Questa funzionalità 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 ogni modulo del tuo progetto dovrebbe utilizzare. Puoi utilizzare la modalità questa caratteristica per creare build riproducibili e mitigare le incompatibilità tra le versioni NDK e il plug-in Android Gradle.

    Per saperne di più, consulta 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 che puoi trovare 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 attualmente supporta il deployment dell'app solo su un dispositivo hardware collegato. Per scoprire di più, leggi Eseguire app su un dispositivo hardware.

    Pubblicazione condizionale per i moduli delle funzionalità

    L'invio condizionale ti consente di impostare determinati requisiti di configurazione del dispositivo per scaricare automaticamente i moduli delle funzionalità durante l'installazione dell'app. Ad esempio, puoi configurare un modulo di funzionalità che include per la realtà aumentata (AR) da rendere disponibile al momento dell'installazione dell'app solo per dispositivi che supportano l'AR.

    Questo meccanismo di consegna attualmente supporta il controllo del download di un modulo al momento dell'installazione dell'app in base alle seguenti configurazioni del 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 scaricati al momento dell'installazione dell'app. Tuttavia, la tua app potrebbe richiedere in un secondo momento scaricare il modulo on demand tramite l'app Play Core Raccolta. Per saperne di più, leggi Configurare la consegna condizionale.

    IntelliJ IDEA 2019.1

    L'IDE Android Studio di base è stato aggiornato con i miglioramenti di IntelliJ IDEA tramite la release 2019.1, ad esempio la personalizzazione del tema.

    L'ultima versione di IntelliJ inclusa in Android Studio era 2018.3.4. Per ulteriori informazioni sui miglioramenti delle altre versioni di IntelliJ inclusi cumulativamente in questa versione di Android Studio, consulta seguenti aggiornamenti per la correzione di bug:

    Aggiornamenti del plug-in Android per Gradle 3.5.0

    Per informazioni sulle novità del plug-in Android Gradle 3.5.0, come le per l'elaborazione incrementale delle annotazioni e i test delle unità memorizzabili nella cache, consulta 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, vorremmo 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 minore include varie correzioni di bug e miglioramenti delle prestazioni. Per visualizzare un elenco delle correzioni di bug più importanti, leggi il post correlato nel blog degli aggiornamenti delle release.

    3.4.1 (maggio 2019)

    Questo aggiornamento minore include varie correzioni di bug e miglioramenti delle prestazioni. Per visualizzare un elenco di importanti correzioni di bug, leggi il post correlato nella Blog degli aggiornamenti delle release.

    3.4.0 Problemi noti

    • Il profiling è disattivato quando esegui il deployment dell'app su un dispositivo con Android Q Beta.

    • Quando utilizzi la libreria di Data Binding, LiveDataListener.onChanged() potrebbe non riuscire con un NPE. Una correzione per questo problema sarà inclusa in Android Studio 3.4.1 ed è già disponibile nell'ultima versione di anteprima di Android Studio 3.5. (vedi issue #122066788)

    IntelliJ IDEA 2018.3.4

    L'IDE principale di Android Studio è stato aggiornato con miglioramenti di IntelliJ IDEA tramite Release 2018.3.4.

    Aggiornamenti del plug-in Android per Gradle 3.4.0

    Per informazioni sulle novità del plug-in Android per Gradle 3.4.0, vedi la relativa note di rilascio.

    Finestra di dialogo della nuova struttura del progetto

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

    Puoi aprire il PSD selezionando File > Struttura del progetto dal menu . Puoi aprire il PSD anche premendo Ctrl+Shift+Alt+S su Windows e Linux o Command+; (punto e virgola) su macOS. Puoi trovare le descrizioni di alcune le sezioni nuove e aggiornate del PSD riportate di seguito.

    Variabili

    La sezione delle nuove variabili del PSD ti consente di creare e gestire come quelle per mantenere coerenti i numeri di versione per le dipendenze del progetto.

    • Visualizza e modifica rapidamente le variabili di build già esistenti nel progetto Script di build Gradle.
    • 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 modificarli tramite il file PSD. Inoltre, non puoi modificare i file di compilazione scritti in Kotlin utilizzando il PSD.

    Moduli

    Configura le proprietà da applicare a tutte le varianti di build in un modello esistente modulo o aggiungi nuovi moduli al tuo progetto dalla sezione Moduli. Per ad esempio, qui puoi configurare le proprietà defaultConfig o gestire configurazioni di firma.

    Dipendenze

    Ispezionare e visualizzare ciascuna dipendenza nel grafico delle dipendenze il tuo progetto, come risolto da Gradle durante la sincronizzazione dei progetti, seguendo queste passaggi:

    1. Nel riquadro a sinistra del PSD, seleziona Dipendenze.
    2. Nel riquadro Moduli, seleziona un modulo per il quale desideri esaminare e delle dipendenze risolte.
    3. Sul lato destro del PSD, apri il riquadro Dipendenze risolte, che è mostrato di seguito.

    Puoi anche cercare e aggiungere rapidamente dipendenze al tuo progetto Selezionando un modulo dalla sezione Dipendenze del PSD, facendo clic il pulsante (+) nella sezione Dipendenze dichiarate e seleziona il tipo del livello di dipendenza da aggiungere.

    A seconda del tipo di dipendenza selezionato, dovrebbe essere visualizzata una finestra di dialogo, simile a quello riportato di seguito, ti aiuta ad aggiungere la dipendenza al modulo.

    Crea varianti

    In questa sezione del file PSD, crea e configura le varianti di compilazione e i gusti dei prodotti per ogni modulo del progetto. Puoi aggiungere segnaposto per il file manifest, File ProGuard, assegnazione di chiavi di firma e altro ancora.

    Suggerimenti

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

    Nuovo Resource Manager

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

    • Visualizza le risorse: puoi visualizzare in anteprima disegnabili, colori e layout per a trovare rapidamente le risorse di cui hai bisogno.
    • Importazione collettiva: puoi importare più asset utilizzabili contemporaneamente in base a trascinandole nella finestra dello strumento Resource Manager oppure utilizzando la procedura guidata Importa drawable. Per accedere alla procedura guidata, seleziona il pulsante (+) nell'angolo in alto a sinistra della finestra dello strumento e poi seleziona Importa elementi grafici dal menu a discesa.
    • Converti gli SVG in oggetti VectorDrawable: puoi utilizzare la procedura guidata Importa elementi selezionabili per convertire le immagini SVG in oggetti VectorDrawable.
    • Trascinare gli asset: dalla finestra dello strumento Resource Manager, puoi trascina gli elementi disegnabili sia nella visualizzazione struttura che in quella XML del layout Editor.
    • Visualizza versioni alternative: ora puoi visualizzare versioni alternative del tuo facendo doppio clic su una risorsa nella finestra Strumento. Questa visualizzazione mostra le diverse versioni che hai creato e i qualificatori inclusi.
    • Visualizzazioni in riquadri ed elenchi: puoi modificare la visualizzazione nella finestra degli strumenti impostandola su le risorse in diverse disposizioni.

    Per scoprire di più, leggi la guida su come gestire le risorse dell'app.

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

    Quando fornisci file di simboli di debug per le librerie condivise di .so all'interno l'APK, Android Studio verifica che ID build della corrispondenza dei file di simboli forniti l'ID build delle librerie .so all'interno dell'APK.

    Se crei le librerie native nell'APK con un ID build, Android Studio verifica se l'ID build nei file di simboli corrisponde all'ID build nel tuo librerie native e rifiuta i file di simboli in caso di mancata corrispondenza. Se non hai creato con un ID build, quindi fornire file di simboli errati potrebbe potrebbero causare problemi di debug.

    R8 abilitato per impostazione predefinita

    R8 integra le funzioni di desugaring, restringimento, offuscamento l'ottimizzazione e il dexing in un unico passaggio, ottenendo notevoli miglioramenti delle prestazioni delle build. R8 è stato introdotto nel plug-in Android per Gradle 3.3.0 e ora è attivato per impostazione predefinita sia per i progetti di app che per le librerie Android che utilizzano il plug-in 3.4.0 e versioni successive.

    L'immagine seguente fornisce una panoramica generale della procedura di compilazione prima dell'introduzione di R8.

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

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

    Con R8, è possibile ridurre, restringere, offuscare, ottimizzare e dexing
            vengono eseguite tutte in un unico passaggio di compilazione.

    Ricorda che R8 è progettato per funzionare con le regole ProGuard esistenti, probabilmente non dovrai fare nulla per trarre vantaggio da R8. Tuttavia, perché si tratta di una tecnologia diversa da ProGuard, progettata appositamente per i progetti Android, la riduzione e l'ottimizzazione possono comportare la rimozione del codice che ProGuard potrebbe non avere. Quindi, in questa improbabile situazione, potresti dover aggiungere altre regole per mantenere quel codice nell'output della build.

    Se riscontri problemi con l'utilizzo di R8, consulta le domande frequenti sulla compatibilità di R8 per verificare se esiste una soluzione al problema. Se una soluzione non è documentata, segnala un bug. Puoi disabilitare R8 aggiungendo una delle seguenti righe all'interfaccia File gradle.properties:

        # 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 Da useProguard a false nella tua app build.gradle del modulo, il plug-in Android Gradle utilizza R8 per il codice dell'app per quel tipo di build, a prescindere dalla disattivazione o meno di R8 gradle.properties del progetto.

    Tutti i tipi di argomenti supportati dal componente di navigazione sono ora supportati in all'editor di navigazione. Per ulteriori informazioni sui tipi supportati, consulta Trasmettere i dati tra le destinazioni.

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

    Il riquadro Attributi nell'editor di layout è stato semplificato in una singola pagina con sezioni che puoi espandere per visualizzare gli attributi che puoi configurare. La Il riquadro Attributi include anche i seguenti aggiornamenti:

    • Una nuova sezione Attributi dichiarati elenca gli attributi del file di layout specifica e consente di aggiungerne di nuovi.
    • Il riquadro Attributi ora presenta anche degli indicatori accanto a ogni attributo che siano solidi quando il valore dell'attributo è un riferimento di risorsa e vuoto negli altri casi.
    • Gli attributi con errori o avvisi sono ora evidenziati. Evidenziazioni rosse indicare errori (ad esempio, quando utilizzi valori di layout non validi) e le evidenziazioni arancioni indicano degli avvisi (ad esempio, quando usi ).

    Nuova azione intenzionale per importare rapidamente le dipendenze

    Se inizi a utilizzare determinate classi Jetpack e Firebase nel tuo codice, una nuova l'azione intenzionale suggerisce di aggiungere la dipendenza della libreria Gradle richiesta al tuo progetto, se non l'hai già fatto. Ad esempio, se fai riferimento WorkManager corso senza prima importare il corso richiesto Dipendenza android.arch.work:work-runtime, un'azione per intenzione consente di farlo con un solo clic, come mostrato di seguito.

    In particolare, perché Jetpack ha riproposto la libreria di supporto in di pacchetti più semplici da gestire e aggiornare, questa azione intenzionale ti aiuta aggiungere rapidamente solo le dipendenze necessarie per i componenti Jetpack per l'utilizzo.

    3.3 (gennaio 2019)

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

    3.3.2 (marzo 2019)

    Questo aggiornamento minore include varie correzioni di bug e miglioramenti delle prestazioni. Per visualizzare un elenco di importanti correzioni di bug, leggi il post correlato nella Blog degli aggiornamenti delle release.

    3.3.1 (febbraio 2019)

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

    IntelliJ IDEA 2018.2.2

    L'IDE principale di Android Studio è stato aggiornato con miglioramenti di IntelliJ IDEA tramite la release 2018.2.2.

    Aggiornamenti del plug-in Android per Gradle

    Per informazioni sulle novità del plug-in Android Gradle, consulta la relativa note di rilascio.

    L'editor di navigazione ti consente di visualizzare e integrare rapidamente la navigazione nel tuo utilizzando l'app Componente Architettura di navigazione.

    Per ulteriori informazioni, vedi Implementa la navigazione con il componente Architettura di navigazione.

    Elimina le directory di Android Studio inutilizzate

    Quando esegui una versione principale di Android Studio per la prima volta, cerca directory contenenti cache, impostazioni, indici e log per le versioni Android Studio per il quale non è possibile trovare l'installazione corrispondente. La La finestra di dialogo Elimina le directory di Android Studio non utilizzate quindi mostra le posizioni, dimensioni e l'ora dell'ultima modifica di queste directory inutilizzate, per eliminarli.

    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 a Lint

    Quando viene richiamato da Gradle, Lint è molto più veloce: i progetti più grandi possono la velocità di lint è quattro volte superiore.

    Creazione guidata nuovo progetto

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

    Per ulteriori informazioni, consulta Creare un progetto.

    Aggiornamenti di Profiler

    Android Studio 3.3 include aggiornamenti a diversi singoli profiler.

    Prestazioni migliorate

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

    Opzioni di monitoraggio dell'allocazione della memoria del profiler

    Per migliorare le prestazioni dell'app durante la profilazione, il Memory Profiler ora campiona la memoria periodicamente, per impostazione predefinita. Se vuoi, puoi modificare questo comportamento Utilizzando il menu a discesa Monitoraggio dell'allocazione durante i test su dispositivi in esecuzione Android 8.0 (livello API 26) o versioni successive.

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

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

    • Campionata: acquisisce un campione periodico delle allocazioni della memoria degli oggetti. Si tratta del comportamento predefinito e ha un impatto minore sulle prestazioni dell'app durante il profiling. Potresti riscontrare problemi di prestazioni per le app che assegnano un numero elevato di in un breve periodo di tempo.

    • Off: disattiva l'allocazione della memoria. Se non è già selezionata, questa modalità viene attivata automaticamente durante la registrazione della CPU e poi 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 interessa sia gli oggetti Java che i riferimenti JNI.

    Controllare i dati di rendering dei frame

    In CPU Profiler, ora puoi esaminare in che modo tempo impiegato dall'app Java per visualizzare ogni frame nel thread dell'interfaccia utente principale e RenderThread. Questi dati possono essere utili durante l'analisi dei colli di bottiglia che causare jank dell'interfaccia utente e basse frequenze dei fotogrammi. Ad esempio, ogni frame che richiede più di i 16 ms necessari per mantenere una frequenza fotogrammi uniforme sono visualizzati in rosso.

    Per visualizzare i dati di rendering dei frame, registra una traccia utilizzando una configurazione che ti consenta di monitorare le chiamate di sistema. Dopo la registrazione la traccia, cerca informazioni su ciascun frame lungo la sequenza temporale per la 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 cronologia degli eventi

    La sequenza temporale degli eventi ora mostra quando i frammenti vengono collegati e scollegati. Inoltre, quando passi il mouse sopra un frammento, una descrizione comando lo mostra .

    Visualizzare il testo formattato per i payload di connessione nel profiler di rete

    In precedenza, il profiler di rete visualizzava solo il testo non elaborato della connessione e carichi di lavoro superflui. 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 testo analizzato per visualizzare il testo formattato e sul link Visualizza codice sorgente per visualizzare il testo non elaborato.

    Per ulteriori informazioni, vedi Esaminare il traffico di rete con Network Profiler.

    Download automatico dei componenti SDK

    Se il progetto richiede un componente SDK dalle piattaforme SDK, NDK o CMake, Gradle ora tenta di scaricare automaticamente i pacchetti richiesti Avere accettato in precedenza eventuali contratti di licenza correlati utilizzando SDK Manager.

    Per ulteriori informazioni, consulta Scaricare automaticamente i pacchetti mancanti con Gradle.

    Supporto per Clang-Tidy

    Android Studio ora include il supporto per l'analisi statica del codice utilizzando Clang-Tidy per i progetti che includono codice nativo. Per attivare il supporto di Clang-Tidy: Aggiorna il tuo NDK alla versione r18 o successiva.

    Puoi quindi attivare o riattivare le ispezioni aprendo la finestra di dialogo Impostazioni o Preferenze e selezionando Editor > Ispezioni > C/C++ > Generale > Clang-Tidy. Se selezioni questo controllo nella finestra di dialogo Impostazioni o Preferenze, puoi anche visualizzare dei controlli Clang-Tidy attivati e disattivati nella Option (Opzione) del riquadro di destra. Per attivare controlli aggiuntivi, aggiungili all'elenco e fai clic su Applica.

    Per configurare Clang-Tidy con le opzioni aggiuntive: fai clic su Configura opzioni di controlli Clang-Tidy e aggiungile nella finestra di dialogo si apre.

    Rimozione delle opzioni per la personalizzazione di C++

    Le seguenti opzioni sono state rimosse dalla pagina Personalizza l'assistenza C++ Finestra di dialogo:

    • Assistenza per le eccezioni (-fexceptions)
    • Supporto per le informazioni sul tipo di runtime (-ftti)

    I rispettivi comportamenti sono abilitati per tutti i progetti creati mediante Android Studio.

    CMake versione 3.10.2

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

    Per specificare una versione CMake da utilizzare per Gradle, aggiungi quanto segue al prompt File build.gradle:

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

    Per ulteriori 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 modulo principale, ora puoi aggiungere un "+" per abbinare il comportamento del comando cmake_minimum_required() di CMake.

    Attenzione. Utilizzo di "+" la sintassi con altre creazione delle dipendenze è sconsigliato, poiché le dipendenze dinamiche possono causare aggiornamenti di versione ha difficoltà a risolvere le differenze di versione.

    Gli Android App Bundle ora supportano le app istantanee

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

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

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

    Puoi quindi Creare una funzionalità ad attivazione istantanea modulo selezionando File > Nuovo > Nuovo modulo dalla barra dei menu e poi selezionando Modulo di funzionalità dinamiche istantanee dalla sezione Crea nuovo modulo . Ricorda che la creazione di questo modulo abilita inoltre istantaneamente in maggior dettaglio più avanti in questo modulo.

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

    Sincronizzazione del progetto con una variante

    Sincronizzare il progetto con la configurazione della build è un passaggio importante per far capire ad Android Studio com'è strutturati. Tuttavia, questo processo può richiedere molto tempo per i progetti di grandi dimensioni. Se utilizza più varianti di build, ora puoi ottimizzare le sincronizzazioni e limitarli solo alla variante attualmente selezionata.

    Per attivare questa ottimizzazione, devi utilizzare Android Studio 3.3 o versioni successive con il plug-in Android Gradle 3.3.0 o versioni successive. Se soddisfi questi requisiti, IDE ti chiede di attivare questa ottimizzazione quando sincronizzi il progetto. La l'ottimizzazione è abilitata per impostazione predefinita anche nei 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: questa ottimizzazione al momento supporta progetti che includono solo il componente linguaggio di programmazione. Se, ad esempio, l'IDE rileva il codice Kotlin o C++ in il tuo progetto, questa ottimizzazione non viene abilitata automaticamente e dovresti non manualmente.

    Per ulteriori informazioni, vedi Abilita la sincronizzazione del progetto con variante singola.

    Fornisci 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 nella parte inferiore dell'IDE finestra:

    Fai clic sull'icona che rappresenta al meglio la tua esperienza attuale con l'IDE. In questo modo, l'IDE invia statistiche sull'utilizzo che consentono al team di Android Studio di comprendere meglio il tuo feedback. In alcuni casi, ad esempio quando indichi un'esperienza negativa con l'IDE, avrai la possibilità di fornire un feedback aggiuntivo.

    Se non l'hai già fatto, puoi attivare la condivisione delle statistiche sull'utilizzo apri la finestra di dialogo Impostazioni Preferenze su un Mac), vai alla pagina Aspetto e Comportamento > Impostazioni di sistema > Condivisione dei dati e verifica Invia le 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 ad 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 argomento sono stati rinominati da Da type a argType.
    • Sono stati risolti i bug riportati di seguito:
      • Quando si utilizza la libreria di Data Binding, i nomi delle variabili con trattini bassi causavano errori di compilazione.
      • CMake stava facendo sì che IntelliSense e altre funzionalità di CLion non riuscito.
      • L'aggiunta di un SliceProvider causava errori di compilazione in progetti che non utilizzavano le librerie androidx.*.
      • Alcuni test delle unità Kotlin non erano in corso.
      • Un problema con l'associazione di dati causava un PsiInvalidElementAccessException.
      • Gli elementi <merge> a volte causavano un arresto anomalo di Editor di layout.

    Problemi noti di 3.2.0

    Nota: questi problemi sono stati risolti in Android Studio 3.2.1

    • Consigliamo vivamente di non utilizzare Kotlin versione 1.2.70.

      La versione 1.2.61 di Kotlin corregge un bug che causava il blocco di Android Studio. ma Kotlin 1.2.70 non include questa correzione.

      Tuttavia, le versioni Kotlin 1.2.71 e successive includono questa correzione.

    • Sebbene in genere non sia necessario specificare la versione di Build Tools, quando utilizzi il plug-in Android 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 sulle ultime modifiche apportate ad Android Studio.

    L'assistente si apre quando avvii Android Studio dopo una nuova installazione o un aggiornamento se rileva che ci sono nuove informazioni da mostrare. Puoi anche aprire all'assistente scegliendo 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 ti consentono di creare app di alta qualità e verificabili in modo più rapido e semplice. Android Studio include i seguenti aggiornamenti per supportare Jetpack. Per ulteriori informazioni, consulta Documentazione di Jetpack.

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

    In Android Studio 3.2, l'editor di navigazione è una funzionalità sperimentale. A Attiva 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 ad Attiva editor di navigazione e riavvia Android Studio.

    Per saperne di più, leggi il Documentazione dell'Editor di navigazione.

    Migrazione ad AndroidX

    Come parte di Jetpack, stiamo eseguendo la migrazione delle librerie di assistenza Android a una nuova Raccolta di estensioni Android utilizzando lo spazio dei nomi androidx. Per maggiori informazioni informazioni, consulta Panoramica di AndroidX.

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

    Per eseguire la migrazione di un progetto esistente ad AndroidX, scegli Ristruttura > Esegui migrazione ad AndroidX. Se disponi di dipendenze Maven di cui non è stata eseguita la migrazione al dello spazio dei nomi AndroidX, anche il sistema di build di Android Studio converte automaticamente e le dipendenze del progetto.

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

    • android.useAndroidX: se impostato su true, questo flag indica che vuoi iniziare a utilizzare AndroidX d'ora in poi. Se il flag è assente, Android Studio si comporta come se il flag fosse impostato su false.
    • android.enableJetifier: se impostato su true, questo indicatore indica che vuoi l'assistenza dello strumento (dal plug-in Android Gradle) per convertire automaticamente le librerie di terze parti esistenti come se fossero state scritte per AndroidX. Se il flag non è presente, Android Studio si comporta come se fosse impostato su false.

    Entrambi i flag sono impostati su true quando utilizzi il comando Comando Esegui la migrazione ad AndroidX.

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

    Android App Bundle

    Android App Bundle è un nuovo formato di caricamento che include tutti i dati della tua app compilato e le risorse, ma rimanda la generazione dell'APK e la firma al Play Store.

    Il nuovo modello di gestione delle app di Google Play utilizza quindi app bundle per generare e pubblicare APK ottimizzati per il dispositivo di ciascun utente configurazione, in modo che ogni utente scarichi solo il codice e le risorse di cui ha bisogno la tua app. Non devi più creare, firmare e gestire più APK, inoltre di download di contenuti più piccoli e ottimizzati.

    Inoltre, puoi aggiungere moduli delle funzionalità al progetto dell'app e includerli nell'app bundle. Gli utenti potranno quindi scaricare e installare le funzionalità dell'app on demand.

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

    Per ulteriori informazioni, comprese le istruzioni per creare e analizzare un Android App Bundle; consulta Android App Bundle.

    Dati di esempio in Layout Editor

    Molti layout Android hanno dati di runtime che possono complicare la visualizzazione l'aspetto e il design di un layout durante la fase di progettazione dello sviluppo dell'app. Tu ora puoi facilmente vedere un'anteprima della visualizzazione nell'Editor layout, compilata dati di esempio. Quando aggiungi una visualizzazione, viene visualizzato un pulsante sotto la vista nella finestra Design. Fai clic su questo pulsante per impostare design-time della visualizzazione. Puoi scegliere tra diversi modelli di dati di esempio e specificare il numero di elementi di esempio con cui compilare la vista.

    Per provare a utilizzare i dati di esempio, aggiungi uno RecyclerView a un nuovo layout, fai clic sul pulsante degli attributi di progettazione in fase di progettazione sotto la visualizzazione e scegli una selezione dal carosello di dati di esempio modelli di machine learning.

    Sezioni

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

    Android Studio 3.2 ha un modello integrato che ti aiuta a estendere la tua app con le nuove API Provider di slice, nonché nuovi controlli lint per assicurarti di seguire le best practice durante la creazione delle sezioni.

    Per iniziare, fai clic con il tasto destro del mouse su una cartella di progetto Nuovo > Altro > Slice Provider.

    Per scoprire di più, incluso come testare le interazioni con le sezioni, consulta la Guida introduttiva alle sezioni.

    Kotlin 1.2.61

    Android Studio 3.2 raggruppa Kotlin 1.2.61 e il nuovo SDK Android 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 miglioramenti di IntelliJ IDEA tramite Release 2018.1.6.

    Profiler Android

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

    Sessioni

    Ora puoi salvare i dati di Profiler come sessioni da rivedere possono essere ispezionati in un secondo momento. Il profiler conserva i dati della sessione fino a quando non riavvii l'IDE.

    Quando registrare una traccia di metodo oppure acquisire un dump dell'heap, l'IDE aggiunge questi dati (insieme alla rete dell'app) attività) come voce separata alla sessione corrente e puoi facilmente passare da una registrazione all'altra per confrontare i dati.

    Traccia di sistema

    In CPU Profiler, seleziona il nuova configurazione System Trace per ispezionare la CPU di sistema del dispositivo dell'attività dei thread. Questa configurazione della traccia si basa systrace ed è utile per analizzare i problemi a livello di sistema, come i jank dell'UI.

    Durante l'utilizzo di questa configurazione di traccia, puoi contrassegnare visivamente il codice importante nella sequenza temporale del profiler instrumentando il codice C/C++ con l'API di tracciamento nativa o il tuo codice Java con Trace.

    Ispeziona i riferimenti JNI nel Profiler di memoria

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

    Mentre l'app è in esecuzione, seleziona una parte della sequenza temporale da esaminare e JNI heap dal menu a discesa sopra l'elenco delle classi, 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 (Pila di chiamate di allocazione) per vedere dove vengono allocati e rilasciati i riferimenti JNI nel codice.

    Importa, esporta e ispeziona i file di dump dell'heap della memoria

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

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

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

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

    Ora puoi registrare l'attività della CPU durante l'avvio dell'app, come segue:

    1. Seleziona Esegui > Modifica configurazioni dal menu principale.
    2. Nella scheda Profilazione della configurazione di esecuzione desiderata, seleziona la casella accanto a Avvia 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 entro il giorno selezionando Esegui > Profilo.
    Esporta tracce CPU

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

    Per esportare una traccia dopo aver registrato l'attività della CPU, segui questi passaggi:

    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.
    Importazione e ispezione dei file di traccia della CPU

    Ora puoi importare e ispezionare .trace file creati con API Debug oppure CPU Profiler. (Attualmente, impossibile importare le registrazioni di System Trace.

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

    • L'attività della CPU non è rappresentata nella sequenza temporale della CPU.
    • La sequenza temporale dell'attività dei thread indica solo dove sono disponibili i dati di traccia per su ogni thread e non sugli stati effettivi del thread (ad esempio in esecuzione, in attesa dormendo).
    Registrazione dell'attività della CPU utilizzando l'API Debug

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

    Profiler di energia

    Energy Profiler mostra una visualizzazione consumo energetico stimato della tua app, nonché eventi di sistema che influiscono sull'energia dell'utilizzo, ad esempio wakelock, sveglie e job.

    Il Profiler di energia viene visualizzato come una nuova riga nella parte inferiore del Profiler finestra quando esegui l'app su un dispositivo connesso o su un emulatore Android in esecuzione Android 8.0 (API 26) o versioni successive.

    Fai clic sulla riga Energy (Energia) per massimizzare la vista Energy Profiler. Posiziona il mouse puntatore sopra una barra della sequenza temporale per visualizzare un'analisi dettagliata del consumo di energia per CPU, risorse di rete e di localizzazione (GPS), nonché gli eventi di sistema pertinenti.

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

    Per vedere lo stack di chiamate e altri dettagli relativi a un evento di sistema, ad esempio un wakelock, e selezionarlo nel riquadro degli eventi. Per andare al codice responsabile di un evento di sistema, fai doppio clic sulla voce nello stack di chiamate.

    Controllo pelucchi

    Android Studio 3.2 include molte funzioni nuove e migliorate per controllo tramite lint.

    I nuovi controlli lint consentono di trovare e identificare problemi comuni con il codice, ad esempio da avvisi relativi a potenziali problemi di usabilità a errori ad alta priorità relativi potenziali vulnerabilità di sicurezza.

    Controlli di Lint per l'interoperabilità Java/Kotlin

    Per assicurarti che il tuo codice Java interagisca bene con il codice Kotlin, utilizza i controlli lint applicano le best practice descritte in Guida per l'interoperabilità di Kotlin. Esempi di questi controlli includono la ricerca della presenza di nullità annotazioni, l'uso di parole chiave specifiche di Kotlin e il posizionamento 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 al Editor > Ispezioni > Android > Pelucchi > Interoperabilità > Interoperabilità di Kotlin e seleziona le regole che vuoi attivare.

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

            android {
                lintOptions {
                    check 'Interoperability'
                }
            }
            
          
    Controlli lint per sezioni

    I nuovi controlli lint per le sezioni ti aiutano a garantire che stai creando le sezioni in modo corretto. Ad esempio, i controlli lint ti avvisano se non hai assegnato un su una sezione.

    Nuovo target Gradle

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

    Aggiornamenti dei metadati

    Vari metadati, come il controllo di trasmissione del servizio, sono stati aggiornati in modo che i controlli lint funzionino con Android 9 (livello API 28).

    Avviso se è in corso l'esecuzione del lint su una nuova variante

    Ora Lint registra la variante e la versione con cui viene registrata una base di riferimento e ti avvisa se la esegui 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. Per Ad esempio, i controlli del ciclo delle risorse ora si applicano a tipi di risorse aggiuntivi il rilevatore della traduzione può trovare al volo le traduzioni mancanti, editor.

    ID problema più rilevabili

    Gli ID problema vengono ora visualizzati in più posizioni, tra cui nella sezione Ispezione Risultati. In questo modo, sarà più facile trovare le informazioni necessarie per attivare o disattivare controlli specifici tramite lintOptions in build.gradle.

    Per ulteriori informazioni, vedi Configura le opzioni lint con Gradle.

    Associazione dati V2

    L'associazione dei dati V2 è ora abilitata per impostazione predefinita ed è compatibile con la versione 1. Ciò significa Se disponi di dipendenze di libreria compilate con la versione V1, puoi utilizzare con progetti usando Data Binding V2. I progetti che utilizzano la versione 1 non può consumare dipendenze compilate con V2.

    D8 - Desugaring

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

    Nuovo compressore di codice

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

          android.enableR8 = true
        

    ABI predefinite modificate per APK multipli

    Quando crei più APK ciascuno con un ABI diverso come target, per impostazione predefinita il plug-in non genera più APK per i seguenti ABI: mips, mips64 e armeabi.

    Se vuoi creare APK che abbiano come target queste ABI, devi usare NDK r16b o inferiore e specifica 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 aggiungi codice C e C++ al tuo progetto, Android Studio ora include funzionalità di editing migliorate per aiutarti a modificare Script di build CMake come segue:

    • 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 Tasto Ctrl (Comando 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 stai rinominando o eliminando file a cui fai riferimento nella build CMake script.

    Quando utilizzavi la finestra Progetto nelle versioni precedenti di Android Studio, potevai navigare e ispezionare solo i file di intestazione appartenenti alle librerie che compilavi da un progetto locale. Con questa release, ora puoi anche visualizzare e ispezionare file di intestazione inclusi con dipendenze di libreria C/C++ esterne che importi nel progetto dell'app.

    Se già includi 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 si trovano all'interno della gli ambiti del progetto dell'app sono organizzati sotto il nodo include per ciascuno le dipendenze della libreria C/C++ locali, come mostrato di seguito.

    Multidex nativo abilitato per impostazione predefinita

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

    AAPT2 spostato nel Repository Maven di Google

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

    Per utilizzare AAPT2, assicurati che sia presente una dipendenza google() nel tuo 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 risolve molti problemi, tra cui la gestione migliorata dei caratteri non ASCII su Windows.

    Rimozione della configurazione su richiesta

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

    Android Studio non trasmette più il --configure-on-demand a Gradle.

    Assistente connessione ADB

    Il nuovo Assistente per la connessione ADB fornisce istruzioni passo passo per aiutarti a configurare e utilizzare un dispositivo tramite Connessione Android Debug Bridge (ADB).

    Per avviare l'assistente, seleziona Strumenti > Assistente alla connessione.

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

    Miglioramenti all'emulatore

    Ora puoi salvare e caricare istantanee di una durata di visualizzazione media (dispositivo virtuale Android) all'indirizzo in qualsiasi momento nell'emulatore Android, in modo da restituire un dispositivo emulato in uno stato noto per i test. Quando modifichi una durata di visualizzazione media utilizzando la durata di visualizzazione media Manager, puoi specificare quale snapshot della durata di visualizzazione media caricare all'avvio.

    I controlli per il salvataggio, il caricamento e la gestione degli snapshot della durata di visualizzazione media sono ora disponibili Scheda Snapshot nella finestra Controlli estesi dell'emulatore.

    Per maggiori dettagli, vedi Snapshot.

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

    3.1 (marzo 2018)

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

    3.1.4 (agosto 2018)

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

    • La versione di Kotlin inclusa è ora la 1.2.50.
    • Vengono creati nuovi progetti con kotlin-stdlib-jdk* artifacts, invece che con kotlin-stdlib-jre* artefatti, che sono ritirato.
    • L'analisi R8 delle regole ProGuard è stata migliorata.
    • Sono stati risolti i bug riportati di seguito:
      • Tentativo di eseguire la classe Kotlin Main non riuscito. Si è verificato un errore: "Error: Could not find or load main class..."
      • R8 è entrato in un ciclo infinito durante l'esecuzione di determinate ottimizzazioni.
      • Utilizzo del comando Riesegui test non riusciti nella finestra Esegui a volte restituisce erroneamente il messaggio "Nessun test trovato".
      • D8 non ha gestito correttamente invoke-virtual istanze, che causa un arresto anomalo con un VerifyError: invoke-super/virtual can't be used on private method
      • Il compilatore di Data Binding dipendeva da una versione precedente di com.android.tools:annotations. Il compilatore ora utilizza le annotazioni di strumenti dal progetto di base, se disponibili.
      • Android Studio ha avuto un arresto anomalo durante le transizioni dei frammenti quando si utilizzano profiler.
      • Il debugger ha avuto un arresto anomalo durante il debug di un layout con una casella di testo.
      • D8 non è riuscito a leggere alcuni file ZIP con caratteri speciali.

    3.1.3 (giugno 2018)

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

    • A causa di fughe di memoria, Android Studio era lento e non risponde dopo che hai utilizzato l'Editor del layout. Questo aggiornamento include correzioni per la maggior parte di questi problemi. Abbiamo intenzione di rilasciare a breve un altro aggiornamento per risolvere eventuali perdite di memoria aggiuntive.
    • Alcune applicazioni sviluppate con D8 si sono arrestate in modo anomalo su alcuni tablet Verizon Ellipsis.
    • L'installazione delle applicazioni create con D8 non è riuscita con un INSTALL_FAILED_DEXOPT errore sui dispositivi con Android 5.0 o 5.1 (livello API 21 o 22).
    • Alcune applicazioni che utilizzavano la libreria OkHttp e sono state create con D8 Si è verificato un arresto anomalo su dispositivi con Android 4.4 (livello API 19).
    • A volte Android Studio non si avviava, con un ProcessCanceledException durante l'inizializzazione del corso per com.intellij.psi.jsp.JspElementType.

    3.1.2 (aprile 2018)

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

    • In alcuni casi, Android Studio si bloccava indefinitamente durante l'uscita.
    • Build configurate con set di origini non riuscita con il seguente messaggio quando è stata abilitata l'esecuzione istantanea:

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

    • Quando la funzionalità di esecuzione immediata era attiva, le build di nuovi progetti Kotlin non andavano a buon fine quando venivano attivate dal comando Esegui.
    • Durante la modifica del file build.gradle, a volte si verificava un ritardo notevole tra la digitazione di un carattere e la sua visualizzazione sullo schermo.
    • Si sono verificati errori di build durante il dexing in alcuni progetti con numeri di moduli o dipendenze esterne, con il seguente errore messaggio:

      "RejectedExecutionException: Thread limit exceeded replacing blocked worker"

    • Il calcolo dell'elenco DEX principale D8 non prendeva in considerazione alcuni riflettenti.

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

    3.1.1 (aprile 2018)

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

    • In alcuni casi, quando un progetto creato in Android Studio 3.0 è stato aperto per la prima volta in Android Studio 3.1, l'attività di compilazione consapevole di Gradle è stata rimossa dall'area Prima del lancio in Configurazioni di esecuzione/debug. Il risultato è che i progetti non venivano creati È stato fatto clic sul pulsante Esegui o Debug, che a sua volta ha causato errori come implementazione di APK errati e arresti anomali durante l'utilizzo Corsa istantanea.

      Per risolvere questo problema, Android Studio 3.1.1 aggiunge il comando alla configurazione dell'esecuzione per i progetti privi di questa voce. Questa modifica viene eseguita dopo la prima sincronizzazione Gradle, quando il progetto viene caricato.

    • Il debugger si arrestava in modo anomalo durante il debug di un layout con una casella di testo se era avanzata la profilazione è stata attivata.
    • Android Studio si è bloccato dopo aver fatto clic su Build Variants (Varianti di build).
    • I file AAR (archivio Android) sono stati estratti due volte, una volta durante il Gradle durante il processo di sincronizzazione e una volta durante il processo di creazione di Gradle.
    • Mancano elementi in alcuni drawable vettoriali importati da file SVG.
    • L'avviso relativo al ritiro di compile la configurazione delle dipendenze è stata aggiornata con indicazioni migliori in merito le configurazioni implementation e api. Per dettagli della migrazione dall'utilizzo di compile per la configurazione, consulta documentazione per le nuove configurazioni delle dipendenze.

    Programmazione/IDE

    IntelliJ 2017.3.3

    L'IDE Android Studio di base è stato aggiornato con i miglioramenti di IntelliJ IDEA tramite la release 2017.3.3. I miglioramenti includono un migliore flusso di controllo per l'analisi di raccolte e stringhe, correzioni e molto altro ancora.

    Per maggiori dettagli, consulta le note di rilascio di JetBrains per le versioni di IntelliJ IDEA 2017.2 e 2017.3, come nonché le note di rilascio di JetBrains aggiornamenti delle correzioni di bug.

    Miglioramenti dell'editing SQL con Stanza

    Quando utilizzi la libreria di database Room, puoi usufruire di diversi miglioramenti all'editing SQL:

    • il completamento del codice Query comprende tabelle (entità), colonne, parametri di query, alias, join, sottoquery e clausole WITH.
    • Ora l'evidenziazione della sintassi SQL funziona.
    • Puoi fare clic con il tasto destro del mouse sul nome di una tabella in SQL e rinominarla, il che comporta anche la riscrittura del codice Java o Kotlin corrispondente (incluso, ad esempio, il tipo di ritorno della query). La ridenominazione funziona nell'altra direzione, Quindi, rinominando una classe o un campo Java, il codice SQL corrispondente le API nel tuo codice.
    • Gli utilizzi di SQL vengono visualizzati quando utilizzi Trova utilizzi (fai clic con il tasto destro del mouse e scegli Trova utilizzi dal menu contestuale).
    • Per passare alla dichiarazione di un'entità SQL nel codice Java o Kotlin, puoi tenere premuto Ctrl (Command su Mac) mentre fai clic sull'entità.

    Per informazioni sull'utilizzo di SQL con Room, consulta Salva i dati in un ambiente utilizzando Room.

    Aggiornamenti all'associazione dei dati

    Questo aggiornamento include diversi miglioramenti per associazione di dati:

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

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

    • Puoi visualizzare l'anteprima di un nuovo compilatore incrementale per le tue classi di binding dei dati. Per i dettagli del nuovo compilatore e le istruzioni per l'abilitazione vedi Compilatore di associazioni dati V2.

      I vantaggi del nuovo compilatore includono:

      • ViewBinding di corsi vengono generati da Android Plug-in per Gradle prima del compilatore Java.
      • Le librerie mantengono le classi di associazione generate quando l'app viene vengono compilate invece di essere rigenerate ogni volta. Questo può migliorare notevolmente le prestazioni per i progetti multimodulo.

    Compilatore e Gradle

    D8 è il file DEX predefinito compilatore

    Il compilatore D8 viene ora utilizzato per impostazione predefinita per la generazione di codice bytecode DEX.

    Questo nuovo compilatore DEX offre diversi vantaggi, tra cui:

    • Decodifica più rapida
    • Riduzione della memoria utilizzata
    • Generazione del codice migliorata (allocazione dei registri migliore, stringhe più intelligenti )
    • Migliore esperienza di debug durante l'esecuzione del codice

    Per usufruire di questi vantaggi, non è necessario apportare modifiche al codice o al flusso di lavoro di sviluppo, a meno che in precedenza non sia stato disattivato manualmente il compilatore D8.

    Se imposti android.enableD8 su false nel gradle.properties, elimina il flag o impostalo su true:

            android.enableD8=true
          

    Per maggiori dettagli, vedi Nuovo compilatore DEX.

    Incrementale dissuadere

    Per i progetti che utilizzano Funzionalità del linguaggio Java 8, il desugaring incrementale è abilitato per impostazione predefinita, volte.

    Desugaring effettua una conversione zucchero sintattico in un modulo che il compilatore può elaborare in modo più efficiente.

    Puoi disattivare la rimozione di zucchero incrementale specificando quanto segue nel file gradle.properties del progetto:

            android.enableIncrementalDesugaring=false
          
    Finestra di output semplificata

    La console Gradle è stata sostituita dalla finestra Build, che contiene le schede Sync e Build.

    Per maggiori dettagli su come utilizzare la nuova finestra Crea semplificata: consultaMonitorare la build di archiviazione.

    Aggiornamenti batch e indicizzazione contemporaneità

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

    C++ e LLDB

    Abbiamo apportato numerosi miglioramenti alla qualità e alle prestazioni nelle fasi di programmazione, sincronizzazione, compilazione e debug dello sviluppo in C++. I miglioramenti includono seguenti:

    • Se utilizzi progetti C++ di grandi dimensioni, dovresti notare un miglioramento significativo nella riduzione del tempo impiegato per creare i simboli. Anche il tempo di sincronizzazione è molto per i progetti di grandi dimensioni.

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

    • Aggiunta di formattatori ("stampanti accattivanti") per altre strutture di dati C++ semplifica la lettura dell'output LLDB.

    • LLDB ora funziona solo con Android 4.1 (livello API 16) e superiori.

    Nota: debug nativo con Android Studio 3.0 maggiore non funziona su Windows a 32 bit. Se utilizzi Windows a 32 bit e devi eseguire il debug del codice nativo, utilizza Android Studio 2.3.

    Kotlin

    Aggiornamento di Kotlin alla versione 1.2.30

    Android Studio 3.1 include Kotlin Versione 1.2.30.

    Il codice Kotlin ora è analizzato controllo lint della riga di comando

    Esecuzione del lint dalla riga di comando ora analizza le tue classi Kotlin.

    Per ogni progetto su cui vuoi eseguire lint, il repository Maven di Google deve essere incluso nel file build.gradle di primo livello. Il Repository Maven è già incluso per i progetti creati in Android Studio 3.0 e versioni successive.

    Strumenti per il rendimento

    Esempi di processi C++ nativi con CPU Profiler

    CPU Profiler ora include una configurazione predefinita per registrare le tracce campionate dei thread nativi della tua app. Puoi utilizzare questa configurazione eseguendo il deployment dell'app in un dispositivo con Android 8.0 (livello API 26) o versioni successive e selezionando Campionati (nativi) dalla registrazione del Profiler della CPU del menu a discesa delle configurazioni. In seguito, registrare ispeziona una traccia come faresti normalmente.

    Puoi modificare le impostazioni predefinite, come l'intervallo di campionamento, la creazione di uno configurazione della registrazione.

    Per tornare al monitoraggio dei thread Java, seleziona una configurazione Sampled (Java) o Instrumented (Java).

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

    CPU Profiler Memory Profiler include una funzionalità di ricerca che ti consente di filtrare i risultati per impedire la registrazione di un metodo traccia, allocazioni della memoria o dump dell'heap.

    Per eseguire la ricerca, fai clic su Filtra nell'angolo in alto a destra del riquadro, digita la query e premi Invio.

    Suggerimento: puoi anche aprire il campo di ricerca premendo Ctrl + F (Comando + F su Mac).

    Nella scheda Flame Chart di CPU Profiler, vengono chiamati stack che includono i metodi correlati alla tua query di ricerca vengono evidenziati e spostati a sinistra lato del grafico.

    Per ulteriori informazioni sull'applicazione di filtri per metodo, classe o nome del pacchetto, consulta: Registra e ispeziona le tracce del metodo.

    Scheda Richiesta nel Network Profiler

    Network Profiler ora include una scheda Richiesta che fornisce dettagli sulle richieste di rete durante il periodo di tempo selezionato. Nelle versioni precedenti, Profiler ha fornito solo informazioni sulle risposte della rete.

    Visualizzazione thread nel Profiler di rete

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

    • Visualizzazione delle connessioni: fornisce le stesse informazioni delle versioni precedenti di Android Studio: elenca i file inviati o ricevuti durante la parte selezionata della sequenza temporale in tutti i thread della CPU dell'app. Per ogni richiesta, puoi controllare dimensioni, tipo, stato e durata della trasmissione.
    • Visualizzazione thread: mostra l'attività di rete di ciascuno dei thread della CPU dell'app. Questa visualizzazione ti consente di controllare quali thread della tua app sono responsabili di ogni richiesta di rete.

    Layout Inspector

    Layout Inspector ha acquisito nuove funzionalità, tra cui alcune precedentemente fornite dagli strumenti Hierarchy Viewer e Pixel Perfect ritirati:

    • Pulsanti di zoom e scorciatoie da tastiera per navigare e ispezionare i layout
    • Overlay griglia di riferimento
    • Possibilità di caricare un'immagine di riferimento e utilizzarla come overlay (utile per confrontando il tuo layout con una simulazione dell'interfaccia utente)
    • Visualizzare l'anteprima della struttura ad albero secondaria per isolare una visualizzazione in un layout complesso

    Editor layout

    La tavolozza della Editor layout ha ricevuto molti miglioramenti:

    • Riorganizzazione delle categorie per visualizzazioni e layout.
    • Nuova categoria Comune per visualizzazioni e layout, che puoi aggiungere con un comando Preferiti.
    • Miglioramento cerca visualizzazioni e layout.
    • Nuovi comandi per apertura documentazione per uno specifico elemento di visualizzazione o layout.

    Puoi utilizzare la nuova visualizzazione convertita. nella struttura dei componenti o nell'editor di progettazione per convertire una vista o un layout a un altro tipo di visualizzazione o layout.

    Ora puoi creare facilmente vincoli per gli elementi vicini alla visualizzazione selezionata utilizzando i nuovi pulsanti Crea una connessione nell'ispettore della visualizzazione nella parte superiore della finestra Attributi.

    Esecuzione e esecuzione istantanea

    Il comportamento dell'opzione Utilizza la stessa selezione per il futuro avvia l'opzione nella sezione Seleziona la destinazione del deployment è stata resa più coerente. Se l'opzione Utilizza lo stesso di selezione è abilitata, quindi l'opzione Seleziona deployment la finestra di dialogo target si apre solo la prima volta che utilizzi Esegui il comando finché 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ò implementare le modifiche alle risorse senza causare il riavvio dell'applicazione. Questo è possibile perché le risorse sono contenute in un APK diviso.

    Emulatore

    Per i dettagli sulle novità e sulle modifiche apportate all'emulatore da Android Studio 3.0, consulta le note di rilascio di Android Emulator a partire da Versione 27.0.2 alla versione 27.1.12.

    I principali miglioramenti includono:

    • Istantanee di Avvio rapido per salvare lo stato dell'emulatore e un avvio più rapido, con la possibilità di utilizzare il comando Save now (Salva ora) per salvare un stato iniziale personalizzato.
    • Schermata dell'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.

    Interfaccia utente ed esperienza utente miglioramenti

    Altre descrizioni comando, scorciatoie da tastiera e messaggi utili

    Abbiamo aggiunto descrizioni comando e overlay di messaggi utili in molti punti. in Android Studio.

    Per visualizzare le scorciatoie da tastiera per molti comandi, tieni premuto il mouse posiziona il puntatore sopra un pulsante fino a visualizzare la descrizione comando.

    Strumenti > Menu Android rimosso

    Nella pagina Strumenti > Il menu Android è stato rimosso. I comandi che in precedenza si trovavano in questo menu sono stati spostati.

    • Molti comandi sono stati spostati direttamente sotto il menu Strumenti.
    • Il comando Sincronizza il progetto con i file Gradle è stato spostato nel menu File.
    • Il comando Monitoraggio dispositivi è stato rimosso, descritti di seguito.

    Monitoraggio dispositivo disponibile dalla riga di comando,

    In Android Studio 3.1, il Monitor dei dispositivi svolge un ruolo meno importante rispetto al passato. In molti casi, la funzionalità disponibile tramite Lo strumento Monitoraggio dispositivi ora è fornito da strumenti nuovi e migliorati.

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

    3.0 (ottobre 2017)

    Android Studio 3.0.0 è una versione principale che include una serie di nuove funzioni e miglioramenti.

    utenti macOS: se stai aggiornando una versione precedente di Android Studio, è possibile che venga visualizzata una finestra di dialogo di errore con l'aggiornamento "Alcuni conflitti sono stati nell'area di installazione". Basta ignorare questo errore e fare clic su Annulla per riprendere l'installazione.

    3.0.1 (novembre 2017)

    Si tratta di un piccolo aggiornamento ad Android Studio 3.0 che include un bug generale correzioni 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 e migliorare le prestazioni per i progetti che hanno un numero elevato di moduli. Quando si utilizza il nuovo plug-in con questi grandi progetti, dovresti riscontrare quanto segue:

    • Tempi di configurazione delle build più rapidi grazie alla nuova risoluzione delle dipendenze ritardata.
    • Risoluzione delle dipendenze in base alle varianti solo per i progetti e le varianti che stai creando.
    • Tempi di creazione incrementali più rapidi quando si applicano semplici modifiche al codice Google Cloud.

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

    Questa versione include anche:

    • Supporto per Android 8.0.
    • Supporto della creazione di APK separati in base alle risorse linguistiche.
    • Supporto per le librerie Java 8 e le funzionalità del 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.
    • È stata migliorata la velocità di sincronizzazione di Gradle.
    • AAPT2 è ora abilitato per impostazione predefinita.
    • L'utilizzo di ndkCompile è ora più limitato. Ti consigliamo di eseguire la migrazione a utilizzando CMake o ndk-build per compilare il codice nativo che vuoi impacchettare nel tuo APK. Per saperne di più, leggi Eseguire la migrazione da ndkcompile.

    Per ulteriori informazioni sulle modifiche, consulta le note di rilascio del plug-in Android per Gradle.

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

    Supporto di Kotlin

    Come annunciato al Google I/O 2017, il linguaggio di programmazione Kotlin è ora supportato ufficialmente su Android. In questa release, Android Studio include il linguaggio Kotlin per lo sviluppo 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 supportato da 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 determinate funzionalità del linguaggio Java 8 e utilizzare le librerie create con Java 8. Jack non è più necessario e deve prima disattivare Jack per utilizzare il supporto migliorato per Java 8 integrato nella toolchain predefinita.

    Per aggiornare il tuo progetto in modo che supporti la nuova toolchain del linguaggio Java 8, aggiorna Compatibilità della fonte e Compatibilità del target a 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 Android

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

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

    La sequenza temporale degli eventi nella parte superiore della finestra mostra gli eventi touch, i tasti pressioni e modifiche di attività in modo da avere più contesto per comprendere altre eventi di rendimento nella sequenza temporale.

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

    Nella sequenza temporale di panoramica di Android Profiler, fai clic su CPU, MEMORY, o NETWORK per accedere agli strumenti del profiler corrispondenti.

    Profiler CPU

    CPU Profiler ti aiuta ad analizzare l'utilizzo dei thread CPU della tua app che attivano una traccia CPU campione o strumentata. Poi potrai risolvere i problemi relativi alle prestazioni della CPU utilizzando una serie di visualizzazioni di dati e filtri.

    Per ulteriori informazioni, consulta la guida di Profiler CPU.

    Profiler di memoria

    Memory Profiler consente di identificare le perdite di memoria e il tasso di abbandono della memoria causare interruzioni, blocchi e persino arresti anomali dell'app. che mostra un grafico in tempo reale l'utilizzo della memoria da parte dell'app, puoi acquisire un dump dell'heap, forzare la garbage collection e tenere traccia delle allocazioni della memoria.

    Per ulteriori informazioni, consulta la guida di memory Profiler.

    Profiler di rete

    Network Profiler ti consente di monitorare l'attività di rete della tua app, ispeziona il payload di ciascuna delle tue richieste di rete e inserisci un link il 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 senza doverlo creare da un progetto Android Studio, a condizione che L'APK è realizzato per abilitare il debug e hai accesso ai simboli di debug e ai file di origine.

    Per iniziare, fai clic su Profila o esegui il debug dell'APK dalla schermata di benvenuto di Android Studio. In alternativa, se hai già un progetto aperto, fai clic su File > Profilo o debug dell'APK dalla barra dei menu. Vengono visualizzate le non pacchettizzati, ma il codice non viene decompilato. Per aggiungere correttamente punti di interruzione e visualizzare le analisi dello stack, devi allegare file sorgente Java e simboli di debug nativi.

    Per ulteriori informazioni, consulta Eseguire il profiling ed eseguire il debug di APK precompilati.

    Esplora file del dispositivo

    Il nuovo Esplora file del dispositivo ti consente di esaminare i file e trasferire file tra il dispositivo e il computer. Questo sostituisce lo strumento del file system disponibile in DDMS.

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

    Per ulteriori informazioni, consulta Guida a Esplora file del dispositivo.

    Supporto delle app istantanee

    Il nuovo supporto delle app istantanee Android ti consente di creare app istantanee nel tuo utilizzando due nuovi tipi di moduli: moduli delle app istantanee e moduli delle funzionalità (è necessario installare l'SDK Instant Apps Development).

    Android Studio include inoltre una nuova azione di modularizzazione di refactoring per aiutarti 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à delle app istantanee, Seleziona i corsi nella finestra Progetto e fai clic su Refactoring > Modularizza. Nella finestra di dialogo visualizzata, seleziona il modulo in cui si trovano i corsi fare clic su OK.

    Quando tutto è pronto per testare la tua app istantanea, puoi creare ed eseguire i tuoi Modulo App istantanea su un dispositivo connesso specificando l'URL dell'app istantanea all'interno del lancio della configurazione dell'esecuzione options: seleziona Esegui > Modifica configurazioni, seleziona il modulo dell'app istantanea, quindi imposta l'URL in Opzioni di avvio.

    Per ulteriori informazioni, vedi App istantanee Android.

    Moduli Android Things

    Nuovi modelli Android Things nelle procedure guidate Nuovo progetto e Nuovo modulo per aiutarti a iniziare a sviluppare per dispositivi IoT basati su Android.

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

    Procedura guidata per le icone adattive

    Image Asset Studio ora supporta disegni vettoriali e consente di creare icone di avvio app adattive per Android 8.0 creando contemporaneamente icone tradizionali (icone "Legacy") per i dispositivi meno recenti.

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

    Nota: devi impostare compileSdkVersion su un valore pari o superiore a 26 per usare Avvio app adattivo .

    Per ulteriori informazioni, leggi le informazioni Icone adattive.

    Supporto per le risorse dei caratteri

    Per supportare le nuove risorse dei caratteri in Android 8.0, Android Studio include un selettore di risorse dei caratteri per aiutarti a raggruppare i caratteri nella tua app o a configurare il progetto in modo che scarichi i caratteri sul dispositivo (se disponibili). Il layout l'editor può anche visualizzare l'anteprima dei caratteri nel tuo layout.

    Per provare i caratteri scaricabili, assicurati che sul tuo dispositivo o emulatore sia installata la versione 11.2.63 o successive di Google Play Services. Per ulteriori informazioni, leggi le informazioni 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 nuove pulsanti per testare l'indicizzazione dei tuoi contenuti pubblici e personali:

    • Nel passaggio 2, fai clic su Anteprima dei risultati di ricerca per verificare che gli URL vengono mostrati nei risultati della Ricerca Google.
    • Nel passaggio 3, fai clic su Cerca errori per verificare che gli oggetti indicizzati nella tua app siano stati aggiunti all'indice dei contenuti personali.

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

    • Aggiungi test degli URL per ogni mappatura di URL in modo da assicurarti che i filtri per intent. gestire gli URL reali.

      Puoi anche definire questi test degli URL manualmente utilizzando la proprietà <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 di URL

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

    Per dichiarare un URL di test per un filtro per intent, aggiungi un elemento <tools:validation> accanto all'elemento <intent-filter> corrispondente. Ad esempio:

          <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" nella il tag <manifest>.

    Se uno degli URL del test non passa la definizione del filtro per intent, viene Viene visualizzato un errore di lint. Un errore di questo tipo ti consente comunque di creare varianti di debug, ma causerà l'interruzione delle build della tua release.

    Editor layout

    Layout Editor è stato aggiornato con una serie di miglioramenti, tra cui:

    • Nuovo layout e nuove icone della barra degli strumenti.
    • Layout aggiornato nella struttura ad albero dei componenti.
    • Inserimenti con visualizzazione con trascinamento migliorato.
    • Nuovo riquadro degli errori sotto l'editor che mostra tutti i problemi con i suggerimenti correggere l'errore (se disponibile).
    • Vari miglioramenti all'interfaccia utente per la creazione con ConstraintLayout, tra cui le seguenti:
      • Nuovo supporto per creare barriere.
      • Nuovo supporto per la creazione di gruppi: nella barra degli strumenti, seleziona Linee guida > Aggiungi gruppo (è richiesta ConstraintLayout 1.1.0 beta 2 o versioni successive)
      • Nuova interfaccia utente per creare catene: seleziona più viste, poi fai clic con il tasto destro del mouse e seleziona Catena.

    Layout Inspector

    Lo strumento Layout Inspector include miglioramenti per semplificare il debug dei problemi relativi ai layout delle app, tra cui: raggruppare le proprietà in categorie comuni e nuove funzionalità di ricerca i riquadri Visualizza struttura e Proprietà.

    APK Analyzer

    Ora puoi usare l'Analizzatore APK dalla riga di comando con apkanalyzer.

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

    • Per gli APK creati con ProGuard, puoi caricare i file di mapping ProGuard che aggiungono funzionalità per il visualizzatore DEX, tra cui:
      • Nodi in grassetto per indicare che non devono essere rimossi quando di riduzione del codice.
      • Un pulsante per mostrare i nodi rimossi durante il processo di riduzione.
      • Un 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 .
    • 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 vengono visualizzati in corsivo.

    Per maggiori informazioni, visita la pagina Analizzare la build con lo Strumento di analisi APK.

    Anteprima del compilatore DEX D8

    Android Studio 3.0 include un nuovo compilatore DEX facoltativo, chiamato D8. Sarà alla fine sostituiremo il compilatore DX, ma potete scegliere di usare il nuovo D8 compilatore.

    La compilazione DEX influisce direttamente sul tempo di compilazione, sulle dimensioni del file .dex e sulle prestazioni di runtime della tua app. Inoltre, se confrontiamo il nuovo compilatore D8 con l'attuale compilatore DX, D8 compila più velocemente e genera file .dex più piccoli, pur avendo un rendimento in fase di esecuzione dell'app uguale o migliore.

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

    android.enableD8=true
        

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

    Repository Maven di Google

    Per impostazione predefinita, Android Studio ora utilizza il repository Maven di Google anziché dipendere da Android SDK Manager per ricevere aggiornamenti per la libreria di supporto Android, Google Play Services, Firebase e altre dipendenze. In questo modo è più facile tieni aggiornate le raccolte, soprattutto quando usi un sistema di integrazione continua (CI).

    Tutti i nuovi progetti ora includono il Repository Maven di Google per impostazione predefinita. 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é pochissimi sviluppatori utilizzano su questa piattaforma. Se utilizzi Windows a 32 bit e prevedi di eseguire il debug del codice nativo, devi continuare a utilizzare Android Studio 2.3.
    • Upgrade dell'IDE di base a IntelliJ 2017.1.2, il che aggiunge una serie di nuove funzionalità 2016.3 e 2017.1, come refactoring del linguaggio Java 8, suggerimenti di parametri, evidenziazione semantica, punti di interruzione trascinabili, risultati istantanei nella ricerca e molto altro ancora.
    • Sono stati aggiunti molti nuovi controlli lint.
    • Vedi anche gli ultimi aggiornamenti dell'emulatore Android.

    2.3 (marzo 2017)

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

    2.3.3 (giugno 2017)

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

    2.3.2 (aprile 2017)

    Si tratta di un aggiornamento minore ad Android Studio 2.3 che include 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 R14 o versioni successive dell'NDK.

    Vedi anche gli aggiornamenti corrispondenti per Android Emulator 26.0.3.

    2.3.1 (aprile 2017)

    Si tratta di un aggiornamento minore di Android Studio 2.3 che risolve un problema in cui i dispositivi Android fisici non funzionavano correttamente con Istantanea Corsa (vedi Problema #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 projects
          <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 personalizzati 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

    • È stato aggiornato il codice base dell'IDE da IntelliJ 15 a IntelliJ 2016.1
    • Instant Run ora richiede l'SDK della piattaforma corrispondente al target livello API del dispositivo da installare.
    • L'esecuzione istantanea viene disattivata automaticamente se l'utente esegue l'app in un profilo di lavoro o come utente secondario.
    • Sono stati risolti molti problemi di affidabilità per Instant Run in cui le modifiche non venivano implementate o l'app si arrestava in modo anomalo:
      • Alcuni asset per app non sono stati implementati nell'app in esecuzione. ( Bug: #213454).
      • L'app ha un arresto anomalo quando l'utente effettua la transizione da un'esecuzione istantanea a una versione non istantanea. Esegui sessioni in cui una classe Serializable non ha serialVersionUID definito. (Bug: 209006).
      • Le modifiche allo stile non vengono applicate con l'esecuzione istantanea. (Bug: 210851).
      • La sessione Instant Run non è affidabile e causa FileNotFoundException. (Bug: #213083)
      • Le modifiche agli elementi drawable non vengono applicate fino a quando non viene eseguita la ricompilazione completa per KitKat. (Bug: #21530)
      • Le modifiche alle risorse non si riflettono con l'esecuzione istantanea quando sono personalizzate Gli oggetti sourceSet contengono percorsi nidificati. (Bug: #219145)
      • La sostituzione in hot e warm non funziona se la classe modificata contiene un'annotazione con valore enumerato. (Bug: 209047).
      • Le modifiche ai dati dell'annotazione non vengono riflesse in Instant Run. (Bug: 210089).
      • La funzionalità di esecuzione immediata non rileva le modifiche al codice se le apporti al di fuori dell'IDE. (Bug: #213205)
      • La sessione di esecuzione istantanea non è affidabile a causa di un token di sicurezza non corrispondente. (Bug: 211989
      • Il trasferimento a freddo non va a buon fine per i dispositivi che non supportano correttamente il comando run-as. (Bug: 210875).
      • Arresto anomalo dell'app dopo il riavvio dell'esecuzione istantanea. (Bug: 219744).
      • ClassNotFoundException osservata durante il passaggio da Instant Run 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 wont 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 il supporto per lo sviluppo con la versione Anteprima di Android N.

    2.1.3 (agosto 2016)

    Questo aggiornamento aggiunge compatibilità con Gradle 2.14.1, che include prestazioni miglioramenti, 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 progetti esistenti, l'IDE richiede di eseguire l'upgrade a Gradle 2.14.1 plug-in per Android per Gradle 2.1.3, che è richiesto quando si utilizzano Gradle 2.14.1 in alto.

    2.1.2 (giugno 2016)

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

    • Aggiornamenti e correzioni di bug di Instant Run.
    • Miglioramenti alle prestazioni di LLDB e alle notifiche di arresto anomalo.
    • È stato corretto un problema di regressione nell'aggiornamento di sicurezza di Android Studio 2.1.1 che causava ha causato un 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 supportati solo in Android Studio 2.1. Quindi, se vuoi utilizzare Java 8 di linguaggio naturale, devi usare Android Studio 2.1 per creare l'app.

    Nota: esecuzione istantanea è disabilitata quando attivi il compilatore Jack perché al momento non sono compatibili.

    Sebbene Android Studio 2.1 sia ora stabile, il compilatore Jack è ancora sperimentale e devi attivarlo con jackOptions nel tuo file build.gradle.

    A parte le modifiche per supportare l'Anteprima N, Android Studio 2.1 include correzioni di bug minori e i seguenti miglioramenti:

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

    Per altri miglioramenti alla compilazione, tra cui 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 per l'anteprima per gli sviluppatori di N, devi utilizzare Android Studio 2.1 Preview. Android Studio 2.0 non supporta tutte le funzionalità richieste per scegliere come target la versione N Preview.

    Esecuzione istantanea:

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

      Nota: l'esecuzione istantanea è supportata soltanto quando esegui il deployment eseguire il debug della variante build, usa il plug-in Android per Gradle 2.0.0 o versioni successive e configura il livello di modulo della tua app build.gradle per minSdkVersion 15 o versioni successive. Per il miglior rendimento, configura la tua app per minSdkVersion 21 o versioni successive.

    Nuove aggiunte a Lint:

    • Ispezione delle istruzioni switch utilizzando @IntDef numeri interi annotati per verificare vengono gestite tutte le costanti. Per aggiungere rapidamente eventuali istruzioni mancanti, utilizza il menu a discesa dell'azione di intenzione e seleziona Aggiungi costanti @IntDef mancanti.
    • Indicatori per tentativi errati di utilizzare l'interpolazione di stringhe per inserire i numeri di versione nel file build.gradle.
    • Contrassegni per corsi anonimi che estendono la classe Fragment.
    • Flag per codice nativo in posizioni non sicure, come res/ e asset/ cartelle. Questo flag incoraggia l'archiviazione di codice nativo nell'elemento libs/ che viene quindi pacchettizzata in modo sicuro nel data/app-lib/ al momento dell'installazione. AOSP: #169950
    • Contrassegni per chiamate non sicure a chiamate Runtime.load() e System.load(). AOSP: #179980
    • Trova e rimuovi le risorse non utilizzate selezionando Ristruttura > Rimuovi risorse non utilizzate dalla barra dei menu. Rilevamento delle risorse inutilizzate ora supporta solo le risorse a cui fanno riferimento le risorse inutilizzate, i riferimenti non elaborati file, come riferimenti a immagini .html, nonché tools:keep e tools:discard attributi utilizzati dallo shrinker delle risorse Gradle, mentre considerando i set di origini inattivi (come le risorse utilizzate in altre build versioni) e gestire correttamente le importazioni di campi statici.
    • Controlla che i riferimenti impliciti alle API siano supportati su tutte le piattaforme scelto come target da minSdkVersion.
    • Segnala l'uso improprio di RecyclerView e Parcelable.
    • Ora vengono controllati anche i controlli @IntDef, @IntRange e @Size per int array e vararg.

    Ulteriori miglioramenti:

    • Ottimizzato per Android Emulator 2.0, più veloce che mai, supporta una gamma più ampia di dispositivi virtuali e offre una un'interfaccia utente migliorata. Per scoprire di più sul nuovo emulatore, leggi le note di rilascio di SDK Tools.
    • Miglioramenti a Android Virtual Device Manager:
      • Le immagini di sistema sono ora classificate nelle seguenti schede: Consigliate, x86 e Altro.
      • Nelle impostazioni avanzate, puoi abilitare il supporto multi-core e specificare il numero di core che l'emulatore può utilizzare.
      • Nelle impostazioni avanzate puoi stabilire la modalità di rendering delle grafiche sull'emulatore selezionando una delle seguenti opzioni:
        • Hardware: utilizza la scheda grafica del computer per un rendering più veloce.
        • Software: utilizza il rendering basato su software.
        • Automatico: lascia che sia l'emulatore a decidere l'opzione migliore. Questo è l'impostazione predefinita.
    • Tempi di imballaggio AAPT migliorati specificando il target di deployment prima della compilazione dell'app. Ciò consente ad Android Studio di pacchettizzare in modo efficiente solo e le risorse richieste dal dispositivo specificato.
    • È stata aggiunta l'integrazione di Cloud Test Lab per fornire test delle app on demand con la praticità e la scalabilità di un servizio cloud. Scopri di più su come puoi utilizzare Cloud Functions Test Lab con Android Studio.
    • È stata aggiunta un'anteprima del nuovo GPU Debugger. Per le applicazioni con un uso intensivo della grafica, ora puoi eseguire visivamente la procedura passo passo del codice OpenGL ES per ottimizzare la tua app o il tuo gioco.
    • È stato aggiunto il test di indicizzazione delle app di Google. Aggiungi il supporto di URL, app di indicizzazione e ricerca alle tue app per contribuire a generare più traffico verso la tua app, scoprire i contenuti dell'app più utilizzati e attirare nuovi utenti. Testa e convalida gli URL nella tua app, tutto all'interno di Android Studio. Consulta la sezione App e URL di supporto Indicizzazione in Android Studio.
    • Upgrade dall'ultima release di IntelliJ 15, tra cui analisi e prestazioni del codice migliorate. Consulta Novità di IntelliJ per una descrizione completa delle nuove funzionalità e dei miglioramenti.
    • Il completamento automatico dell'editor XML ora aggiunge le virgolette al completamento attributi. Per verificare se questa opzione è attiva, apri Impostazioni oppure Nella finestra di dialogo Preferenze, vai a Editor > Generali > Intelligente Chiavi e seleziona la casella accanto a Aggiungi virgolette per il valore dell'attributo su completamento degli attributi. Problema: 195113
    • L'editor XML ora supporta il completamento del codice per le espressioni di associazione dei dati.

    Android Studio v1.5.1 (dicembre 2015)

    Correzioni e miglioramenti:

    • È stato risolto un problema di errore di rendering nell'editor 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 di Android Studio Darcula in Vector Asset Studio. Problema: 191819
    • È stato aggiunto il supporto del pulsante Guida a Vector Asset Studio.
    • Aggiunto il supporto per l'operatore % per l'associazione di dati. Problema: 194045
    • Risolto il problema per cui l'avvio di un'app per il debug causava la connessione del debugger allo dispositivo sbagliato. Problema: 195167
    • Risolto un'eccezione relativa al puntatore nullo che si verificava durante il tentativo di eseguire un'app in in determinati scenari.

    Android Studio v1.5.0 (novembre 2015)

    Correzioni e miglioramenti:

    • Sono state aggiunte nuove funzionalità di analisi di Monitor della memoria ad Android Monitor. Quando visualizzi un file HPROF acquisito da questo monitor, la visualizzazione è ora più utile per individuare più rapidamente i problemi, ad esempio le perdite di memoria. Per utilizzare questo monitor, fai clic su Android Monitor all'indirizzo 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 e fai doppio clic sul file per visualizzarlo. Clic Acquisisci analisi a destra. (Il monitoraggio dei dispositivi Android non può essere eseguito contemporaneamente a Android Monitor.)
    • Aggiunto il supporto di nuovi link diretti e link dell'app. L'editor di codice può creare automaticamente un filtro intent per i link diretti nel file AndroidManifest.xml. Può anche generare codice per aiutarti a eseguire l'integrazione con l'API App Indexing in un'attività in un file Java. Una funzionalità di test dei link diretti ti aiuta a verificare che un link diretto specificato possa avviare un'app. Nella scheda Generale della finestra di dialogo Configurazioni di esecuzione/debug, puoi specificare le opzioni di avvio dei link diretti. Puoi anche testare le chiamate all'API App Indexing 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 nomi brevi durante il completamento del codice di viste personalizzate nell'editor di codice.
    • Aggiunto il supporto per più elementi VectorDrawable a Vector Asset Studio per la compatibilità con le versioni precedenti. Vector Asset Studio può utilizzare questi elementi per convertire i vettori in immagini raster PNG da utilizzare con Android 4.4 (livello API 20) e versioni precedenti.
    • Sono stati aggiunti nuovi controlli lint per Android TV e Android Auto per darti accesso Feedback immediato e strategici in Android Studio, insieme a diverse correzioni rapide. Ad esempio, per Android TV, può segnalare e fornire una correzione rapida per i problemi relativi a autorizzazioni, hardware non supportato, elemento uses-feature e banner mancanti. Per Android Auto, può convalidare l'utilizzo corretto nel file descrittore a cui si fa riferimento AndroidManifest.xml, segnala se non è presente un filtro per intent per MediaBrowserService corso e identificare determinati problemi relativi alle azioni vocali.
    • Sono stati aggiunti nuovi controlli lint per i ricevitori di trasmissione non sicuri, l'utilizzo delle classi SSLCertificateSocketFactory e HostnameVerifier e le chiamate File.setReadable() e File.setWritable(). Rileva inoltre ricerche di risorse manifest non valide, soprattutto per risorse che variano in base alla configurazione.
    • Sono stati risolti diversi 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 causare un'eccessiva sincronizzazione Gradle quando l'IDE è stato riavviato.
    • È stato risolto un problema di deadlock di debug nativo.
    • È stato risolto un problema che bloccava gli utenti del sistema di controllo della versione Subversion 1.9.
    • È stato risolto un problema della finestra di dialogo Device Chooser (Selettore dispositivo) per cui, dopo aver collegato un dispositivo non autorizzato, non era più possibile selezionare l'emulatore. Problema: 189658
    • Sono stati corretti report sugli errori di traduzione errati per le impostazioni internazionali che hanno un qualificatore di regione e un nella regione (ma non nella lingua di base). Problema: 188577
    • È stato risolto un problema di blocco in Editor di temi relativo alla sua interazione con Editor di layout. Problema: 188070
    • È stato corretto un conflitto di modifica e ricaricamento dell'Editor di temi che causava l'aggiornamento non corretto degli attributi. Problema: 187726
    • Prestazioni dell'editor di temi migliorate.
    • È stato risolto un problema per cui l'attributo android:required veniva ignorato nel manifest. Problema: 187665

    Android Studio 1.4.0 (settembre 2015)

    Correzioni e miglioramenti:

    • È stato aggiunto Vector Asset Studio strumento per l'importazione di grafica vettoriale, ad esempio icone di materiali e SVG. Per utilizzare questo strumento, nella visualizzazione Android della finestra Progetto, fai clic con il tasto destro del mouse sull' res e seleziona Nuovo > Asset vettoriale.
    • Aggiunte nuove funzioni di Android Monitor, GPU e rete. Per utilizzare questi monitor, fai clic su Monitor Android nella parte inferiore della finestra principale. Monitoraggio del dispositivo Android non può essere in esecuzione contemporaneamente ad Android Monitor.
    • È 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 Design Support Library. I modelli ora includono il supporto per le specifiche di Material Design e la libreria di supporto appcompat per la compatibilità con le versioni precedenti.

    Android Studio v1.3.2 (agosto 2015)

    Correzioni e miglioramenti:

    • È stato aggiunto il supporto per Android 6.0 (livello API 23), incluse nuove icone e il supporto di AVD Manager per la creazione di dispositivi con nuove densità dello schermo.
    • È stata corretta un'eccezione che si verificava durante i controlli degli aggiornamenti. Problema: 183068
    • È stato risolto il problema per cui le coordinate di visualizzazione non risolte potevano causare l'arresto anomalo dell'editor del layout. Problema: 178690
    • È stato risolto il problema con gli avvisi relativi a tipi di risorse non validi. Problema: 182433
    • È stato corretto 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 un dispositivo virtuale Android Wear (AVD) su Windows.
    • La procedura guidata del progetto è stata aggiornata in modo da utilizzare il nome del progetto inserito.
    • È stato aggiunto il supporto per consentire l'archiviazione dell'SDK Android in una directory di sola lettura.
    • Plug-in Android aggiornato per la versione Gradle alla 1.3.0.
    • Sono stati risolti i problemi relativi all'avvio di una sessione di debug da Unix Android Debug Bridge (adb) una shell.
    • È stato corretto il messaggio di rinominazione del pacchetto Java in modo che mostri il nome corretto del pacchetto.

    Android Studio v1.3.0 (luglio 2015)

    Correzioni e miglioramenti:

    • Sono state aggiunte opzioni per attivare servizi per 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 possibilità di generare dump dell'heap Java e analizzare le allocazioni dei thread dal Monitoraggio della memoria. Puoi anche convertire i file in formato binario HPROF specifici per Android in formato HPROF standard da Android Studio.
    • Integrazione di SDK Manager ad Android Studio per semplificare l'accesso a pacchetti e strumenti e fornire notifiche relative agli aggiornamenti.

      Nota: SDK Manager autonomo è ancora disponibile dalla riga di comando, ma è consigliato per l'utilizzo solo con installazioni di SDK autonome.

    • È stato aggiunto il comando finger nella console dell'emulatore per simulare impronta autenticazione.
    • È stata aggiunta una dichiarazione di risorsa <public> per designare le risorse della biblioteca come risorse pubbliche e private.

      Nota: è richiesta la versione 1.3 o successive del plug-in Android per Gradle.

    • È stato aggiunto il supporto dell'associazione di dati per creare layout dichiarativi che vincolano la logica dell'applicazione agli elementi di layout.
    • È stato aggiunto il supporto di un modulo APK di test per creare APK di prova in Android Studio.
    • Aggiornamento di Gestione AVD con HAXM ottimizzazioni e notifiche migliorate.
    • Aggiunto il supporto dell'emulatore ARM e MIPS a 64 bit per QEMU 2.1.
    • Risoluzione degli avvisi Lint semplificata aggiungendo correzioni rapide, come la generazione automatica Pacco da consegnare implementazione.
    • È stato aggiunto il supporto del modello dal vivo 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 impedivano il completamento delle build.

    Android Studio 1.2.1 (maggio 2015)

    Correzioni e miglioramenti:

    • Sono stati corretti piccoli problemi di prestazioni e funzionalità.

    Android Studio v1.2.0 (aprile 2015)

    Correzioni e miglioramenti:

    • È stata aggiornata la finestra del runtime di Android per includere lo strumento Monitor della memoria ed è stata aggiunta una scheda per il monitoraggio delle prestazioni della CPU.
    • È stata aggiunta una scheda Acquisizioni nel margine sinistro per visualizzare la memoria e i file di dati sulle prestazioni della CPU, ad esempio il monitoraggio del metodo CPU e snapshot heap di memoria.
    • Annotazione espansa supporta annotazioni aggiuntive per i metadati e i valori nulli dedotti.
    • È stato migliorato l'editor delle traduzioni con il supporto aggiuntivo per le Best Practice correnti (BCP) 47, che utilizza codici di lingua e regione di tre lettere.
    • Funzionalità di IntelliJ 14 e 14.1 integrate per migliorare l’analisi del codice e rendimento:
      • Il debug è stato migliorato 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 degli operatori.
      • Aggiunto il rilevamento dello stile del codice per le dimensioni di tabulazione e rientro.
      • Sono stati aggiunti file scratch per esperimenti di codice e prototipazione senza file di progetto.
      • Aggiunto l'inserimento simultaneo dei tag di apertura e chiusura in HTML e XML.
      • È stato aggiunto un decompilatore incorporato delle classi Java per visualizzare all'interno di una libreria per la quale il codice sorgente non è disponibile.

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

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

    Android Studio v1.1.0 (febbraio 2015)

    Varie correzioni e miglioramenti:

    • È stato aggiunto il supporto per il modello di orologio Android Wear.
    • È stata modificata la creazione di nuovi progetti e moduli per includere res/mipmap cartelle per icone di avvio specifiche per la densità. Queste res/mipmap cartelle sostituiscono il res/drawable cartelle per le icone in Avvio applicazioni.
    • Aggiornate le icone in Avvio applicazioni per avere Material Design e ha aggiunto un Icona Avvio app di xxxhdpi.
    • Controlli Lint aggiunti e migliorati per combinazioni di regione e lingua, icone in Avvio applicazioni, nomi di risorse e altri per risolvere problemi di codice.
    • È stato aggiunto il supporto del tag 47 della lingua Best Current Practice (BCP).

    Android Studio v1.0.1 (dicembre 2014)

    Varie correzioni e miglioramenti:

    • È stato risolto il problema di blocco del file AVD Manager e device.xml.
    • È stato corretto il log dell'emulatore sui sistemi Windows.
    • È stato risolto il problema relativo alla creazione di visualizzazioni di pagina AVD con Android Studio e l'SDK Android installato su diverse su sistemi Windows.
    • Imposta il canale di aggiornamento predefinito per i nuovi download su Stabile. Se installato la versione 1.0.0 di Android Studio e vorrebbe una versione stabile e pronta per la produzione aggiornamenti, usa File > Impostazioni > Aggiornamenti per passare allo Stabile aggiorna il canale.

    Android Studio v1.0 (dicembre 2014)

    Versione iniziale di Android Studio.

    Android Studio v0.8.14 (ottobre 2014)

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

    Android Studio versione 0.8.6 (agosto 2014)

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

    Android Studio 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 versione 0.4.6 (marzo 2014)

    Android Studio v0.4.2 (gennaio 2014)

    Android Studio versione 0.3.2 (ottobre 2013)

    Android Studio 0.2.x (luglio 2013)

    • Sono state integrate le ultime modifiche al codice base di IntelliJ. Sono incluse le correzioni di problemi segnalati dagli utenti di Studio, come modifiche alle dimensioni dei caratteri Linux e rendering dei caratteri.
    • Il plug-in Android per Gradle è stato aggiornato alla versione 0.5.0.

      Attenzione:questa nuova versione non è compatibile con le versioni precedenti. Quando apri un progetto che utilizza una versione precedente del plug-in, Studio mostra un messaggio di errore che indica che l'aggiornamento del progetto Gradle <project_name> non è riuscito.

      Il plug-in Gradle aggiornato include le seguenti modifiche:

      • È stato corretto il modello IDE che conteneva il file di output anche se era 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 la combinazione di (configurazione predefinita, tipi di build e flavor(s) insieme anziché separatamente.
      • È stata corretta la dipendenza per i test del progetto di libreria in modo da includere correttamente tutte le dipendenze della libreria stessa.
      • Risolto il caso in cui due dipendenze hanno lo stesso nome foglia.
      • È stato risolto il problema per cui il file delle regole di ProGuard non può essere applicato alle versioni.

      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 build/, puntano alle posizioni di origine reali.
    • Build parallele. Ora è possibile utilizzare le build parallele di Gradle. Tieni presente che le compilazioni parallele sono in "incubazione" (consulta la documentazione di Gradle). Per impostazione predefinita questa funzionalità non è attiva. Per abilitarla, vai a Preferenze > Compilatore e seleziona la casella Compilazione moduli indipendenti in parallelo.
    • Ulteriori lavori sul nuovo repository di risorse utilizzato per il rendering del layout, il riassorbimento delle risorse nell'editor e altro ancora:
      • Supporto di base per le dipendenze della libreria .aar (ad es. utilizzo di una libreria senza una copia locale dei le fonti). Ancora non funziona per la convalida e la navigazione del file XML delle risorse negli editor di origine.
      • Rilevamento ciclico nei riferimenti alle risorse.
      • Quick Documentazione (F1), che può mostrare tutte le traduzioni della stringa sotto il cursore, ora mostrerà anche tutti gli overlay delle risorse delle varie versioni e tipi di build di Gradle, nonché alle librerie. Sono elencate in ordine inverso degli overlay delle risorse, con testo barrato le versioni della stringa mascherate.
      • Correzioni per gestire l'aggiornamento delle risorse unite quando l'insieme di dipendenze del modulo modifica.
      • Correzioni del rendering XML per gestire correttamente le dichiarazioni dell'entità carattere, i file XML e Unicode .
    • Salva il supporto degli screenshot per le finestre di anteprima del layout e dell'editor di layout.
    • Correzioni di bug relativi al modello.
    • 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, inclusa la correzione di un problema comune di installazione di Windows.

    Release precedenti del plug-in Android 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 le funzionalità di machine learning.

    Visualizza associazione

    L'associazione delle viste fornisce la sicurezza in fase di compilazione quando si fa riferimento alle viste in il tuo codice. Ora puoi sostituire findViewById() con un riferimento alla classe di associazione generato automaticamente. Per iniziare a utilizzare Visualizza associazione, 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 relativa al binding della visualizzazione.

    Supporto per il plug-in Maven Publish

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

    Per saperne di più, vai alla pagina su come utilizzare il plug-in Maven Publish.

    Nuovo strumento di pacchettizzazione predefinito

    Quando crei la versione di debug dell'app, il plug-in utilizza un nuovo chiamato zipflinger, per creare l'APK. Questo nuovo strumento dovrebbe offrire miglioramenti alla velocità di compilazione. Se il nuovo strumento di pacchettizzazione non funziona come previsto, segnala un bug. Puoi ripristinare utilizzando il vecchio strumento di imballaggio includendo quanto segue nella File gradle.properties:

            android.useNewApkCreator=false
          
    Attribuzione build nativa

    Ora puoi determinare quanto tempo impiega Clang per creare e collegare ogni file C/C++ nel tuo progetto. Gradle può generare una traccia di Chrome contenente i timestamp di questi eventi del compilatore, in modo da comprendere meglio il tempo necessario per compilare il progetto. Per eseguire l'output di questa build del file di attribuzione, procedi nel seguente modo:

    1. Aggiungi il flag -Pandroid.enableProfileJson=true quando esegui una compilazione Gradle. Ad esempio:

      gradlew assembleDebug -Pandroid.enableProfileJson=true

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

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

    Puoi vedere i dati di attribuzione build nativa nella parte superiore della visualizzatore:

    Traccia di attribuzione della compilazione nativa in Chrome

    Modifiche al comportamento

    Quando utilizzi questa versione del plug-in, potresti riscontrare quanto segue cambiamenti nel comportamento.

    Librerie native pacchettizzate non compresse per impostazione predefinita

    Quando crei la tua app, il plug-in ora imposta Da extractNativeLibs a "false" entro predefinito. Ciò significa che le librerie native sono allineate alla pagina e pacchettizzate non compresso. Anche se ciò comporta dimensioni di caricamento maggiori, i tuoi utenti usufruiscono di:

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

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

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

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

    Versione NDK predefinita

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

    Generazione semplificata della classe R

    Il plug-in Android Gradle semplifica il classpath di compilazione generando una sola classe R per ogni modulo libreria nel tuo progetto e condividendo queste classi R con altre dipendenze del modulo. Questa ottimizzazione dovrebbe produrre build più veloci, ma è necessario mantenere tieni presente quanto segue:

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

    Per i moduli della libreria, se includi una risorsa per una lingua che non includi nell'insieme predefinito di risorse, ad esempio se includi hello_world come risorsa stringa in /values-es/strings.xml, ma non la definisci in /values/strings.xml, il plug-in Android Gradle non la include più durante la compilazione del progetto. Questa modifica del comportamento dovrebbe comportare un numero minore di Resource Not Found eccezioni di runtime e una maggiore velocità di compilazione.

    D8 ora rispetta il criterio di conservazione CLASS per le annotazioni

    Durante la compilazione dell'app, D8 ora rispetta quando le annotazioni applicano un criterio di conservazione CLASS e queste annotazioni non sono più disponibili al momento dell'esecuzione. Questo comportamento si verifica anche quando si imposta l'SDK target dell'app su API di livello 23, che in precedenza consentiva l'accesso a queste annotazioni durante durante la compilazione dell'app utilizzando versioni precedenti di Android Gradle e D8.

    Altre modifiche del comportamento
    • aaptOptions.noCompress non è più sensibile alle maiuscole per tutti (per APK e bundle) e rispetta i percorsi che utilizzano in maiuscolo.
    • Il binding dei dati è ora incrementale per impostazione predefinita. Per scoprire di più, consulta il problema 110061530.

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

    Correzioni di bug

    Questa versione del plug-in Android per Gradle include il seguente bug correzioni:

    • I test delle unità robotiche sono ora supportati nei moduli della libreria che utilizzano associazione di dati. Per saperne di più, vedi problema n. 126775542.
    • Ora puoi eseguire connectedAndroidTest attività su mentre Gradle parallelo di esecuzione automatica sia abilitata.

    Problemi noti

    In questa sezione vengono descritti i problemi noti presenti nel plug-in Android per Gradle 3.6.0.

    Prestazioni lente dell'attività Android Lint

    Il completamento di alcuni progetti Android Lint può richiedere molto più tempo a causa di una regressione nella sua infrastruttura di analisi, con conseguente rallentamento del calcolo di tipi dedotti per lambda in alcuni costrutti di codice.

    Il problema viene segnalato come un bug di IDEA e verranno corretti nel plug-in Android Gradle 4.0.

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

    Se la tua app definisce autorizzazioni personalizzate nel file manifest, In genere il plug-in Gradle genera una classe Manifest.java che include le autorizzazioni personalizzate come costanti stringa. I pacchetti di plug-in questa classe con la tua app, per poter consultare più facilmente autorizzazioni in fase di runtime.

    La generazione della classe manifest non funziona nel plug-in Android Gradle 3.6.0. Se crei la tua app con questa versione del plug-in, questa fa riferimento la classe manifest, potresti vedere un ClassNotFoundException un'eccezione. Per risolvere il problema, esegui una delle seguenti operazioni:

    • Fai riferimento alle autorizzazioni personalizzate tramite il 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)

    Plug-in Android per Gradle 3.5.0, insieme a Android Studio 3.5 è una release principale. e il risultato di Project Marble, che ha come obiettivo il miglioramento di tre principali aree degli strumenti per sviluppatori Android: integrità del sistema, perfezionamento delle funzionalità e correggere i bug. In particolare, miglioramento del progetto la velocità di creazione era uno degli aspetti principali di questo aggiornamento.

    Per informazioni su questi e altri aggiornamenti di Project Marble, leggi l'articolo Android post del blog per gli sviluppatori o le sezioni di seguito.

    Questa versione del plug-in Android richiede i seguenti requisiti:

    3.5.4 (luglio 2020)

    Questo aggiornamento minore supporta la compatibilità con le nuove impostazioni predefinite e funzionalità per visibilità del pacchetto su Android 11.

    Per informazioni dettagliate, consulta le note di rilascio 4.0.1.

    3.5.3 (dicembre 2019)

    Questo aggiornamento minore supporta Android Studio 3.5.3 e include vari bug correzioni e miglioramenti delle prestazioni.

    3.5.2 (novembre 2019)

    Questo aggiornamento minore supporta Android Studio 3.5.2 e include varie correzioni di bug e miglioramenti delle prestazioni. Per visualizzare un elenco delle correzioni di bug più importanti, leggi il post correlato nel blog degli aggiornamenti del rilascio.

    3.5.1 (ottobre 2019)

    Questo aggiornamento minore supporta Android Studio 3.5.1 e include varie correzioni di bug e miglioramenti delle prestazioni. Per visualizzare un elenco delle correzioni di bug più importanti, leggi il post correlato nel blog degli aggiornamenti del rilascio.

    Elaborazione di annotazioni incrementali

    Il processore di annotazione Data Binding supporta l'elaborazione incrementale delle annotazioni se imposti android.databinding.incremental=true nel file gradle.properties. Questa ottimizzazione comporta un miglioramento del rendimento delle compilazioni incrementali. Per un elenco completo delle annotazioni ottimizzate processori, fai riferimento alla tabella sull'annotazione incrementale processori.

    Inoltre, KAPT 1.3.30 e versioni successive supportano anche l'annotazione incrementale processori, che puoi abilitare includendo kapt.incremental.apt=true in il tuo file gradle.properties.

    Test delle unità memorizzabili nella cache

    Quando attivi i test di unità per utilizzare risorse, asset e manifest di Android impostando includeAndroidResources su true, il plug-in Android per Gradle genera un file di configurazione del test contenente percorsi assoluti, che interrompe la ricollocabilità della cache. Puoi indicare il plug-in per generare la configurazione di test utilizzando percorsi relativi, consente di memorizzare nella cache l'attività AndroidUnitTest, tramite incluse le seguenti informazioni nel file gradle.properties:

          android.testConfig.useRelativePath = true
        

    Problemi noti

    • Quando usi il plug-in Kotlin Gradle 1.3.31 o precedente, potresti vedere il seguente avviso in fase di creazione o sincronizzazione del progetto:

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

      Da risolvere questo problema, aggiornare il plug-in alla versione 1.3.40 o successiva.

    3.4.0 (aprile 2019)

    Questa versione del plug-in Android richiede i seguenti requisiti:

    3.4.3 (luglio 2020)

    Questo aggiornamento minore supporta la compatibilità con le nuove impostazioni predefinite e funzionalità per visibilità del pacchetto su Android 11.

    Per informazioni dettagliate, consulta le note di rilascio 4.0.1.

    3.4.2 (luglio 2019)

    Questo aggiornamento minore supporta Android Studio 3.4.2 e include vari bug correzioni e miglioramenti delle prestazioni. Per visualizzare un elenco delle correzioni di bug più importanti, leggi il post correlato nel blog degli aggiornamenti del rilascio.

    3.4.1 (maggio 2019)

    Questo aggiornamento minore supporta Android Studio 3.4.1 e include vari bug correzioni e miglioramenti delle prestazioni. Per visualizzare un elenco delle correzioni di bug più importanti, leggi il post correlato nel blog degli aggiornamenti del rilascio.

    Nuove funzionalità

    • Nuove configurazioni delle dipendenze per il controllo lint: il parametro il comportamento di lintChecks è cambiato e una nuova dipendenza lintPublish, è stata introdotta per fornire hai un maggiore controllo sui controlli lint che vengono pacchettizzati nel tuo Android librerie.

      • lintChecks: si tratta di una configurazione esistente che dovresti utilizzare per i controlli lint che vuoi eseguire solo durante la compilazione del progetto localmente. Se in precedenza utilizzavi lintChecks configurazione della dipendenza per includere il lint nell'AAR pubblicato, devi eseguire la migrazione delle dipendenze per utilizzare la nuova configurazione lintPublish descritti di seguito.
      • lintPublish: utilizza questa nuova configurazione nei progetti di librerie per i controlli lint che vuoi includere nell'AAR pubblicato, come mostrato di seguito. Ciò significa che i progetti che utilizzano la tua libreria applicano anche 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 avere una build complessiva il miglioramento della velocità. Se noti una regressione delle prestazioni relativa queste attività, segnala un bug.

    Cambiamenti del comportamento

    • Avviso di ritiro del plug-in delle funzionalità per le app istantanee Android: se continui a utilizzare il plug-in com.android.feature per compilare la tua app istantanea, il plug-in Android per Gradle 3.4.0 mostrerà un avviso di ritiro. Per assicurarti di poter comunque creare la tua app istantanea su versioni future di esegui la migrazione dell'app istantanea all'uso il plug-in delle funzionalità dinamiche, che ti consente anche di pubblicare sia l'app installata che l'app istantanea esperienze di un singolo Android App Bundle.

    • R8 abilitato per impostazione predefinita: R8 integra la rimozione del codice non necessario, la compressione, l'oscuramento, l'ottimizzazione e il dexing in un unico passaggio, con miglioramenti significativi del rendimento della compilazione. R8 è stato introdotto nel plug-in Android Gradle 3.3.0 e adesso è abilitato per impostazione predefinita sia per i progetti di app che per quelli di libreria Android. usando il plugin 3.4.0 e superiore.

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

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

    Ora, con R8, puoi ridurre, restringere, offuscare, ottimizzare e dexing (D8) vengono completate in un solo passaggio, come illustrato di seguito.

    Con R8, è possibile eseguire la sgombero, il restringimento, l&#39;offuscamento, l&#39;ottimizzazione
      il dexing viene eseguito in un unico passaggio di compilazione.

    Tieni presente che R8 è progettato per funzionare con le regole ProGuard esistenti, quindi probabilmente non dovrai intraprendere alcuna azione per usufruire di R8. Tuttavia, perché si tratta di una tecnologia diversa da ProGuard, progettata appositamente per i progetti Android, la riduzione e l'ottimizzazione possono comportare la rimozione del codice che ProGuard potrebbe non avere. Pertanto, in questa situazione improbabile, potresti dover aggiungere altre regole per mantenere il codice nell'output della compilazione.

    Se riscontri problemi con R8, leggi le Domande frequenti sulla compatibilità con R8 per verificare se esiste una soluzione al problema. Se una soluzione non è documentata, segnala un bug. Puoi disattivare R8 aggiungendo una delle seguenti righe al file gradle.properties del progetto:

          # Disables R8 for Android Library modules only.
          android.enableR8.libraries = false
          # Disables R8 for all modules.
          android.enableR8 = false
          
        

    Nota: per un determinato tipo di build, se imposti useProguard su false nel file build.gradle del modulo dell'app, il plug-in Android per Gradle utilizza R8 per ridurre il codice dell'app per quel tipo di build, indipendentemente dal fatto che tu disattivi R8 nel file gradle.properties del progetto.

    • Il servizio ndkCompile è deprecato: ora puoi usufruire di un generare un errore di generazione se provi a utilizzare ndkBuild per compilare librerie native. Dovresti invece usare CMake o ndk-build Aggiungi il codice C e C++ al tuo progetto.

    Problemi noti

    • Al momento l'utilizzo corretto di nomi di pacchetti univoci non è applicato ma diventerà più restrittivo con le versioni successive del plug-in. Su Android del plug-in Gradle versione 3.4.0, puoi scegliere di verificare se il tuo dichiara i nomi di pacchetto accettabili aggiungendo la riga seguente a il tuo file gradle.properties.

                android.uniquePackageNames = true
                
              

      Scopri di più sull'impostazione di un nome pacchetto tramite Android Gradle consulta l'articolo Imposta l'ID applicazione.

    3.3.0 (gennaio 2019)

    Questa versione del plug-in Android richiede i seguenti requisiti:

    3.3.3 (luglio 2020)

    Questo aggiornamento minore supporta la compatibilità con le nuove impostazioni predefinite e funzionalità per visibilità del pacchetto su Android 11.

    Per informazioni dettagliate, consulta le note di rilascio della versione 4.0.1.

    3.3.2 (marzo 2019)

    Questo aggiornamento minore supporta Android Studio 3.3.2 e include varie correzioni di bug e miglioramenti delle prestazioni. Per visualizzare un elenco delle correzioni di bug più importanti, leggi il post correlato nel blog degli aggiornamenti del rilascio.

    3.3.1 (febbraio 2019)

    Questo aggiornamento minore supporta Android Studio 3.3.1 e include vari bug correzioni e miglioramenti delle prestazioni.

    Nuove funzionalità

    • Sincronizzazione dei percorsi delle classi migliorata:durante la risoluzione. di runtime e il tempo di compilazione dei percorsi classpath, le dipendenze Il plug-in Gradle tenta di risolvere determinati conflitti di versione downstream per che appaiono in più classpath.

      Ad esempio, se il classpath del runtime include la Libreria A versione 2.0 e compila classpath include la libreria A versione 1.0, il plug-in viene creato aggiorna la dipendenza su classpath di compilazione nella libreria A versione 2.0 in per evitare errori.

      Tuttavia, se il classpath di runtime include la versione 1.0 della libreria A e la compilazione include la versione 2.0 della libreria A, il plug-in non esegue il downgrade della dipendenza sul classpath di compilazione alla versione 1.0 della libreria A e verrà visualizzato un errore. Per saperne di più, vedi Risolvi i conflitti tra classpath.

    • Compilazione Java incrementale migliorata durante l'utilizzo dell'annotazione processori: Questo aggiornamento riduce i tempi di compilazione migliorando il supporto per 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 8194 di Gradle.

      • Per i progetti che utilizzano Kapt (la maggior parte dei progetti solo Kotlin e i progetti ibridi Kotlin-Java): la compilazione Java incrementale è abilitata, anche se utilizzi il binding 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 tutti i processori di annotazione che supportano elaborazione delle annotazioni incrementali, la compilazione Java incrementale è abilitata per impostazione predefinita. Per monitorare l'adozione del processore di annotazioni incrementali, guarda il problema Gradle 5277.

        Tuttavia, se uno o più elaboratori di annotazioni non supportano le compilazioni incrementali, la compilazione Java incrementale non è abilitata. Puoi invece includi il seguente flag nel file gradle.properties:

        android.enableSeparateAnnotationProcessing=true
                    

        Quando includi questo flag, il plug-in Gradle per Android esegue gli elaboratori di annotazioni in un'attività separata e consente all'attività di compilazione Java di essere eseguita in modo incrementale.

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

                android.debug.obsoleteApi=true
              

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

    • Puoi eseguire test di strumentazione sui moduli delle funzionalità dal comando dalla riga di comando.

    Modifiche al comportamento

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

      Chiamare determinati metodi precedenti nell'API Variants, ad esempio variant.getJavaCompile() potrebbe comunque forzare la configurazione dell'attività. Per assicurarti che la build sia ottimizzata per la configurazione di attività lazy, richiamare nuovi metodi che restituiscono invece TaskProvider come variant.getJavaCompileProvider().

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

    • Per un determinato tipo di build, quando imposti useProguard false, il plug-in ora usa R8 invece di ProGuard per ridurre e offuscare il codice della tua app Google Cloud. Per scoprire di più su R8, consulta questo post del blog dal blog degli sviluppatori Android.

    • Generazione più rapida delle classi R per i progetti di librerie: in precedenza, il plug-in Gradle di Android generava un file R.java per ogni dipendenza del progetto e poi compilava queste classi R insieme alle altre classi dell'app. Ora il plug-in genera un file JAR contenente direttamente la classe R compilata della tua app, senza dover prima creare classi R.java intermedie. Questo l'ottimizzazione può migliorare significativamente le prestazioni delle build per i progetti che includere molti progetti secondari e dipendenze della libreria e migliorare l'indicizzazione la velocità in Android Studio.

    • Durante lo sviluppo di un Android App Bundle, gli APK generati l'app bundle che ha come target Android 6.0 (livello API 23) o versioni successive ora include le versioni non compresse delle librerie native per impostazione predefinita. Questa ottimizzazione evita il bisogno che il dispositivo faccia una copia della libreria e, di conseguenza, riduce le dimensioni su disco della tua app. Se preferisci disattivare questa ottimizzazione, aggiungi quanto segue al tuo file gradle.properties:

      android.bundle.enableUncompressedNativeLibs = false
              
    • Il plug-in applica la versione minima di alcuni plug-in di terze parti.

    • Sincronizzazione del progetto con una variante singola: Sincronizzazione del progetto con la configurazione di compilazione è un passaggio importante per permettere ad Android Studio a capire com'è strutturato il tuo progetto. Tuttavia, questo processo può essere richiede molto tempo per i progetti di grandi dimensioni. Se il progetto utilizza più varianti di compilazione, 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 Android Gradle Plugin 3.3.0 o versioni successive. Quando soddisfi questi requisiti, IDE ti chiede di abilitare questa ottimizzazione quando sincronizzi il progetto. La l'ottimizzazione è abilitata per impostazione predefinita anche nei nuovi progetti.

      Per attivare manualmente questa ottimizzazione, fai clic su File > Impostazioni > Sperimentale &gt; Gradle (Android Studio > Preferenze > Sperimentale > Gradle su 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 ha un certo supporto per Kotlin. Quando attivi l'ottimizzazione per i progetti con contenuti Kotlin, la sincronizzazione di Gradle ricorre all'utilizzo interno delle varianti complete.

    • Download automatico dei pacchetti SDK mancanti. Questa funzionalità ha è stato esteso per supportare NDK. Per saperne di più, leggi Download automatico mancante pacchetti con Gradle.

    Correzioni di bug

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

      • Il processo di compilazione che chiama android.support.v8.renderscript.RenderScript anziché la versione AndroidX, nonostante Jetifier sia attivo
      • Conflitti dovuti a androidx-rs.jar, incluso annotation.AnyRes incluso in modo statico
      • Quando utilizzi RenderScript, non devi più impostare manualmente la versione di Build Tools nei file build.gradle

    3.2.0 (settembre 2018)

    Questa versione del plug-in Android richiede i seguenti requisiti:

    3.2.1 (ottobre 2018)

    Con questo aggiornamento, non è più necessario specificare una versione per gli strumenti di compilazione SDK. Per impostazione predefinita, il plug-in Android per Gradle ora utilizza la versione 28.0.3.

    Nuove funzionalità

    • Supporto per la creazione di Android App Bundle: l'app bundle è un nuovo formato di caricamento che include tutto il codice e le risorse compilati della tua app, posticipando la generazione e la firma dell'APK al Google Play Store. Non devi più creare, firmare e gestire più APK e gli utenti ottengono download più piccoli ottimizzati per il loro dispositivo. Per saperne di più, leggi Informazioni su Android App Bundle.

    • Supporto per velocità di build incrementali migliorate quando si utilizzano i processori di annotazione: La AnnotationProcessorOptions La tecnologia DSL ora si estende a CommandLineArgumentProvider, che consente a te o all'autore del processore di annotazioni di annotare argomenti per il processore utilizzando annotazioni incrementali sul tipo di proprietà della build. L'uso di queste annotazioni migliora la correttezza e il rendimento dei build pulite incrementali e memorizzate nella cache. Per saperne di più, leggi Passare argomenti ai processori di annotazione.

    • Strumento di migrazione per AndroidX: quando si utilizza il plug-in Android per Gradle 3.2.0 con Android 3.2 e versioni successive, puoi eseguire la migrazione dei server Maven locali e per usare le nuove librerie AndroidX selezionando Refactor > Esegui la migrazione ad AndroidX dalla barra dei menu. L'uso di questo strumento di migrazione imposta anche i seguenti flag per true nel tuo file gradle.properties:

      • android.useAndroidX: se impostato su true, il plug-in Android utilizza la classe libreria AndroidX appropriata anziché una libreria di supporto. Quando questo flag non è 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 a riscrivere i propri file binari. Se questo flag non viene specificato, il plug-in imposta e impostarlo su false per impostazione predefinita. Puoi impostare il flag su true solo mentre Anche android.useAndroidX è impostato su true, altrimenti ricevi un errore di generazione.

        Per scoprire di più, leggi la panoramica di AndroidX.

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

              android.enableR8 = true
              
              android.enableR8 = true
              

    Cambiamenti del comportamento

    • Il desugaring con D8 è ora abilitato per impostazione predefinita.

    • AAPT2 si trova ora nel repository Maven di Google. Per utilizzare AAPT2, assicurati di presenti la dipendenza google() in 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()
                  }
                
    • La funzionalità multidex nativa è ora abilitata per impostazione predefinita. Versioni precedenti di Android Studio multidex nativo abilitato durante il deployment della versione di debug di un'app in una Dispositivo con livello API Android 21 o superiore. Sia che tu stia eseguendo 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 superiore.

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

    • Il plug-in per il modulo delle funzionalità,com.android.feature, ora applica in modo forzato l'utilizzo solo di lettere, numeri e trattini bassi quando specifica il nome di un modulo. Ad esempio, se il nome del modulo della funzionalità include trattini, viene visualizzato un errore di compilazione. Questo comportamento corrisponde a quello del plug-in della funzionalità dinamica.

    Correzioni di bug

    • JavaCompile ora è memorizzabile nella cache nei progetti con il binding dei dati. (Issue #69243050)
    • Migliore evitare la compilazione per i moduli di libreria con associazione di dati. (Problema n. 77539932)
    • Ora puoi riattivare configure-on-demand se lo hai disattivato nelle versioni precedenti a causa di alcuni errori di compilazione imprevedibili. (Problema n. 77910727)

    3.1.0 (marzo 2018)

    Questa versione del plug-in Android richiede quanto segue:

    • Gradle 4.4 o versioni successive.

      Per saperne di più, leggi la sezione sull'aggiornamento di Gradle.

    • Strumenti di creazione 27.0.3 o versioni successive.

      Tieni presente che non devi più specificare una versione per la build utilizzando la proprietà android.buildToolsVersion, utilizza la versione minima richiesta per impostazione predefinita.

    Nuovo compilatore DEX, D8

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

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

          android.enableD8=false
        

    Per i progetti che utilizza le funzionalità del linguaggio Java 8, la deduplicazione incrementale è abilitata per impostazione predefinita. Puoi disattivarla specificando quanto segue nel file gradle.properties del progetto:

          android.enableIncrementalDesugaring=false.
        

    Visualizza l'anteprima per gli utenti:se utilizzi già una versione di anteprima di D8, tieni presente che che ora compila sulla base delle librerie incluse nel Strumenti di creazione SDK, non JDK. Pertanto, se accedi ad API esistenti nel JDK, ma non nelle librerie degli strumenti di compilazione dell'SDK, viene visualizzato un errore di compilazione.

    Modifiche al comportamento

    • Quando crei più APK ognuno con un ABI diverso, per impostazione predefinita non vengono più generati APK per i seguenti ABI: mips, mips64 e armeabi.

      Se vuoi creare APK che abbiano come target queste ABI, devi usare NDK r16b o inferiore e specifica le ABI nel file build.gradle, come illustrato di seguito:

                splits {
                    abi {
                        include 'armeabi', 'mips', 'mips64'
                        ...
                    }
                }
              
                splits {
                    abi {
                        include("armeabi", "mips", "mips64")
                        ...
                    }
                }
              
    • La configurazione del plug-in Android Cache ora rimuove le voci dalla cache che risalgono a più di 30 giorni fa.

    • Passaggio di "auto" a resConfig non sceglie più automaticamente risorse stringa da pacchettizzare nell'APK. Se continui a usare "auto", il pacchetto plug-in include tutte le stringhe le risorse fornite dall'app e dalle sue dipendenze. Dovresti quindi specifica tutte le impostazioni internazionali che il plug-in deve pacchettizzare nel tuo APK.

    • Poiché i moduli locali non possono dipendere dall'APK di test della tua app, l'aggiunta delle dipendenze ai test instrumentati utilizzando Configurazione androidTestApi, anziché androidTestImplementation, fa sì che Gradle emetta il token 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

    • Corregge un problema per cui Android Studio non riconosceva correttamente e dipendenze nelle build composte.
    • Corregge un problema per cui si riceve un errore di sincronizzazione del progetto durante il caricamento Plug-in Android più volte in un'unica build, ad esempio quando più I sottoprogetti includono ciascuno il plug-in Android nel proprio buildscript classpath.

    3.0.0 (ottobre 2017)

    Il plug-in Android per 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 del rendimento simili ai seguenti:

    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 Circa 9 secondi ~2,5 s
    Modifica Java di una riga (modifica di implementazione) ~2 min 15 s 29 sec circa ~6,4 s

    Alcune di queste modifiche interrompono le build esistenti. Dovresti quindi prendere in considerazione il 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 compilazione utilizzando Gradle Profiler.

    Questa versione del plug-in Android richiede i seguenti requisiti:

    • Livello 4.1 o superiore. Per saperne di più, leggi la sezione sull'aggiornamento di Gradle.
    • Strumenti di Build 26.0.2 o superiore. Con questo aggiornamento, non è più necessario specificare una versione gli strumenti di creazione: per impostazione predefinita il plug-in utilizza la versione minima richiesta. Ora puoi rimuovere la proprietà android.buildToolsVersion.

    3.0.1 (novembre 2017)

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

    Ottimizzazioni

    • Migliore parallelismo per i progetti multimodulo grazie a una un grafico dell'attività.
    • Quando apporti modifiche alla dipendenza, Gradle esegue build più velocemente, di ricompilare i moduli che non hanno accesso all'API della dipendenza. Dovresti limitare le dipendenze che divulgano le loro API ad altri moduli utilizzando Nuove configurazioni delle dipendenze di Gradle: implementation, api, compileOnly e runtimeOnly.
    • Velocità di compilazione incrementale più rapida grazie al dexing per classe. Ogni corso ora compilate in file DEX separati e solo le classi che sono vengono dexizzati. Dovresti anche aspettarti velocità di compilazione migliorate per le app che impostano minSdkVersion su 20 o meno e utilizzano multi-dex legacy.
    • Velocità di creazione migliorate grazie all'ottimizzazione di determinate attività per l'utilizzo di output memorizzati nella cache. Per trarre vantaggio da questa ottimizzazione, è necessario innanzitutto abilita la cache di build Gradle.
    • È stata migliorata l'elaborazione incrementale delle risorse grazie a AAPT2, che ora è sono abilitate per impostazione predefinita. Se riscontri problemi durante l'utilizzo di AAPT2, segnala un bug. Puoi anche disattiva AAPT2 impostando android.enableAapt2=false nel tuo gradle.properties e riavviare il daemon Gradle che esegue ./gradlew --stop dalla riga di comando.

    Nuove funzionalità

    • Dipendenza sensibile alle varianti dei modelli. Quando si crea una determinata variante di un modulo, il plug-in ora abbina automaticamente le varianti delle dipendenze dei moduli delle librerie locali del modulo che stai creando.
    • Include un nuovo plug-in del modulo di funzionalità per supportare Android Instant Apps e l'SDK Android Instant Apps (che puoi scaricare utilizzando SDK Manager). Per scoprire di più sulla creazione di moduli di funzionalità con il nuovo plug-in, consulta Struttura di un'app istantanea con più funzionalità.
    • Supporto integrato per l'utilizzo di determinate funzionalità del linguaggio Java 8 e delle librerie Java 8. L'app Jack è ora deprecata e non è più obbligatoria dovrebbe prima disabilitare Jack per utilizzare il supporto Java 8 migliorato integrato nella Toolchain predefinita. Per ulteriori informazioni, consulta Utilizzare le funzionalità del linguaggio Java 8.
    • Aggiunto il supporto per l'esecuzione di test con Android Test Orchestrator, che ti consente di eseguire tutti i test della tua app all'interno di la propria invocazione di strumentazione. Poiché ogni test viene eseguito in modo indipendente Istanza di strumentazione: gli stati condivisi tra i test non si accumulano sulla CPU o sulla memoria del dispositivo. E, anche se un test si arresta in modo anomalo, 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 sul dispositivo ed è il metodo standard per eseguire i test.

      Groovy

              android {
                testOptions {
                  execution 'ANDROID_TEST_ORCHESTRATOR'
                }
              }
              

      Kotlin

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

      Alla moda

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

      Kotlin

              dependencies {
                androidTestUtil("com.android.support.test:orchestrator:1.0.0")
                ...
              }
              
    • Elemento testOptions.unitTests.includeAndroidResources aggiunto a supportano i test delle unità di assistenza che richiedono risorse Android, ad esempio: Roboelettrico: Se imposti questa proprietà su true, il plug-in esegue l'unione di risorse, asset e manifest prima di eseguire i test di unità. I test possono quindi esaminare com/android/tools/test_config.properties nel percorso di classe per le seguenti chiavi:

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

        Nota:per i moduli della raccolta, gli asset uniti non contengono asset di dipendenze (vedi problema #65550419).

      • android_merged_manifest: il percorso assoluto del file manifest unito.

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

      • android_custom_package: il nome del pacchetto l'ultima classe R. Se modifichi l'ID applicazione in modo dinamico, il nome del pacchetto potrebbe non corrispondere all'attributo package in 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 Android SDK per app istantanee 1.1 e versioni successive.
    • Ora puoi modificare la directory di output per il progetto di compilazione nativa esterna, come mostrato di seguito:

      Groovy

              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 compilare progetti nativi da Android Studio.
    • La nuova configurazione delle dipendenze di lintChecks ti consente di: creare un JAR che definisca le regole di lint personalizzate e pacchettizzarlo nel file AAR e progetti APK.

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

      Alla moda

              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"))
              }
              

    Cambiamenti del comportamento

    • Il plug-in Android 3.0.0 rimuove alcune API e la compilazione verrà interrotta se le utilizzi. Ad esempio, non puoi più utilizzare l'API Variants per accedere agli oggetti outputFile() o utilizzare processManifest.manifestOutputFile() per recuperare il file manifest per ogni variante. Per scoprire di più, consulta Modifiche all'API.
    • Non devi più specificare una versione per gli strumenti di creazione (quindi ora può rimuovere la proprietà android.buildToolsVersion). Per impostazione predefinita, il plug-in utilizza automaticamente la versione minima richiesta degli strumenti di compilazione per la versione del plug-in Android in uso.
    • Ora puoi attivare/disattivare il crunching dei file PNG in buildTypes come mostrato di seguito. Il crunching PNG è abilitato per impostazione predefinita per tutte le build tranne le build di debug, perché aumenta i tempi di compilazione includere molti file PNG. Pertanto, per migliorare i tempi di compilazione per altri tipi di build, devi disattivare la compressione PNG o convertire le immagini in WebP.

      Groovy

            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
                }
              }
            }
            
    • Ora il plug-in Android compila automaticamente i target eseguibili configurati nei progetti CMake esterni.
    • Ora devi aggiungi annotazione processori al processore classpath utilizzando Configurazione delle dipendenze di annotationProcessor.
    • L'utilizzo dell'ndkCompile, deprecato, è ora più limitato. Ti consigliamo di eseguire la migrazione a CMake o ndk-build per compilare il codice nativo che vuoi includere nel tuo APK. Per saperne di più, leggi Esegui la migrazione da ndkcompile.

    3.0.0 (ottobre 2017)

    Il plug-in Android per Gradle 3.0.0 include una serie di modifiche che mirano a per 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 del rendimento simili ai seguenti:

    Versione del plug-in Android + versione di 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 Circa 9 secondi ~2,5 s
    Modifica Java di una riga (modifica di implementazione) ~2 min 15 s 29 sec circa ~6,4 s

    Alcune di queste modifiche non sono compatibili con le build esistenti. Dovresti quindi prendere in considerazione il eseguire la migrazione del progetto prima di utilizzare il nuovo plug-in.

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

    Questa versione del plug-in Android richiede i seguenti requisiti:

    • Gradle 4.1 o versioni successive. Per saperne di più, leggi la sezione su aggiornando Gradle.
    • Strumenti di Build 26.0.2 o superiore. Con questo aggiornamento, non è più necessario specificare una versione gli strumenti di creazione: per impostazione predefinita il plug-in utilizza la versione minima richiesta. Ora puoi rimuovere la proprietà android.buildToolsVersion.

    3.0.1 (novembre 2017)

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

    Ottimizzazioni

    • Migliore parallelismo per i progetti multimodulo grazie a una un grafico dell'attività.
    • Quando apporti modifiche alla dipendenza, Gradle esegue build più velocemente, di ricompilare i moduli che non hanno accesso all'API della dipendenza. Dovresti limitare le dipendenze che divulgano le loro API ad altri moduli utilizzando Nuove configurazioni delle dipendenze di Gradle: implementation, api, compileOnly e runtimeOnly.
    • Velocità di compilazione incrementale più rapida grazie al dexing per classe. Ora ogni classe viene compilata in file DEX separati e solo le classi modificate vengono sottoposte nuovamente a decompilazione. Dovresti anche aspettarti velocità di compilazione migliorate per le app che impostano minSdkVersion su 20 o meno e utilizzano multi-dex legacy.
    • Velocità di creazione migliorate grazie all'ottimizzazione di determinate attività per l'utilizzo di output memorizzati nella cache. Per usufruire di questa ottimizzazione, devi prima attivare la cache di compilazione di Gradle.
    • È stata migliorata l'elaborazione incrementale delle risorse grazie a AAPT2, che ora è sono abilitate per impostazione predefinita. Se riscontri problemi durante l'utilizzo di AAPT2, segnala un bug. Puoi anche disattivare AAPT2 impostando android.enableAapt2=false nel gradle.properties file e riavviando il daemon Gradle eseguendo ./gradlew --stop dalla riga di comando.

    Nuove funzionalità

    • Dipendenza sensibile alle varianti dei modelli. Quando si crea una determinata variante di un modulo, il plug-in ora abbina automaticamente le varianti delle dipendenze dei moduli delle librerie locali del modulo che stai creando.
    • Include un nuovo plug-in del modulo delle funzionalità per supportare App istantanee Android e SDK per app istantanee Android (che puoi scaricare) utilizzando SDK Manager). Per ulteriori informazioni sulla creazione di moduli di 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 Java 8 librerie. L'app Jack è ora deprecata e non è più obbligatoria dovrebbe prima disabilitare Jack per utilizzare il supporto Java 8 migliorato integrato nella Toolchain predefinita. Per ulteriori informazioni, consulta Utilizza le funzionalità del linguaggio Java 8.
    • È stato aggiunto il supporto per l'esecuzione di test con Android Test Orchestrator, che ti consente di eseguire ogni test della tua app all'interno della propria chiamata di Instrumentation. Poiché ogni test viene eseguito nella propria istanza di instrumentation, qualsiasi stato condiviso tra i test non si accumula sulla CPU o sulla memoria del dispositivo. E, anche se un test si arresta in modo anomalo, 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, è impostata su HOST, pertanto la proprietà on-device viene disattivata dell'orchestrazione ed è il metodo standard per l'esecuzione dei test.

      Groovy

              android {
                testOptions {
                  execution 'ANDROID_TEST_ORCHESTRATOR'
                }
              }
              

      Kotlin

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

      Alla moda

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

      Kotlin

              dependencies {
                androidTestUtil("com.android.support.test:orchestrator:1.0.0")
                ...
              }
              
    • Elemento testOptions.unitTests.includeAndroidResources aggiunto a supportano i test delle unità di assistenza che richiedono risorse Android, ad esempio: Roboelettrico: Quando imposti questa opzione, alla proprietà true, il plug-in esegue risorsa, asset dell'unione del manifest prima di eseguire i test delle unità. I test possono quindi esaminare com/android/tools/test_config.properties nel percorso di classe per le seguenti chiavi:

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

        Nota:per i moduli della raccolta, gli asset uniti non contengono asset di dipendenze (vedi problema #65550419).

      • android_merged_manifest: il percorso assoluto alla file manifest unito.

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

      • android_custom_package: il nome del pacchetto l'ultima classe R. Se modifichi dinamicamente l'ID applicazione, questo nome del pacchetto potrebbe non corrispondere all'attributo package nel manifest dell'app.

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

      Groovy

              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 compilare progetti nativi da Android Studio.
    • La nuova configurazione delle dipendenze di lintChecks ti consente di: creare un JAR che definisca le regole di lint personalizzate e pacchettizzarlo nel file AAR e progetti APK.

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

      Alla moda

              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"))
              }
              

    Cambiamenti del comportamento

    • Il plug-in Android 3.0.0 rimuove alcune API e la compilazione verrà interrotta se le utilizzi. Ad esempio, non puoi più utilizzare l'API Variants per accedi a outputFile() oggetti o usa processManifest.manifestOutputFile() per recuperare il file manifest per ogni variante. Per saperne di più, leggi Modifiche alle API.
    • Non è più necessario specificare una versione per gli strumenti di compilazione (quindi ora puoi rimuovere la proprietà android.buildToolsVersion). Per impostazione predefinita, il plug-in utilizza automaticamente la versione minima richiesta degli strumenti di compilazione per la versione del plug-in Android in uso.
    • Ora puoi attivare/disattivare il crunching dei file PNG in buildTypes come mostrato di seguito. L'ottimizzazione PNG è abilitata per impostazione predefinita per tutte le build tranne le build di debug perché aumenta i tempi di compilazione per i progetti che includono molti file PNG. Per migliorare i tempi di compilazione per altri tipi di build, devi disattivare il crunching dei file PNG converti le tue immagini a WebP.

      Alla moda

            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 destinazioni eseguibili che che configuri nei progetti CMake esterni.
    • Ora devi aggiungi annotazione processori al processore classpath utilizzando Configurazione delle dipendenze di annotationProcessor.
    • L'utilizzo di ndkCompile, che è stato ritirato, ora è più limitato. Ti consigliamo di eseguire la migrazione a CMake o ndk-build per compilare il codice nativo che vuoi includere nel tuo APK. Per saperne di più, leggi Esegui la migrazione da ndkcompile.

    2.3.0 (febbraio 2017)

    2.3.3 (giugno 2017)

    Si tratta di un aggiornamento di minore entità che aggiunge compatibilità con Android Studio 2.3.3.

    2.3.2 (maggio 2017)

    Si tratta di un aggiornamento di minore entità che aggiunge compatibilità con Android Studio 2.3.2.

    2.3.1 (aprile 2017)

    Si tratta di un aggiornamento minore al plug-in Android 2.3.0 che risolve un problema in cui alcuni dispositivi Android fisici non funzionavano correttamente Istantanea esecuzione (vedi 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.
    • Cache di compilazione: memorizza determinate uscite generate dal plug-in Android durante la compilazione del progetto (ad esempio AAR non pacchettizzate e dipendenze remote pre-dexed). Le build pulite 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, anziché ricrearli. Utilizzo di progetti con plug-in Android 2.3.0 e versioni successive per impostazione predefinita. Per saperne di più, leggi Migliora la velocità della 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 maggiori informazioni vedi i dettagli. Note di rilascio di Gradle.
    • Utilizzando i externalNativeBuild {} DSL, Gradle ora ti consente collegarsi alle fonti native e compilare librerie native usando CMake o ndk-build. Dopo aver creato le tue librerie native, Gradle e li pacchettizza nell'APK. Per scoprire di più sull'utilizzo di CMake e ndk-build con Gradle, leggi l'articolo Aggiungere codice C e C++ al progetto.
    • Quando esegui un compilazione dalla riga di comando, ora Gradle tenta di scaricare automaticamente eventuali componenti o aggiornamenti mancanti dell'SDK di cui dipende il tuo progetto. Per scoprire di più, leggi l'articolo Download automatico pacchetti mancanti con Gradle.
    • Una nuova funzionalità di memorizzazione nella cache sperimentale consente a Gradle di accelerare i tempi di compilazione pre-dexing, archiviando e riutilizzando le versioni pre-dexing delle librerie. Per scoprire di più sull'utilizzo di questa funzionalità sperimentale, leggi la sezione Builder Cache.
    • Migliora le prestazioni della build adottando un nuovo pacchetto predefinito che gestisce zip, firma e zipaligning in un'unica attività. Tu possono tornare a usare i vecchi strumenti di pacchettizzazione android.useOldPackaging=true al tuo gradle.properties file. Quando utilizzi il nuovo strumento di imballaggio, l'attività zipalignDebug non è disponibile. Tuttavia, puoi crearne uno tu stesso createZipAlignTask(String taskName, File inputFile, File outputFile).
    • La firma dell'APK ora utilizza lo schema di firma dell'APK v2, oltre alla firma JAR tradizionale. Tutte le piattaforme Android accettano i APK risultanti. Qualsiasi modifica a questi APK dopo la firma ne invalida la le firme v2 e impedisce l'installazione su un dispositivo. Per disattivare questa funzione: aggiungi quanto segue al file build.gradle a livello di modulo:

      Groovy

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

      Kotlin

      android {
        ...
        signingConfigs {
          create("config") {
            ...
            v2SigningEnabled = false
          }
        }
      }
            
    • Per le build multidex, ora puoi utilizzare le regole ProGuard per determinare che Gradle dovrebbe compilare nel file DEX principale della tua app. Poiché il sistema Android carica per primo 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 tuo DEX principale, passa il percorso del file di configurazione a Gradle utilizzando buildTypes.multiDexKeepProguard. L'utilizzo di questa DSL è diverso dall'utilizzo buildTypes.proguardFiles, che fornisce funzionalità 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. Se imposti il flag su false nel campo <application> del file manifest dell'app, i pacchetti Gradle non compressi e delle tue librerie native al tuo APK. Questo impedisce PackageManager di copiare le librerie native dall'APK agli oggetti durante l'installazione e ha il vantaggio aggiuntivo di aggiornamenti delta dell'app più piccoli.
    • Ora puoi specificare versionNameSuffix e applicationIdSuffix per i gusti dei prodotti. (Problema 59614)
    Modifiche:
    • getDefaultProguardFile ora restituisce il ProGuard predefinito forniti dal plug-in Android per Gradle e non più utilizza quelli dell'SDK Android.
    • Prestazioni e funzionalità migliorate del compilatore Jack:
      • Jack ora supporta la copertura dei test Jacoco quando viene impostato testCoverageEnabled su true.
      • Supporto migliorato per i processori di annotazione. Annotazione processori sul tuo classpath, ad esempio compile vengono applicate automaticamente alla tua build. Puoi specificare anche un processore di annotazione nella build e utilizzando i comandi javaCompileOptions.annotationProcessorOptions {} DSL nel tuo file build.gradle a livello di modulo:

        Groovy

        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 durante la compilazione ma non includerla nell'APK, usa il annotationProcessor ambito delle dipendenze:

        Alla moda

        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 di parametri impostabili, esegui il comando riportato di seguito la riga di comando:

        java -jar /build-tools/jack.jar --help-properties
        
      • Per impostazione predefinita, se la dimensione dell'heap del daemon Gradle è di almeno 1,5 GB, ora Jack viene eseguito nello stesso processo di Gradle. Per regolare la dimensione dell'heap del daemon, aggiungi quanto segue al 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 e versioni successive. Gradle 2.14.1 include miglioramenti delle prestazioni, nuove funzionalità e un'importante correzione di sicurezza. Per ulteriori dettagli, consulta Note di rilascio di Gradle.

    Dipendenze:
    Novità:
    • Aggiunto il supporto per le funzionalità dei linguaggi N Developer Preview, JDK 8 e Java 8 utilizzando il Jack la toolchain. Per ulteriori informazioni, leggi la guida N Preview.

      Nota: al momento Esecuzione immediata non funziona con Jack e verrà disattivata durante l'utilizzo della nuova toolchain. Devi usare Jack solo se stai sviluppando per l'Anteprima N e vuoi utilizzare le funzionalità del linguaggio Java 8 supportate.

    • Aggiunto il supporto predefinito per la compilazione Java incrementale per ridurre durante la compilazione. A questo scopo viene ricompilato parti dell'origine che sono cambiate o devono essere ricompilate. Per disattivare questa funzionalità, aggiungi il seguente codice alle File build.gradle:

      Alla moda

      android {
        ...
        compileOptions {
          incremental false
        }
      }

      Kotlin

      android {
        ...
        compileOptions {
          incremental = false
        }
      }
    • Aggiunto il supporto per il dexing-in-process che esegue il dexing all'interno della build piuttosto che in processi VM esterni separati. In questo modo, non solo le build incrementali vengono eseguite più velocemente, ma anche le build complete. La funzionalità è abilitato per impostazione predefinita per i progetti che hanno impostato l'heap massimo del daemon Gradle fino ad almeno 2048 MB. Puoi farlo includendo quanto segue nei file gradle.properties del progetto:

      ```nessuno 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 progetto:

      ```nessuno org.gradle.jvmargs = -Xmx3072m '``

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

      Alla moda

      android {
        ...
        dexOptions {
            dexInProcess false
        }
      }

      Kotlin

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

    2.0.0 (aprile 2016)

    Dipendenze:
    Novità:
    • Attiva l'esecuzione istantanea di supportando l'inserimento di bytecode ed effettuando il push di aggiornamenti di codice e risorse sull'emulatore o su un dispositivo fisico.
    • Aggiunto il supporto per build incrementali, anche quando l'app non è in esecuzione. I tempi di compilazione completi vengono migliorati trasferendo modifiche incrementali tramite Android Debug Bridge per dispositivo connesso.
    • Aggiunti maxProcessCount per controllare quanti processi dex dei worker possono essere generate contemporaneamente. Il seguente codice, nel file build.gradle a livello di modulo, imposta il numero massimo di processi simultanei su 4:

      Groovy

      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:
      

      Alla moda

      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:
    • Quando minSdkVersion è impostato su 18 o versioni successive, la firma dell'APK utilizza 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 in entrambi le configurazioni di test e di compilazione principali.

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

    Dipendenze:
    • Gradle 2.2.1 o versioni successive.
    • Build Tools 21.1.1 o versioni successive.
    Note generali:
    • Integrazione del plug-in Data Binding nel plug-in Android per Gradle. Per abilitarla, aggiungi il seguente codice a ogni file build.gradle per progetto che utilizza 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 classi personalizzate manipolazioni offrendo una maggiore flessibilità. Per inserire un trasformare in una build, creare una nuova classe implementando una delle Transform interfacce e la registra con android.registerTransform(theTransform) o android.registerTransform(theTransform, dependencies). Non è necessario collegare le attività. Tieni presente quanto segue in merito all'API Transform:
      • Una trasformazione può essere applicata a uno o più dei seguenti elementi: il progetto corrente, i sottoprogetti e le librerie esterne.
      • Una trasformazione deve essere registrata a livello globale in modo da applicarla a tutte le varianti.
      • L'elaborazione del codice interno, tramite la Java Code Coverage Library (JaCoCo), ProGuard e MultiDex, ora utilizza l'API Transform. Tuttavia, il Java Android Compiler Kit (Jack) non utilizza questa API: viene utilizzato solo il percorso del codice javac/dx.
      • Gradle esegue le trasformazioni nel seguente ordine: JaCoCo, plug-in di terze parti, ProGuard. L'ordine di esecuzione dei 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.
    • È stato ritirato il getter dex dalla classe ApplicationVariant. Non puoi più accedere all'attività Dex tramite l'API delle varianti perché ora viene eseguita tramite una trasformazione. C'è al momento non c'è una sostituzione per il controllo del processo dex.
    • È stato corretto il supporto incrementale degli asset.
    • È stato migliorato il supporto di MultiDex rendendolo disponibile per i progetti di test e ora i test hanno automaticamente la dipendenza com.android.support:multidex-instrumentation.
    • È stata aggiunta la possibilità di eseguire correttamente un errore di una build Gradle e di segnalare la causa dell'errore sottostante quando la build Gradle richiama attività asincrone e si verifica un errore nel worker e il processo di sviluppo.
    • È stato aggiunto il supporto per la configurazione di un'ABI (Application Binary Interface) specifica nelle varianti che contengono più ABI.
    • È stato aggiunto il supporto per un elenco di numeri di serie del dispositivo separati da virgola per la variabile di ambiente ANDROID_SERIAL durante l'installazione o l'esecuzione dei test.
    • È stato corretto un errore di installazione sui dispositivi con Android 5.0 (livello API 20) e versioni successive quando il nome dell'APK contiene uno spazio.
    • Sono stati risolti diversi problemi relativi all'output degli errori AAPT (Android Asset Packaging Tool).
    • È stato aggiunto il supporto della strumentazione incrementale JaCoCo per velocizzare le build incrementali. La Il plug-in Android per Gradle ora richiama direttamente lo strumento JaCoCo. Per forzare una versione più recente dell'instrumentatore JaCoCo, devi aggiungerla come dipendenza dello script di compilazione.
    • È stato corretto il supporto di JaCoCo in modo che ignori i file che non sono classi.
    • È stato aggiunto il supporto drawable vettoriale per la generazione di PNG in fase di creazione per garantire la compatibilità con le versioni precedenti. Il plug-in Android per Gradle genera PNG per ogni drawable vettoriale trovato in una risorsa directory che non specifica una versione API o una specifica Attributo android:minSdkVersion pari o inferiore a 20 in Elemento <uses-sdk> nel file manifest dell'app. Puoi impostare le densità PNG per utilizzando la proprietà generatedDensities in defaultConfig productFlavor sezioni di un file build.gradle.
    • È stata aggiunta la condivisione di android.jar simulabile, che il plug-in genera solo una volta e utilizza per i test di unità. Più moduli, ad esempio app e lib, ora condividilo. Elimina $rootDir/build per rigenerarlo.
    • È stata modificata l'elaborazione delle risorse Java in modo che avvenga 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.
    • È stato risolto un 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 raccolta sperimentale.

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

    Dipendenze:
    • Gradle 2.2.1 o versioni successive.
    • Build Tools 21.1.1 o versioni successive.
    Note generali:
    • Correzione dell'attività ZipAllinea utilizza l'output dell'attività precedente quando utilizzi un nome file personalizzato.
    • Correzione Renderscript pacchettizzazione con l'NDK.
    • È stato mantenuto il supporto per l'attività di compilazione createDebugCoverageReport.
    • È stato corretto il supporto dell'uso personalizzato di archiveBaseName nel file di build build.gradle.
    • È stato corretto Invalid ResourceType Avviso lint causato dal metodo parametro ricerca annotazioni durante l'esecuzione lint al di fuori di Android Studio.

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

    Dipendenze:
    • Gradle 2.2.1 o versioni successive.
    • Build Tools 21.1.1 o versioni successive.
    Note generali:
    • Aggiunto il supporto per com.android.build.threadPoolSize per controllare la dimensione del pool di thread delle attività Android da il file gradle.properties o la riga di comando. L'esempio seguente imposta questa proprietà su 4.

              
              -Pcom.android.build.threadPoolSize=4
              
            
    • Imposta il comportamento di compilazione predefinito in modo da escludere i file LICENSE e LICENSE.txt dagli APK. Per includere questi file in un APK, rimuovi questi file dal Proprietà packagingOptions.excludes nel file build.gradle. Ad esempio:
      android {
            packagingOptions.excludes = []
          }
            
      android {
            packagingOptions.excludes.clear()
          }
          
    • È stata aggiunta l'attività sourceSets per ispezionare l'insieme di tutti i set di origini disponibili.
    • Supporto avanzato per i test di unità per riconoscere le cartelle di origine con più varianti e varianti di build. Ad esempio, per testare un'app con più varianti flavor1 e flavorA con il tipo di compilazione Debug, i set di origine di test sono:
      • test
      • provaFlavor1
      • provaFlavorA
      • testFlavor1FlavorA
      • testFlavor1FlavorADebug

      Android Test ha già riconosciuto le cartelle di origine multi-versione.

    • È stato migliorato il supporto dei test di unità per:
      • Esegui javac su origini principali e di test, anche se useJack sia impostata su true nel file di build.
      • Riconosci correttamente le dipendenze per ogni tipo di build.
    • Aggiunto il supporto per specificare gli argomenti runner del test della strumentazione dalla riga di comando. Ad esempio:
      ./gradlew connectedCheck \
         -Pandroid.testInstrumentationRunnerArguments.size=medium \
         -Pandroid.testInstrumentationRunnerArguments.class=TestA,TestB
              
    • È stato aggiunto il supporto per parametri AAPT (Android Asset Packaging Tool) aggiuntivi arbitrari nel file build.gradle. Ad esempio:

      android {
          aaptOptions {
            additionalParameters "--custom_option", "value"
          }
      }
            
      android {
          aaptOptions {
            additionalParameters += listOf("--custom_option", "value")
          }
      }
            
    • È stato aggiunto il supporto per modulo APK di test come modulo di test separato, utilizzando Proprietà targetProjectPath e targetVariant per impostare l'APK percorso e variante target.

      Nota: un modulo APK di prova non supporta il prodotto e può avere come target una sola variante. Inoltre, Jacoco non è ancora supportato.

    • È stata aggiunta la convalida del nome della risorsa prima di unire le risorse.
    • Quando crei un pacchetto AAR (Android ARchive) per i moduli della libreria, non fornire un segnaposto @{applicationId} automatico nelle impostazioni di unione manifest. Utilizza invece un segnaposto diverso, ad esempio @{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 versioni successive.
    • 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 in classpath durante l'esecuzione dei test delle unità direttamente da Gradle.
      • Aggiunto il supporto delle dipendenze dei test delle unità per Android Archive (AAR) artefatti.
      • È stato aggiunto il supporto per la proprietà unitTestVariants in modo che le varianti del test delle unità possano essere manipolate utilizzando build.gradle file.
      • È stato aggiunto il blocco di codice unitTest.all in testOptions per configurare attività personalizzate per il test di unità. Il seguente codice campione mostra come aggiungere il test delle unità di configurazione usando 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 di enum e campi di istanza pubblica nella pacchetti del file mockable-android.jar.
      • Sono state corrette le dipendenze delle attività del progetto della libreria in modo che le classi di test si ricompilino dopo le modifiche.
    • È stata aggiunta la proprietà testProguardFile da applicare ProGuard durante la minimizzazione di una di test dell'APK.
    • La proprietà timeOut è stata aggiunta a adbOptions blocco di codice per impostare il tempo massimo di registrazione Schermata Android Debug Bridge registrazione in tempo reale.
    • È stato aggiunto il supporto per le risorse a 280 dpi.
    • Miglioramento delle prestazioni durante la valutazione del progetto.

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

    Dipendenze:
    • Gradle 2.2.1 o versioni successive.
    • Build Tools 21.1.1 o versioni successive.
    Note generali:
    • È stato risolto il problema relativo alle dipendenze duplicate di un'app di test che attivavano un errore di ProGuard.
    • L'implementazione di Fixed Comparator 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 versioni successive.
    • Build Tools 21.1.1 o versioni successive.
    Note generali:
    • Percorso normalizzato durante la creazione di un JAR fittizio per l'unità test.
    • È stata corretta l'impostazione archivesBaseName nel file build.gradle.
    • È stato corretto l'errore del segnaposto non risolto nell'unione dei manifest quando si crea un'applicazione di test delle librerie.

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

    Dipendenze:
    • Gradle 2.2.1 o versioni successive.
    • Build Tools 21.1.1 o versioni successive.
    Note generali:
    • Hai modificato le varianti di build in modo che solo le varianti che pacchettizzano un Trigger dell'app Wear Attività di creazione specifiche per Wear.
    • La modifica dei problemi relativi alle dipendenze in modo che non vada a buon fine in fase di build rispetto al momento del debug. Questo comportamento ti consente di eseguire attività (come le "dipendenze") per aiutare a risolvere il conflitto.
    • È stato corretto il metodo android.getBootClasspath() restituiscono un valore.

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

    Dipendenze:
    • Gradle 2.2.1 o versioni successive.
    • Build Tools 21.1.1 o versioni successive.
    Note generali:
    • Aggiunta del supporto per i nuovi test delle unità
      • Sono stati attivati test di unità da eseguire 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 i relativi tipi di prodotto.
      • Sono state aggiunte nuove cartelle di origine riconosciute come test di unità: src/test/java/, src/testDebug/java/, src/testMyFlavor/java/.
      • Sono state aggiunte nuove configurazioni nel file build.gradle per dichiarare dipendenze solo per i test, ad esempio testCompile 'junit:junit:4.11', testMyFlavorCompile 'some:library:1.0'.

        Nota: le dipendenze solo di test non sono attualmente compatibili con Jack (Java Android Compiler di Google).

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

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

      • Risoluzione delle dipendenze modificata per confrontare le dipendenze di un'app in test e dell'app di test. Se viene trovato un elemento con la stessa versione per entrambe le app, non è incluso nell'app di test e viene pacchettizzato solo con l'app in test. Se viene trovato un artefatto con una versione diversa per entrambe le app un errore della build.
    • Aggiunto il supporto per anyDpi risorsa qualificatore nell'unione delle risorse.
    • Miglioramento delle velocità di valutazione e sincronizzazione dell'IDE per i progetti con un gran numero di moduli Android.

    Android plugin for Gradle, revisione 1.0.1 (gennaio 2015)

    Dipendenze:
    • Gradle dalla versione 2.2.1 alla versione 2.3.x.

      Nota: questa versione di Android per Gradle non è compatibile con Gradle 2.4 e in alto.

    • Build Tools 21.1.1 o versione successiva.
    Note generali:
    • È stato risolto il problema relativo all'errore della build Gradle durante l'accesso al Modulo extractReleaseAnnotations. (Problema 81638).
    • È stato risolto il problema per cui Disable ha superato il Impostazione --no-optimize in Dalvik Executable (dex) in bytecode. (Issue 82662).
    • Sono stati risolti i problemi di unione dei manifest durante l'importazione di librerie con un targetSdkVersion inferiore a 16.
    • È stato risolto il problema di ordinamento della densità quando si utilizza Android Studio conJDK 8.

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

    Dipendenze:
    • Gradle dalla versione 2.2.1 alla versione 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 versione successiva.
    Note generali:
    • Release iniziale del plug-in.