Di seguito sono riportate le note di rilascio di Android Studio 3.6 e versioni precedenti e del plug-in Android Gradle 3.6.0 e versioni precedenti.
Versioni precedenti di Android Studio
3.6 (febbraio 2020)
Android Studio 3.6 è una release principale che include una serie di nuove funzionalità e miglioramenti.
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 delle correzioni di bug più importanti, leggi il post correlato nel blog degli aggiornamenti delle release.
3.6.2 (marzo 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.
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 a diversi strumenti di progettazione, tra cui Layout Editor e Resource Manager.
Visualizzazione divisa e zoom negli editor di progettazione
Questa release include i seguenti aggiornamenti agli editor di progettazione visiva:
-
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 per passare da un'opzione di visualizzazione all'altra:
- Per attivare la visualizzazione divisa, fai clic sull'icona Dividi .
- Per attivare la visualizzazione del codice sorgente XML, fai clic sull'icona Origine .
- Per attivare la visualizzazione di progettazione, fai clic sull'icona Design .
-
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ù, vedi Creare un'interfaccia utente con l'editor di layout.
Scheda Risorsa selettore colori
Per aiutarti ad aggiornare rapidamente i valori delle risorse di colore nella tua app quando utilizzi il selettore di colori nel codice XML o gli strumenti di progettazione, ora l'IDE compila automaticamente i valori delle risorse di colore.
Resource Manager
Resource Manager contiene i seguenti aggiornamenti:
- Resource Manager ora supporta la maggior parte dei tipi di risorse.
- Quando cerchi una risorsa, Resource Manager ora mostra i risultati di tutti i moduli del progetto. In precedenza, le ricerche restituivano risultati solo dal modulo selezionato.
- Il pulsante di filtro consente di visualizzare le risorse dei moduli dipendenti locali, delle librerie esterne e del framework Android. Puoi anche utilizzare il filtro per mostrare gli attributi del tema.
- Ora puoi rinominare le risorse durante la procedura di importazione facendo clic all'interno della casella di testo sopra la risorsa.
Per saperne di più, consulta Gestire le risorse dell'interfaccia utente dell'app con Resource Manager.
Aggiornamenti al plug-in Android per Gradle
La versione più recente del plug-in Android per Gradle include molti aggiornamenti, tra cui ottimizzazioni per la velocità di compilazione, il supporto del plug-in di pubblicazione Maven e il supporto di View Binding. Per saperne di più, consulta le note di rilascio complete.
Visualizza associazione
La associazione delle visualizzazioni ti consente di scrivere più facilmente il codice che interagisce con le visualizzazioni generando una classe di associazione per ogni file di layout XML. 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 il binding delle visualizzazioni, devi utilizzare il plug-in Android Gradle 3.6.0 o versioni successive e includere quanto segue nel file build.gradle
di ogni modulo:
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, consulta Applicare le 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 il progetto di app come segue:
- Apri il riquadro Progetto selezionando Visualizza > Finestre degli strumenti > Progetto nella barra dei menu.
- Fai clic con il tasto destro del mouse sul modulo di base, in genere denominato "app", e seleziona Ristruttura > Attiva il supporto delle app istantanee.
- Nella finestra di dialogo visualizzata, seleziona il modulo di base dal menu a discesa.
- 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ù, consulta Panoramica di Google Play Instant.
Deobfuscare il bytecode di classi e metodi in APK Analyzer
Quando utilizzi APK Analyzer per esaminare i file DEX, puoi deoffuscare il bytecode di classi e metodi come segue:
- Seleziona Build > Analizza APK dalla barra dei menu.
- Nella finestra di dialogo visualizzata, vai all'APK che vuoi ispezionare e selezionatelo.
- Fai clic su Apri.
- In APK Analyzer, seleziona il file DEX che vuoi ispezionare.
- Nel visualizzatore di file DEX, carica il file di mapping ProGuard per l'APK che stai analizzando.
- Fai clic con il tasto destro del mouse sulla classe o sul metodo che vuoi ispezionare e seleziona Mostra bytecode.
Strumenti nativi
I seguenti aggiornamenti supportano lo sviluppo nativo (C/C++) in Android Studio.
Supporto di Kotlin
Le seguenti funzionalità NDK in Android Studio, precedentemente supportate in Java, sono ora supportate anche in Kotlin:
-
Vai da una dichiarazione JNI alla funzione di implementazione corrispondente in C/C++. Visualizza questa mappatura passando il mouse sopra l'indicatore dell'elemento C o C++ vicino al numero di riga nel file di codice sorgente gestito.
-
Crea automaticamente una funzione di implementazione stub per una dichiarazione JNI. Definisci prima la dichiarazione JNI, quindi digita "jni" o il nome del metodo nel file C/C++ da attivare.
-
Le funzioni di implementazione nativa inutilizzate sono evidenziate come avviso nel codice sorgente. Anche le dichiarazioni JNI con implementazioni mancanti vengono messe in evidenza come errori.
-
Quando rinomini (rifai il refactoring) una funzione di implementazione nativa, tutte le dichiarazioni JNI corrispondenti vengono aggiornate. Rinomina una dichiarazione JNI per aggiornare la funzione di implementazione nativa.
-
Controllo della firma per le implementazioni JNI con vincolo implicito.
Altri miglioramenti a JNI
L'editor di codice in Android Studio ora supporta un flusso di lavoro di sviluppo JNI più agevole, inclusi suggerimenti sui tipi migliorati, completamento automatico, ispezioni e refactoring del codice.
Ricaricamento dell'APK per le librerie native {:#3.6-reload-apk}
Non è più necessario creare un nuovo progetto quando l'APK nel progetto viene aggiornato al di fuori dell'IDE. Android Studio rileva le modifiche nell'APK e ti offre la possibilità di importarle di nuovo.
Allega origini APK solo Kotlin
Ora è possibile collegare origini APK esterne solo Kotlin quando esegui il profiling e il debug degli APK precompilati. Per saperne di più, consulta Collegare le origini Kotlin/Java.
Rilevamento di perdite in Memory Profiler
Quando analizzi un dump dell'heap in Memory Profiler, ora puoi filtrare i dati di profilazione
che Android Studio ritiene possano indicare perdite di memoria per le istanze Activity
e
Fragment
nella tua app.
I tipi di dati visualizzati dal filtro includono:
-
Istanze
Activity
che sono state distrutte, ma a cui viene ancora fatto riferimento. -
Istanze
Fragment
che non hanno un valoreFragmentManager
valido, ma a cui viene comunque fatto riferimento.
Allega origini APK solo Kotlin
Ora è possibile collegare origini APK esterne solo Kotlin quando esegui il profiling e il debug degli APK precompilati. Per saperne di più, consulta Collegare le origini Kotlin/Java.
Rilevamento di perdite in Memory Profiler
Quando analizzi un dump dell'heap in Memory Profiler, ora puoi filtrare i dati di profilazione
che Android Studio ritiene possano indicare perdite di memoria per le istanze Activity
e
Fragment
nella tua app.
I tipi di dati visualizzati dal filtro includono:
-
Istanze
Activity
che sono state distrutte, ma a cui viene ancora fatto riferimento. -
Istanze
Fragment
che non dispongono di un valoreFragmentManager
valido, ma a cui viene ancora fatto riferimento.
In alcune situazioni, ad esempio quelle riportate di seguito, il filtro potrebbe generare falsi positivi:
- È stato creato un
Fragment
, ma non è stato ancora utilizzato. - Un
Fragment
viene memorizzato nella cache, ma non nell'ambito di unFragmentTransaction
.
Per utilizzare questa funzionalità, innanzitutto acquisisci un dump dell'heap o importa un file dump dell'heap in Android Studio. Per visualizzare i frammenti e le attività che potrebbero avere una perdita di memoria, seleziona la casella di controllo Perdite di attività/frammenti nel riquadro del dump dell'heap del Memory Profiler.
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 Controlli avanzati degli emulatori, le opzioni nella scheda Posizione sono ora organizzate in due schede: Punti singoli e Percorsi.
Punti singoli
Nella scheda Punti singoli, puoi utilizzare la visualizzazione web di Google Maps per cercare punti di interesse, come faresti quando utilizzi Google Maps su uno smartphone o un browser. Quando cerchi o fai clic su una località nella mappa, puoi salvarla selezionando Salva punto nella parte inferiore della mappa. Tutti i luoghi salvati sono elencati sul lato destro della finestra Controlli avanzati.
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.
.
Percorsi
Come la scheda Punti singoli, la scheda Percorsi fornisce una visualizzazione web di Google Maps che puoi utilizzare per creare un percorso tra due o più località. Per creare e salvare un itinerario:
- Nella visualizzazione mappa, utilizza il campo di testo per cercare la prima destinazione nel percorso.
- Seleziona la stazione di ricarica dai risultati di ricerca.
- Seleziona il pulsante Naviga.
- Seleziona il punto di partenza del percorso dalla mappa.
- (Facoltativo) Fai clic su Aggiungi destinazione per aggiungere altre fermate al percorso.
- Salva il percorso facendo clic su Salva percorso nella visualizzazione mappa.
- Specifica un nome per il percorso e fai clic su Salva.
Per simulare l'emulatore che segue il percorso salvato, seleziona il percorso dall'elenco Percorsi salvati e fai clic su Riproduci percorso in basso a destra nella finestra Controlli avanzati. Per interrompere la simulazione, fai clic su Interrompi percorso.
.
Per simulare continuamente l'emulatore seguendo il percorso specificato, attiva l'opzione accanto a Ripeti la riproduzione. Per modificare la velocità con cui l'emulatore segue il percorso specificato, seleziona un'opzione dal menu a discesa Velocità di riproduzione.
Supporto di più display
Ora l'emulatore Android ti consente di eseguire il deployment dell'app su più display, che supportano dimensioni personalizzabili e possono aiutarti a testare le app che supportano più finestre e più display. Mentre un dispositivo virtuale è in esecuzione, puoi aggiungere fino a due display aggiuntivi come segue:
-
Apri Controlli avanzati e vai alla scheda Display.
-
Aggiungi un altro display facendo clic su Aggiungi display secondario.
-
Nel menu a discesa Display secondari, esegui una delle seguenti operazioni:
-
Seleziona una delle proporzioni predefinite
-
Seleziona Personalizzata e imposta Altezza, Larghezza e DPI per il display personalizzato.
-
(Facoltativo) Fai clic su Aggiungi display secondario per aggiungere un terzo display.
-
Fai clic su Applica modifiche per aggiungere le visualizzazioni specificate al dispositivo virtuale in esecuzione.
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 i progetti esistenti, puoi aggiungere il supporto per i dispositivi Android Automotive selezionando File > Nuovo > Nuovo modulo nella barra dei menu e Modulo Automotive. La procedura guidata Crea nuovo modulo ti guida poi nella creazione di un nuovo modulo utilizzando uno dei modelli di progetto Android Automotive.
.
Inoltre, ora puoi creare un dispositivo virtuale Android (AVD) per i dispositivi con sistema operativo Android Automotive selezionando una delle seguenti opzioni nella scheda Automotive della procedura guidata Configurazione del dispositivo virtuale.
- Polestar 2: crea un AVD che emuli l'unità principale di Polestar 2.
- Automotive (1024p orizzontale): crea un AVD per unità principali Android Automotive generiche con una risoluzione di 1024 x 768 px.
.
Download dell'SDK riavviabili
Quando scarichi componenti e strumenti SDK utilizzando 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 è in esecuzione un'attività di download dell'SDK in background, ora puoi mettere in pausa o riprendere il download utilizzando i controlli nella barra di stato.
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 aggiornamenti aggiuntivi, esegui l'upgrade della tua 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 di Gradle
Nelle release precedenti, Android Studio recuperava l'elenco di tutte le attività Gradle durante la sincronizzazione di Gradle. Per i progetti di grandi dimensioni, il recupero dell'elenco delle attività potrebbe causare tempi di sincronizzazione lenti.
Per migliorare le prestazioni di Gradle Sync, vai a File > Impostazioni > Sperimentale e seleziona Non compilare l'elenco di attività Gradle durante la sincronizzazione di Gradle.
Se attivi questa opzione, Android Studio salta la creazione dell'elenco di attività durante la sincronizzazione, il che consente a Gradle Sync di completare l'operazione più rapidamente e migliora la reattività dell'interfaccia utente. Tieni presente che, quando l'IDE salta la compilazione dell'elenco di attività, gli elenchi di attività nel riquadro Gradle sono vuoti e il completamento automatico del nome dell'attività nei file di compilazione non funziona.
Nuova posizione per attivare/disattivare la modalità offline di Gradle
Per attivare o disattivare la modalità offline di Gradle, seleziona prima Visualizza > Finestre degli strumenti > Gradle dalla barra dei menu. Poi, nella parte superiore della finestra Gradle, fai clic su Attiva/Disattiva modalità offline .
IntelliJ IDEA 2019.2
L'IDE Android Studio di base è stato aggiornato con i miglioramenti di IntelliJ IDEA tramite la release 2019.2.
Per scoprire di più sui miglioramenti delle altre versioni di IntelliJ inclusi in modo cumulativo nella 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:
|
|
|
3.5 (agosto 2019)
Android Studio 3.5 è una release principale e il risultato di Project Marble. A partire dal rilascio di Android Studio 3.3, l'iniziativa Project Marble ha interessato più release incentrate sul miglioramento di tre aree principali dell'IDE: integrità del sistema, ottimizzazione delle funzionalità e correzione dei bug.
Per informazioni su questi e altri aggiornamenti di Project Marble, leggi il post del blog per sviluppatori Android o le sezioni seguenti.
Vogliamo anche ringraziare tutti i nostri collaboratori della community che hanno contribuito allo sviluppo di questa release.
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 delle correzioni di bug più importanti, leggi il post correlato nel 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 sul miglioramento dell'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. Puoi accettare le impostazioni consigliate facendo clic sul link di azione nella notifica oppure puoi modificarle manualmente selezionando File > Impostazioni (o Android Studio > Preferenze su macOS) e individuando la sezione Impostazioni memoria in Aspetto e comportamento > Impostazioni di sistema. Per saperne di più, consulta Dimensioni massime dell'heap.
Report sull'utilizzo della memoria
A volte i problemi di memoria in Android Studio sono difficili da riprodurre e segnalare. Per aiutarti a risolvere il problema, Android Studio ti consente di generare un report sull'utilizzo della memoria facendo clic su Guida > Analizza utilizzo memoria nella barra dei menu. Quando lo fai, l'IDE esegue la sanificazione locale dei dati per rilevare le informazioni personali prima di chiederti se vuoi inviarli al team di Android Studio per contribuire a identificare la causa dei problemi di memoria. Per saperne di più, consulta Eseguire un report sull'utilizzo della memoria.
Windows: ottimizzazione dell'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: perfezionamento delle funzionalità
Questa sezione descrive le modifiche in Android Studio 3.5 incentrate sul miglioramento delle 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. Applica modifiche implementa un approccio completamente nuovo per preservare lo stato della tua app. A differenza di Instant Run, che riscriviva il bytecode dell'APK, Applica modifiche ridefinisce le classi in tempo reale sfruttando la misurazione del runtime supportata in Android 8.0 (livello API 26) o versioni successive.
Per scoprire di più, consulta Applicare le modifiche.
Flusso di deployment delle app
L'IDE dispone di un nuovo menu a discesa che ti consente di selezionare rapidamente il dispositivo su cui eseguire il deployment dell'app. Questo menu include anche una nuova opzione che ti consente di eseguire la tua app su più dispositivi contemporaneamente.
Rilevamento migliorato della sincronizzazione e della cache di Gradle
Ora l'IDE 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. Ora l'IDE scarica semplicemente le dipendenze in base alle necessità per garantire il completamento della sincronizzazione di Gradle.
Output degli errori di compilazione migliorato
La finestra Compilazione ora fornisce una migliore generazione di report sugli errori, ad esempio un link al file e alla riga dell'errore segnalato, per le seguenti procedure di compilazione:
- Compilazione e collegamento AAPT
- R8 e ProGuard
- Dexing
- Unità di misura delle risorse
- Analisi del file XML
- Compilazione di Javac, Kotlinc e CMake
Upgrade dei progetti
Esperienza di aggiornamento migliorata per fornire più informazioni e azioni per aiutarti ad 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.
Layout Editor
Android Studio 3.5 include diversi miglioramenti alla visualizzazione, alla gestione e all'interazione dei layout.
Quando utilizzi ConstraintLayout
, una nuova sezione Vincoli nel riquadro Attributi elenca le relazioni di vincolo del componente dell'interfaccia utente selezionato. Puoi selezionare una limitazione dalla superficie di progettazione o dall'elenco delle limitazioni per evidenziarla in entrambe le aree.
Analogamente, ora puoi eliminare una limitazione selezionandola e premendo il tasto Delete
. Puoi anche eliminare una limitazione tenendo premuto il tasto Control
(Command
su macOS) e facendo clic sull'ancora della limitazione. 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, ora l'editor di layout seleziona e mette in evidenza il vincolo, fornendo un feedback visivo immediato per ciò che hai appena aggiunto.
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 di layout evidenziava tutti i punti di ancoraggio in tutte le visualizzazioni, indipendentemente dal fatto che fosse possibile applicare vincoli. Inoltre, ora un overlay blu evidenzia il target della limitazione. Questo evidenziato è particolarmente utile quando si tenta di limitare un componente che si sovrappone a un altro.
Oltre agli aggiornamenti precedenti, Android Studio 3.5 contiene anche i seguenti miglioramenti all'editor di layout:
- Il widget di vincolo e il menu a discesa del margine predefinito ora consentono di utilizzare 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 di layout ha una nuova combinazione di colori che migliora la coerenza e riduce il contrasto tra componenti, testo e vincoli.
- La modalità Blueprint ora include il supporto del testo per alcuni componenti in cui il testo non veniva visualizzato.
Per ulteriori informazioni su queste modifiche, consulta Project Marble di Android Studio: editor di layout.
Data Binding
Oltre ad aggiungere il supporto per l'elaborazione incrementale delle annotazioni per l'associazione di dati, l'IDE migliora le funzionalità e le prestazioni dell'editor intelligente quando vengono create espressioni di associazione di dati in XML.
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 attivo nel riquadro Varianti di build. Questa funzionalità semplifica la configurazione di build per modulo e può anche migliorare le prestazioni di sincronizzazione di Gradle.
Per scoprire di più, consulta la sezione Modificare la variante di build.
Versioni affiancate dell'NDK
Ora puoi utilizzare più versioni dell'NDK contemporaneamente. 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 progetto utilizza il plug-in Android Gradle 3.5.0 o versioni successive, puoi anche specificare la versione dell'NDK da utilizzare per ogni modulo del progetto. Puoi utilizzare questa funzionalità per creare build riproducibili e per ridurre le incompatibilità tra le versioni NDK e il plug-in Gradle per Android.
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à
La pubblicazione condizionale ti consente di impostare determinati requisiti di configurazione del dispositivo per il download automatico dei moduli delle funzionalità durante l'installazione dell'app. Ad esempio, puoi configurare un modulo della funzionalità che includa la funzionalità per la realtà aumentata (AR) da rendere disponibile al momento dell'installazione dell'app solo per i dispositivi che supportano l'AR.
Questo meccanismo di distribuzione attualmente supporta il controllo del download di un modulo al momento dell'installazione dell'app in base alle seguenti configurazioni 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 viene scaricato al momento dell'installazione dell'app. Tuttavia, in un secondo momento la tua app potrebbe richiedere di scaricare il modulo on demand utilizzando la Play Core Library. Per saperne di più, consulta Configurare l'invio 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 dei temi.
L'ultima versione di IntelliJ inclusa in Android Studio era 2018.3.4. Per ulteriori informazioni sui miglioramenti di altre versioni di IntelliJ inclusi in modo cumulativo in questa release di Android Studio, consulta i seguenti aggiornamenti di correzione dei bug:
- IntelliJ IDEA 2018.3.6{: .external-link}
- IntelliJ IDEA 2018.3.5{: .external-link}
Aggiornamenti del plug-in Android per Gradle 3.5.0
Per informazioni sulle novità del plug-in Android per Gradle 3.5.0, ad esempio il supporto migliorato per l'elaborazione delle annotazioni incrementali e i test di unità cacheabili, consulta le note di rilascio.
Collaboratori della community
Grazie a tutti i collaboratori della nostra community che ci hanno aiutato a scoprire bug e altri modi per migliorare Android Studio 3.5. In particolare, vogliamo ringraziare le seguenti persone che hanno segnalato bug P0 e P1:
|
|
|
3.4 (aprile 2019)
Android Studio 3.4 è una release principale che include una serie di nuove funzionalità e miglioramenti.
3.4.2 (luglio 2019)
Questo aggiornamento minore include varie correzioni di bug e miglioramenti delle prestazioni. Per visualizzare un elenco delle correzioni di bug più importanti, leggi il post correlato nel blog degli aggiornamenti delle release.
3.4.1 (maggio 2019)
Questo aggiornamento minore include varie correzioni di bug e miglioramenti delle prestazioni. Per visualizzare un elenco delle correzioni di bug più importanti, leggi il post correlato nel blog degli aggiornamenti delle release.
Problemi noti di 3.4.0
Il profiling è disattivato quando esegui il deployment dell'app su un dispositivo con Android Q Beta.
- Quando utilizzi la libreria di Data Binding,
LiveDataListener.onChanged()
potrebbe non riuscire con un NPE. Una correzione per questo problema sarà inclusa in Android Studio 3.4.1 ed è già disponibile nell'ultima versione di anteprima di Android Studio 3.5. (vedi issue #122066788)
IntelliJ IDEA 2018.3.4
L'IDE Android Studio di base è stato aggiornato con i miglioramenti di IntelliJ IDEA tramite la release 2018.3.4.
Aggiornamenti del plug-in Android per Gradle 3.4.0
Per informazioni sulle novità del plug-in Android per Gradle 3.4.0, consulta le note di rilascio.
Finestra di dialogo Nuova struttura del progetto
La nuova finestra di dialogo Struttura del progetto (PSD) semplifica l'aggiornamento delle dipendenze e la configurazione di diversi aspetti del progetto, come moduli, varianti di compilazione, configurazioni di firma e variabili di compilazione.
Puoi aprire il file PSD selezionando File > Struttura progetto dalla barra del menu. Puoi anche aprire il file PSD premendo Ctrl+Shift+Alt+S
su Windows e Linux o Command+;
(punto e virgola) su macOS. Di seguito sono riportate le descrizioni di alcune delle sezioni nuove e aggiornate del PSD.
Variabili
La sezione Nuove variabili del file PSD consente di creare e gestire le variabili di compilazione, ad esempio quelle per mantenere coerenti i numeri di versione delle dipendenze nel progetto.
- Visualizza e modifica rapidamente le variabili di compilazione già esistenti negli script di compilazione Gradle del progetto.
- Aggiungi nuove variabili di compilazione a livello di progetto o modulo direttamente dal PSD.
Nota: se i file di configurazione di compilazione esistenti assegnano valori tramite script Groovy complessi, potresti non essere in grado di modificarli tramite il file PSD. Inoltre, non puoi modificare i file di compilazione scritti in Kotlin utilizzando il PSD.
Moduli
Configura le proprietà che vengono applicate a tutte le varianti di build in un modulo esistente o aggiungi nuovi moduli al progetto dalla sezione Moduli. Ad esempio, qui puoi configurare le proprietà defaultConfig
o gestire le configurazioni di firma.
Dipendenze
Controlla e visualizza ogni dipendenza nel grafico delle dipendenze del tuo progetto, come risolto da Gradle durante la sincronizzazione del progetto, seguendo questi passaggi:
- Nel riquadro a sinistra del PSD, seleziona Dipendenze.
- Nel riquadro Moduli, seleziona un modulo per cui vuoi ispezionare le dipendenze risolte.
- Sul lato destro del file PSD, apri il riquadro Dipendenze risolte, visualizzato di seguito.
Puoi anche cercare e aggiungere rapidamente le dipendenze al progetto selezionando prima un modulo dalla sezione Dipendenze del file PSD, facendo clic sul pulsante (+) nella sezione Dipendenze dichiarate e selezionando il tipo di dipendenza da aggiungere.
A seconda del tipo di dipendenza selezionato, dovresti visualizzare una finestra di dialogo simile a quella riportata di seguito che ti aiuta ad aggiungere la dipendenza al modulo.
Crea varianti
In questa sezione del file PSD, crea e configura le varianti di compilazione e i gusti dei prodotti per ogni modulo del progetto. Puoi aggiungere segnaposto manifest, file ProGuard e assegnare chiavi di firma e altro ancora.
Suggerimenti
Visualizza gli aggiornamenti suggeriti per le dipendenze del progetto e le variabili di compilazione nella sezione Suggerimenti, come mostrato di seguito.
Nuovo Resource Manager
Gestione risorse è una nuova finestra degli strumenti per importare, creare, gestire e utilizzare le risorse nell'app. Puoi aprire la finestra degli strumenti selezionando Visualizza > Finestre degli strumenti > Gestione risorse dalla barra dei menu. Resource Manager ti consente di:
- Visualizza le risorse:puoi visualizzare in anteprima drawable, colori e layout per trovare rapidamente le risorse di cui hai bisogno.
- Importazione collettiva: puoi importare più risorse selezionabili contemporaneamente trascinandole nella finestra dello strumento Gestione risorse o utilizzando la procedura guidata Importa elementi selezionabili. Per accedere alla procedura guidata, seleziona il pulsante (+) nell'angolo in alto a sinistra della finestra dello strumento e poi seleziona Importa elementi grafici dal menu a discesa.
-
Converti gli SVG in oggetti
VectorDrawable
: puoi utilizzare la procedura guidata Importa elementi selezionabili per convertire le immagini SVG in oggettiVectorDrawable
. - Trascina gli asset:dalla finestra degli strumenti Gestione risorse, puoi trascinare gli elementi drawable sia nelle visualizzazioni di design che in quelle XML dell'editor di layout.
- Visualizza versioni alternative:ora puoi visualizzare versioni alternative delle tue risorse facendo doppio clic su una risorsa nella finestra Strumento. Questa visualizzazione mostra le diverse versioni che hai creato e i qualificatori inclusi.
- Visualizzazioni riquadri ed elenco:puoi modificare la visualizzazione all'interno della finestra dello strumento per visualizzare le risorse in arrangiamenti diversi.
Per scoprire di più, leggi la guida su come gestire le risorse dell'app.
Controllo degli ID build durante il profiling e il debug degli APK
Quando fornisci file di simboli di debug per le librerie condivise .so
all'interno del tuo APK, Android Studio verifica che l'ID build dei file di simboli forniti corrisponda all'ID build delle librerie .so
all'interno dell'APK.
Se compili le librerie native nell'APK con un ID build, Android Studio controlla se l'ID build nei file dei simboli corrisponde a quello nelle librerie native e rifiuta i file dei simboli in caso di mancata corrispondenza. Se non hai eseguito la compilazione con un ID build, la fornitura di file di simboli errati potrebbe causare problemi di debug.
R8 abilitato per impostazione predefinita
R8 integra la rimozione del codice non necessario, la riduzione, l'oscuramento, l'ottimizzazione e il dexing in un unico passaggio, con risultati in termini di miglioramenti notevoli delle prestazioni di compilazione. R8 è stato introdotto nel plug-in Android per Gradle 3.3.0 e ora è attivato per impostazione predefinita sia per i progetti di app che per le librerie Android che utilizzano il plug-in 3.4.0 e versioni successive.
L'immagine seguente fornisce una panoramica di alto livello della procedura di compilazione prima dell'introduzione di R8.
Ora, con R8, le operazioni di desugaring, shrinking, offuscamento, ottimizzazione e dexing (D8) vengono completate in un unico passaggio, come illustrato di seguito.
Tieni presente che R8 è progettato per funzionare con le regole ProGuard esistenti, quindi probabilmente non dovrai intraprendere alcuna azione per usufruire di R8. Tuttavia, poiché si tratta di una tecnologia diversa da ProGuard progettata specificamente per i progetti Android, la riduzione e l'ottimizzazione potrebbero comportare la rimozione di codice che ProGuard potrebbe non aver rimosso. Pertanto, in questa situazione improbabile, potresti dover aggiungere regole aggiuntive per mantenere il codice nell'output della compilazione.
Se riscontri problemi con l'utilizzo di R8, consulta le domande frequenti sulla compatibilità di R8 per verificare se esiste una soluzione al problema. Se una soluzione non è documentata,
segnala un bug.
Puoi disattivare R8 aggiungendo una delle seguenti righe al file gradle.properties
del progetto:
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
Nota: per un determinato tipo di build, se imposti useProguard
su false
nel file build.gradle
del modulo dell'app, il plug-in Android Gradle utilizza R8 per ridurre il codice dell'app per quel tipo di build, indipendentemente dal fatto che tu disattivi R8 nel file gradle.properties
del progetto.
Navigation Editor ora supporta tutti i tipi di argomenti
Tutti i tipi di argomenti supportati dal componente di navigazione sono ora supportati in Editor di navigazione. Per ulteriori informazioni sui tipi supportati, consulta Trasferire dati tra destinazioni.
Miglioramenti all'editor di layout {:#layout-editor}
Il riquadro Attributi nell'editor di layout è stato semplificato in una singola pagina con sezioni che puoi espandere per visualizzare gli attributi che puoi configurare. Il riquadro Attributi include anche i seguenti aggiornamenti:
- Una nuova sezione Attributi dichiarati elenca gli attributi specificati dal file di layout e consente di aggiungerne rapidamente di nuovi.
- Il riquadro Attributi ora presenta anche indicatori accanto a ciascun attributo che sono solidi quando il valore dell'attributo è un riferimento alla risorsa e vuoti in caso contrario.
- Gli attributi con errori o avvisi sono ora evidenziati. Gli evidenziamenti rossi indicano errori (ad esempio quando utilizzi valori di layout non validi) e gli evidenziamenti arancioni indicano avvisi (ad esempio quando utilizzi valori hardcoded).
Nuova azione di intenzione per importare rapidamente le dipendenze
Se inizi a utilizzare determinati classi Jetpack e Firebase nel codice, una nuova azione di intenzione suggerisce di aggiungere la dipendenza della libreria Gradle richiesta al progetto, se non l'hai già fatto. Ad esempio, se fai riferimento alla classe WorkManager
senza prima importare la dipendenza android.arch.work:work-runtime
richiesta, un'azione di intenzione ti consente di farlo facilmente con un solo clic, come mostrato di seguito.
In particolare, poiché Jetpack ha rielaborato la libreria di supporto in pacchetti discreti più facili da gestire e aggiornare, questa azione di intenzione ti aiuta ad aggiungere rapidamente solo le dipendenze necessarie per i componenti Jetpack che vuoi utilizzare.
3.3 (gennaio 2019)
Android Studio 3.3 è una release principale che include una serie di nuove funzionalità e miglioramenti.
3.3.2 (marzo 2019)
Questo aggiornamento 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.3.1 (febbraio 2019)
Questo aggiornamento minore include varie correzioni di bug e miglioramenti delle prestazioni.
IntelliJ IDEA 2018.2.2
L'IDE Android Studio di base è stato aggiornato con i 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 per Gradle, consulta le note di rilascio.
Editor di navigazione
Navigation Editor ti consente di visualizzare e creare rapidamente la navigazione nella tua app utilizzando il componente dell'architettura di navigazione.
Per maggiori informazioni, consulta Implementare la navigazione con il componente dell'architettura di navigazione.
Eliminare le directory di Android Studio inutilizzate
Quando esegui una versione principale di Android Studio per la prima volta, vengono cercate directory contenenti cache, impostazioni, indici e log per le versioni di Android Studio per le quali non è possibile trovare un'installazione corrispondente. La finestra di dialogo Elimina le directory di Android Studio inutilizzate mostra le posizioni, le dimensioni e le date e gli orari dell'ultima modifica di queste directory inutilizzate e offre un'opzione per eliminarle.
Di seguito sono elencate le directory che Android Studio prende in considerazione per l'eliminazione:
- Linux:
~/.AndroidStudio[Preview]X.Y
- Mac:
~/Library/{Preferences, Caches, Logs, Application Support}/AndroidStudio[Preview]X.Y
- Windows:
%USER%.AndroidStudio[Preview]X.Y
Miglioramenti a Lint
Lint, se richiamato da Gradle, è molto più veloce: i progetti più grandi possono aspettarsi che Lint venga eseguito fino a quattro volte più velocemente.
Assistente per la creazione di un nuovo progetto
La procedura guidata Crea nuovo progetto ha un nuovo aspetto e contiene aggiornamenti che aiutano a snellire la creazione di nuovi progetti Android Studio.
Per scoprire di più, consulta la sezione 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 a inviarci 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, lo strumento Memory Profiler ora esegue il campionamento delle allocazioni di memoria periodicamente per impostazione predefinita. Se vuoi, puoi modificare questo comportamento utilizzando il menu a discesa Monitoraggio dell'allocazione durante i test su dispositivi con 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 di memoria degli oggetti. Tieni presente che se hai un'app che alloca molti oggetti, potresti riscontrare problemi di prestazioni significativi durante il profiling.
-
Campionata:acquisisce un campione periodico delle allocazioni di memoria degli oggetti. Si tratta del comportamento predefinito e ha un impatto minore sulle prestazioni dell'app durante il profiling. Potresti riscontrare alcuni problemi di prestazioni con le app che allocano molti oggetti in un breve periodo di tempo.
-
Off:disattiva l'allocazione della memoria. Se non è già selezionata, questa modalità viene attivata automaticamente durante 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 controllare il tempo impiegato dalla tua app Java per eseguire il rendering di ogni frame nel thread dell'interfaccia utente principale e in RenderThread. Questi dati potrebbero essere utili per esaminare i colli di bottiglia che causano balbuzie dell'interfaccia utente e frame rate ridotti. Ad esempio, ogni frame che richiede più di 16 ms per mantenere una frequenza fotogrammi uniforme viene visualizzato in rosso.
Per visualizzare i dati di rendering dei frame, registra una traccia utilizzando una configurazione che ti consenta di monitorare le chiamate di sistema. Dopo aver registrato la traccia, cerca le informazioni su ogni fotogramma lungo la sequenza temporale della registrazione nella sezione FRAMES, come mostrato di seguito.
Per scoprire di più su come esaminare e risolvere i problemi di frequenza fotogrammi, consulta 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 mostra lo stato del frammento.
Visualizzare il testo formattato per i payload di connessione nel Network Profiler
In precedenza, lo strumento di analisi della rete mostrava solo il testo non elaborato dei payload di connessione. Android Studio 3.3 ora formatta alcuni tipi di testo per impostazione predefinita, tra cui JSON, XML e HTML. Nelle schede Risposta e Richiesta, fai clic sul link Visualizza testo analizzato per visualizzare il testo formattato e sul link Visualizza codice sorgente per visualizzare il testo non elaborato.
Per ulteriori informazioni, consulta Esaminare il traffico di rete con Network Profiler.
Download automatico dei componenti dell'SDK
Quando il progetto ha bisogno di un componente SDK dalle piattaforme SDK, NDK o CMake, Gradle ora tenta di scaricare automaticamente i pacchetti richiesti, a condizione che tu abbia accettato in precedenza i 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 tramite Clang-Tidy per i progetti che includono codice nativo. Per abilitare il supporto di Clang-Tidy, aggiorna l'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. Quando selezioni questa indagine nella finestra di dialogo Impostazioni o Preferenze, puoi anche vedere l'elenco dei controlli Clang-Tidy abilitati e disattivati nella sezione Opzione del riquadro più a destra. Per attivare controlli aggiuntivi, aggiungili all'elenco e fai clic su Applica.
Per configurare Clang-Tidy con opzioni aggiuntive, fai clic su Configura le opzioni di controllo di Clang-Tidy e aggiungile nella finestra di dialogo che si apre.
Rimozione delle opzioni per la personalizzazione di C++
Le seguenti opzioni sono state rimosse dalla finestra di dialogo Personalizza il supporto C++:
- Supporto delle eccezioni (-fexceptions)
- Supporto delle informazioni sul tipo di runtime (-ftti)
I rispettivi comportamenti sono abilitati per tutti i progetti creati tramite Android Studio.
CMake versione 3.10.2
CMake versione 3.10.2 è ora inclusa in SDK Manager. Tieni presente che Gradle utilizza ancora per impostazione predefinita la versione 3.6.0.
Per specificare una versione di CMake da utilizzare da parte di Gradle, aggiungi quanto segue al file build.gradle
del tuo modulo:
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: l'utilizzo della sintassi "+" con altre dipendenze di compilazione è sconsigliato, in quanto le dipendenze dinamiche possono causare aggiornamenti imprevisti delle versioni e difficoltà a risolvere le differenze tra le versioni.
Android App Bundle ora supporta le app istantanee
Ora Android Studio ti consente di creare Android App Bundle con il supporto completo di Google Play Instant. In altre parole, ora puoi creare ed eseguire il deployment sia delle app installate sia delle esperienze istantanee da un singolo progetto Android Studio e includerle in un singolo 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 Studio crea quindi un nuovo progetto di app come farebbe normalmente, ma include le seguenti proprietà nel manifest per aggiungere il supporto delle app istantanee al modulo di base della tua app:
<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
<dist:module dist:instant="true" />
...
</manifest>
Puoi quindi creare un modulo di funzionalità abilitato all'istante selezionando File > Nuovo > Nuovo modulo dalla barra dei menu e poi Modulo di funzionalità dinamica istantanea dalla finestra di dialogo Crea nuovo modulo. Tieni presente che la creazione di questo modulo attiva anche immediatamente il modulo di base della tua app.
Per eseguire il deployment dell'app su un dispositivo locale come app istantanea, modifica la configurazione di esecuzione e seleziona la casella accanto a Generali > Esegui il deployment come app istantanea.
Sincronizzazione di un progetto con una sola variante
La sincronizzazione del progetto con la configurazione di build è un passaggio importante per consentire ad Android Studio di comprendere la struttura del progetto. Tuttavia, questa procedura può richiedere molto tempo per i progetti di grandi dimensioni. Se il tuo progetto utilizza più varianti di build, ora puoi ottimizzare le sincronizzazioni del progetto limitandole solo alla variante attualmente selezionata.
Per attivare questa ottimizzazione, devi utilizzare Android Studio 3.3 o versioni successive con il plug-in Android Gradle 3.3.0 o versioni successive. Se soddisfi questi requisiti, IDE ti chiede di attivare questa ottimizzazione quando sincronizzi il progetto. L'ottimizzazione viene attivata 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:al momento questa ottimizzazione supporta i progetti che includono solo il linguaggio di programmazione Java. Ad esempio, se l'IDE rileva codice Kotlin o C++ nel progetto, non attiva automaticamente questa ottimizzazione e non devi attivarla manualmente.
Per ulteriori informazioni, consulta Attivare la sincronizzazione dei progetti con una sola variante.
Fornire un feedback rapido
Se hai attivato la condivisione delle statistiche di utilizzo per contribuire a migliorare Android Studio, vedrai queste due nuove icone nella barra di stato nella parte inferiore della finestra IDE:
Basta fare clic sull'icona che rappresenta 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 ancora fatto, puoi attivare la condivisione delle statistiche sull'utilizzo aprendo la finestra di dialogo Impostazioni Preferenze su un Mac, selezionando Aspetto e comportamento > Impostazioni di sistema > Condivisione dati e selezionando Invia a Google le statistiche sull'utilizzo.
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 di Kotlin inclusa è ora 1.2.71.
- La versione predefinita degli strumenti di compilazione è ora 28.0.3.
- Nella libreria Navigation, i tipi di argomenti sono stati rinominati da
type
aargType
. - I seguenti bug sono stati corretti:
- Quando si utilizza la libreria Data Binding, i nomi delle variabili con trattini bassi causavano errori di compilazione.
- CMake causava il fallimento di IntelliSense e di altre funzionalità di CLion.
- L'aggiunta di un
SliceProvider
causava errori di compilazione nei progetti che non utilizzavano le librerieandroidx.*
. - Alcuni test di unità Kotlin non sono stati eseguiti.
- Un problema di associazione dei dati stava causando 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
Sconsigliamo vivamente di utilizzare la versione 1.2.70 di Kotlin.
La versione 1.2.61 di Kotlin corregge un bug che può causare l'arresto anomalo 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 sutrue
, devi includere quanto segue nel filebuild.gradle
di ogni modulo:android.buildToolsVersion "28.0.3"
Assistente Novità
Un nuovo assistente ti informa sulle ultime modifiche in 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 l'assistente scegliendo Guida > Novità di Android Studio.
Android Jetpack
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 la documentazione di Jetpack.
Editor di navigazione
Il nuovo Navigation Editor si integra con i componenti di navigazione di Android Jetpack per fornire una visualizzazione grafica per la creazione della struttura di navigazione della tua app. Navigation Editor semplifica la progettazione e l'implementazione della navigazione tra le destinazioni in-app.
In Android Studio 3.2, l'editor di navigazione è una funzionalità sperimentale. Per attivare Navigation Editor, fai clic su File > Impostazioni (Android Studio > Preferenze su Mac), seleziona la categoria Sperimentale nel riquadro a sinistra, seleziona la casella accanto ad Attiva Navigation Editor e riavvia Android Studio.
Per saperne di più, consulta la documentazione di Navigation Editor.
Migrazione ad AndroidX
Nell'ambito di Jetpack, stiamo eseguendo la migrazione delle librerie di supporto Android a una nuova
libreria di estensioni Android che utilizza lo spazio dei nomi androidx
. Per ulteriori informazioni, consulta la panoramica di AndroidX.
Android Studio 3.2 ti aiuta in questa procedura con una nuova funzionalità di migrazione.
Per eseguire la migrazione di un progetto esistente ad AndroidX, scegli Ristruttura > Esegui migrazione ad AndroidX. Se hai dipendenze Maven di cui non è stata eseguita la migrazione al namespace AndroidX, il sistema di compilazione di Android Studio converte automaticamente anche queste dipendenze del progetto.
Il plug-in Android per Gradle fornisce i seguenti flag globali che puoi impostare
nel file gradle.properties
:
android.useAndroidX
: se impostato sutrue
, questo flag indica che vuoi iniziare a utilizzare AndroidX da questo momento in poi. Se il flag è assente, Android Studio si comporta come se il flag fosse impostato sufalse
.android.enableJetifier
: se impostato sutrue
, questo indicatore indica che vuoi che lo strumento (dal plug-in Android Gradle) supporti la conversione automatica delle 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 sufalse
.
Entrambi i flag sono impostati su true
quando utilizzi il 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 il
flag android.useAndroidX
su true
e il
android.enableJetifier
su false
.
Android App Bundle
Android App Bundle è un nuovo formato di caricamento che include tutto il codice e le risorse compilati della tua app, ma rimanda la generazione e la firma dell'APK al Google Play Store.
Il nuovo modello di pubblicazione delle app di Google Play utilizza quindi il tuo app bundle per generare e pubblicare APK ottimizzati per la configurazione del dispositivo di ogni utente, in modo che ogni utente scarichi solo il codice e le risorse di cui ha bisogno per eseguire la tua app. Non dovrai più creare, firmare e gestire più APK e gli utenti avranno download più piccoli e ottimizzati.
Inoltre, puoi aggiungere moduli delle funzionalità al progetto dell'app e includerli nell'app bundle. Gli utenti possono quindi scaricare e installare le funzionalità della tua app su richiesta.
Per creare un bundle, scegli Compila > Compila pacchetti/APK > Compila pacchetti.
Per ulteriori informazioni, incluse 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 rendere difficile visualizzare il look and feel di un layout durante la fase di progettazione dello sviluppo dell'app. Ora puoi visualizzare facilmente un'anteprima della tua visualizzazione nell'editor di layout con dati di esempio. Quando aggiungi una visualizzazione, nella finestra Progettazione viene visualizzato un pulsante sotto la visualizzazione. Fai clic su questo pulsante per impostare gli attributi della visualizzazione in fase di progettazione. 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 un
RecyclerView
a un nuovo layout, fai clic sul pulsante degli attributi di progettazione
sotto la visualizzazione e scegli una selezione dal carosello di modelli di dati di esempio.
Sezioni
Le slice 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 del progetto e scegli Nuovo > Altro > Fornitore di slice.
Per scoprire di più, inclusa la modalità di test delle interazioni con le sezioni, consulta la Guida introduttiva alle sezioni.
Kotlin 1.2.61
Android Studio 3.2 include Kotlin 1.2.61 e il nuovo SDK Android si integra meglio con Kotlin. Per ulteriori informazioni, consulta il blog per sviluppatori Android.
IntelliJ IDEA 2018.1.6
L'IDE Android Studio di base è stato aggiornato con i miglioramenti di IntelliJ IDEA tramite la release 2018.1.6.
Profili Android
Prova le seguenti nuove funzionalità di Android Profiler in Android Studio 3.2.
Sessioni
Ora puoi salvare i dati di Profiler come sessioni per rivederli e analizzarli in un secondo momento. Il profiler conserva i dati della sessione fino a quando non riavvii l'IDE.
Quando registri una traccia del metodo o acquisisci un dump dell'heap, l'IDE aggiunge questi dati (insieme all'attività di rete della tua app) come voce separata alla sessione corrente e puoi passare facilmente da una registrazione all'altra per confrontare i dati.
Traccia di sistema
In Profiler della CPU, seleziona la nuova configurazione Traccia di sistema per ispezionare l'attività della CPU e dei thread di sistema del dispositivo. Questa configurazione della traccia si basa su
systrace
ed è utile per esaminare i problemi a livello di sistema, come il jitter dell'interfaccia utente.
Quando utilizzi questa configurazione della traccia, puoi contrassegnare visivamente le routine di codice importanti nella sequenza temporale del profiler mediante l'instrumentazione del codice C/C++ con l'API di monitoraggio nativo o del codice Java con la classe Trace
.
Controllare i riferimenti JNI in Memory Profiler
Se esegui il deployment dell'app su un dispositivo con Android 8.0 (livello API 26) o versioni successive, ora puoi ispezionare le allocazioni di memoria per il codice JNI della tua app utilizzando il profilatore della memoria.
Mentre l'app è in esecuzione, seleziona una parte della sequenza temporale da esaminare e seleziona 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 controlla i file di dump dell'heap della memoria
Ora puoi importare, esportare e ispezionare i file di dump dell'heap della memoria .hprof
creati con Memory Profiler.
Importa il file .hprof
facendo clic su Avvia nuova sessione del profiler
nel riquadro Sessioni del profiler e poi 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
finestra di dialogo Esporta come visualizzata, salva il file con l'estensione del nome del file .hprof
.
Registra l'attività della CPU durante l'avvio dell'app
Ora puoi registrare l'attività della CPU durante l'avvio dell'app nel seguente modo:
- Seleziona Esegui > Modifica configurazioni dal menu principale.
- Nella scheda Profiling della configurazione di esecuzione che preferisci, seleziona la casella accanto a Avvia la registrazione di una traccia del metodo all'avvio.
- Seleziona una configurazione di registrazione della CPU da utilizzare dal menu a discesa.
- Esegui il deployment dell'app su un dispositivo con Android 8.0 (livello API 26) o versioni successive selezionando Esegui > Profila.
Esportare le tracce della CPU
Dopo aver registrato l'attività della CPU con lo strumento di analisi della CPU, puoi esportare i dati come
file .trace
da condividere con altri o da esaminare in un secondo momento.
Per esportare una traccia dopo aver registrato l'attività della CPU:
- Fai clic con il tasto destro del mouse sulla registrazione che vuoi esportare dalla sequenza temporale della CPU.
- Seleziona Esporta traccia dal menu a discesa.
- Scegli dove vuoi salvare il file, quindi fai clic su Salva.
Importa ed esamina i file di traccia della CPU
Ora puoi importare e ispezionare i file .trace
creati con l'API di debug o con CPU Profiler. Al momento non è possibile importare le registrazioni del monitoraggio del sistema.
Importa il file di traccia facendo clic su Avvia nuova sessione del profiler nel riquadro Sessioni del profiler e poi selezionando Carica da file. Puoi quindi esaminarne i dati in CPU Profiler come faresti normalmente, con le seguenti eccezioni:
- L'attività della CPU non è rappresentata nella sequenza temporale della CPU.
- La sequenza temporale dell'attività del thread indica solo dove sono disponibili i dati traccia per ciascun thread e non gli stati effettivi del thread (ad esempio in esecuzione, in attesa o in sospensione).
Registra l'attività della CPU utilizzando l'API di debug
Ora puoi avviare e interrompere la registrazione dell'attività della CPU nel profilo CPU strumentando la tua app con l'API di 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 API di debug come configurazione di registrazione della CPU selezionata.
Energy Profiler
Energy Profiler mostra una visualizzazione del consumo di energia stimato della tua app, nonché gli eventi di sistema che influiscono sul consumo di energia, come wakelock, sveglie e job.
Lo strumento di analisi energetica viene visualizzato come una nuova riga nella parte inferiore della finestra Profiler quando esegui l'app su un dispositivo connesso o su un emulatore Android con Android 8.0 (API 26) o versioni successive.
Fai clic sulla riga Energia per massimizzare la visualizzazione di Energy Profiler. Posiziona il cursore del mouse sopra una barra nella cronologia per visualizzare una suddivisione del consumo energetico in base alle risorse della CPU, della rete e della posizione (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 visualizzare lo stack di chiamate e altri dettagli di un evento di sistema, come un blocco di attivazione, selezionalo nel riquadro degli eventi. Per andare al codice responsabile di un evento di sistema, fai doppio clic sulla voce nello stack di chiamate.
Controllo tramite lint
Android Studio 3.2 include molte funzionalità nuove e migliorate per il controllo lint.
I nuovi controlli lint ti aiutano a trovare e identificare i problemi comuni del codice, che vanno da avvisi su potenziali problemi di usabilità a errori di alta priorità relativi a potenziali vulnerabilità di sicurezza.
Controlli di Lint per l'interoperabilità Java/Kotlin
Per assicurarti che il codice Java interoperi correttamente con il codice Kotlin, i nuovi controlli lint applicano le best practice descritte nella Guida all'interoperabilità di Kotlin. Alcuni esempi di questi controlli includono la ricerca della presenza di annotazioni di Nullabilità, l'utilizzo di parole chiave rigide di Kotlin e l'inserimento per ultimo dei parametri lambda.
Per attivare questi controlli, fai clic su File > Impostazioni (Android Studio > Preferenze su Mac) per aprire la finestra di dialogo Impostazioni, vai alla sezione Editor > Ispezioni > Android > Lint > Interoperabilità > Interoperabilità Kotlin e seleziona le regole che vuoi attivare.
Per attivare questi controlli per le build a riga di comando, aggiungi quanto segue al
build.gradle
file:
android {
lintOptions {
check 'Interoperability'
}
}
Controlli di lint per le sezioni
I nuovi controlli lint per le sezioni ti aiutano a verificare di crearle correttamente. Ad esempio, i controlli lint ti avvisano se non hai assegnato un'azione principale a una Slice.
Nuovo target Gradle
Utilizza il nuovo compito Gradle lintFix
per applicare tutte le correzioni sicure suggerite dal controllo lint direttamente al codice sorgente. Un esempio di controllo lint che suggerisce una correzione sicura da applicare è SyntheticAccessor
.
Aggiornamenti dei metadati
Vari metadati, come il controllo di trasmissione del servizio, sono stati aggiornati per consentire ai controlli lint di funzionare con Android 9 (livello API 28).
Avviso se esegui 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. Ad esempio, i controlli del ciclo delle risorse ora si applicano a tipi di risorse aggiuntivi e il rilevatore di traduzioni può trovare le traduzioni mancanti al volo nell'editor.
ID problema più rilevabili
Ora gli ID dei problemi vengono visualizzati in più posizioni, ad esempio nella finestra Risultati
dell'ispezione. In questo modo, sarà più facile trovare le informazioni necessarie per attivare o disattivare controlli specifici tramite lintOptions
in build.gradle
.
Per ulteriori informazioni, consulta Configurare le opzioni di lint con Gradle.
Data Binding V2
La versione 2 di Data Binding è ora attiva per impostazione predefinita ed è compatibile con la versione 1. Ciò significa che, se hai dipendenze di librerie compilate con la versione 1, puoi utilizzarle con i progetti che utilizzano la versione 2 di Data Binding. Tuttavia, tieni presente che i progetti che utilizzano la versione 1 non possono utilizzare le dipendenze compilate con la versione 2.
Desugaring D8
In Android Studio 3.1, abbiamo integrato il passaggio di desugaring nello strumento D8 come funzionalità sperimentale, riducendo il tempo di compilazione complessivo. In Android Studio 3.2, la rimozione del codice non necessario con D8 è attiva 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 predefiniti modificati per gli 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 hanno come target questi ABI, devi utilizzare
NDK r16b o versioni precedenti e specificare gli ABI
nel file build.gradle
, come mostrato di seguito:
splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
Nota: questa modifica del comportamento è inclusa anche in Android Studio 3.1 RC1 e versioni successive.
Funzionalità dell'editor migliorate per i file di build CMake
Se utilizzi CMake per aggiungere codice C e C++ al tuo progetto, Android Studio ora include funzionalità di editor migliorate per aiutarti a modificare gli script di compilazione CMake, ad esempio:
- Evidenziazione della sintassi e completamento del codice: ora l'IDE evidenzia e suggerisce il completamento del codice per i comandi CMake comuni. Inoltre, puoi passare a un file facendoci clic sopra mentre premi il tasto Control (Comando su Mac).
- Riformattazione del codice:ora puoi utilizzare l'opzione di riformattazione del codice di IntelliJ per applicare gli stili di codice agli script di compilazione CMake.
- Refactoring sicuro: gli strumenti di refactoring integrati nell'IDE ora controllano anche se rinomini o elimini i file a cui fai riferimento negli script di compilazione CMake.
Esplorare i file di intestazione esterni
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 i file di intestazione inclusi nelle dipendenze esterne delle librerie C/C++ 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 nel menu principale e seleziona Android dal menu a discesa. Nella directory cpp, tutte le intestazioni che rientrano nell'ambito del progetto dell'app sono organizzate nel nodo include per ciascuna delle dipendenze della libreria C/C++ locale, come mostrato di seguito.
Multidex nativo abilitato per impostazione predefinita
Le versioni precedenti di Android Studio attivavano il multidex nativo durante il deployment della versione di debug di un'app su un dispositivo con Android API 21 o versioni successive. Ora,
indipendentemente dal fatto che tu stia eseguendo il deployment su un dispositivo o creando un APK per la release, il plug-in Android per Gradle attiva il multidex nativo per tutti i moduli impostati su
minSdkVersion=21
o versioni successive.
AAPT2 è stato spostato nel repository Maven di Google
A partire da Android Studio 3.2, il codice sorgente di AAPT2 (Android Asset Packaging Tool 2) è il repository Maven di Google.
Per utilizzare AAPT2, assicurati di avere una dipendenza google()
nel file
build.gradle
, come mostrato di seguito:
buildscript { repositories { google() // here jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.2.0' } } allprojects { repositories { google() // and here jcenter() } }
buildscript { repositories { google() // here jcenter() } dependencies { classpath("com.android.tools.build:gradle:3.2.0") } } allprojects { repositories { google() // and here jcenter() } }
La nuova versione di AAPT2 risolve molti problemi, inclusa la gestione migliorata dei caratteri non ASCII su Windows.
Rimozione della configurazione su richiesta
La preferenza Configura su richiesta è stata rimossa da Android Studio.
Android Studio non passa più l'argomento --configure-on-demand
a Gradle.
Assistente alla connessione ADB
Il nuovo Assistente per la connessione ADB fornisce istruzioni dettagliate per aiutarti a configurare e utilizzare un dispositivo tramite la connessione Android Debug Bridge (ADB).
Per avviare l'assistente, scegli Strumenti > Assistente alla connessione.
L'Assistente alla connessione ADB fornisce istruzioni, controlli in-context e un elenco di dispositivi connessi in una serie di pagine del riquadro Assistente.
Miglioramenti all'emulatore
Ora puoi salvare e caricare gli snapshot di un AVD (dispositivo virtuale Android) in qualsiasi momento nell'emulatore Android, in modo da ripristinare facilmente e rapidamente un dispositivo simulato a uno stato noto per i test. Quando modifichi un AVD utilizzando Gestione AVD, puoi specificare quale snapshot AVD caricare all'avvio dell'AVD.
I controlli per salvare, caricare e gestire gli snapshot AVD ora si trovano nella scheda Snapshot della finestra Controlli avanzati 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.
-
I nuovi progetti vengono creati con
kotlin-stdlib-jdk* artifacts
, anziché con gli elementikotlin-stdlib-jre*
, che sono deprecati. - L'analisi R8 delle regole di ProGuard è stata migliorata.
- I seguenti bug sono stati corretti:
-
Il tentativo di eseguire la classe principale Kotlin non è riuscito con un errore:
"Error: Could not find or load main class..."
- R8 è entrato in un ciclo infinito durante l'esecuzione di determinate ottimizzazioni.
- L'utilizzo del comando Esegui di nuovo i test non riusciti nella finestra Esegui a volte restituiva erroneamente il messaggio "Nessun test trovato".
-
D8 non ha gestito correttamente le istanze
invoke-virtual
, causando un arresto anomalo con unVerifyError
: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
. Ora il compilatore utilizza le annotazioni degli strumenti del 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:
- Le perdite di memoria hanno causato il rallentamento e l'interruzione della risposta di Android Studio dopo l'utilizzo di Layout Editor. Questo aggiornamento include correzioni per la maggior parte di questi problemi. A breve intendiamo rilasciare un altro aggiornamento per risolvere ulteriori perdite di memoria.
- Alcune applicazioni create con D8 hanno avuto un arresto anomalo su alcuni tablet Verizon Ellipsis.
-
L'installazione di applicazioni create con D8 non è riuscita con un
INSTALL_FAILED_DEXOPT
errore su 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 hanno avuto un arresto anomalo sui dispositivi con Android 4.4 (livello API 19).
-
A volte Android Studio non riusciva ad avviarsi, con un messaggio di errore
ProcessCanceledException
durante l'inizializzazione della classe percom.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.
-
Le build configurate con i set di origini non sono riuscite con il seguente messaggio quando è stata attivata 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 compilazione durante il dexing in alcuni progetti con un numero elevato di moduli o dipendenze esterne, con il seguente messaggio di errore:
"RejectedExecutionException: Thread limit exceeded replacing blocked worker"
- Il calcolo dell'elenco DEX principale di D8 non teneva conto di alcune invocazioni riflessive.
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. Di conseguenza, i progetti non venivano compilati quando si faceva clic sul pulsante Esegui o Debug, il che a sua volta causava errori come il deployment di APK errati e arresti anomali durante l'utilizzo di Instant Run.
Per risolvere il problema, Android Studio 3.1.1 aggiunge il compito Make consapevole di Gradle alla configurazione di esecuzione per i progetti in cui manca questa voce. Questa modifica avviene dopo la prima sincronizzazione di Gradle quando il progetto viene caricato.
- Il debugger ha avuto un arresto anomalo durante il debug di un layout con una casella di testo se era attivata la profilazione avanzata.
- Android Studio si è bloccato dopo aver fatto clic su Build Variants (Varianti di build).
- I file AAR (Android Archive) sono stati estratti due volte, una volta durante il processo di sincronizzazione di Gradle e una volta durante il processo di compilazione di Gradle.
- Alcuni elementi non erano presenti in alcuni elementi grafici vettoriali importati da file SVG.
-
L'avviso relativo al ritiro della configurazione delle dipendenze
compile
è stato aggiornato con indicazioni migliori sulle configurazioniimplementation
eapi
. Per dettagli sulla migrazione dall'utilizzo della configurazionecompile
, consulta la documentazione relativa alle nuove configurazioni delle dipendenze.
Codifica/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'analisi migliore del flusso di controllo per raccolte e stringhe, un'inferenza della nullità migliorata, nuove correzioni rapide e molto altro.
Per maggiori dettagli, consulta le note di rilascio di JetBrains per le versioni di IntelliJ IDEA 2017.2 e 2017.3, nonché le note di rilascio di JetBrains per aggiornamenti di correzione dei bug.
Miglioramenti all'editing di SQL con Room
Quando utilizzi la libreria di database Room, puoi usufruire di diversi miglioramenti all'editing SQL:
- Il completamento del codice all'interno di un
Query
comprende tabelle SQL (entità), colonne, parametri di query, alias, join, sottoquery e clausole WITH. - L'evidenziazione della sintassi SQL ora funziona.
- Puoi fare clic con il tasto destro del mouse sul nome di una tabella in SQL e rinominarla, il che comporta anche la riscrittura del codice Java o Kotlin corrispondente (incluso, ad esempio, il tipo di ritorno della query). La ridenominazione funziona anche nell'altra direzione, quindi la ridenominazione di un campo o di una classe Java riscrive il codice SQL corrispondente.
- 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 Control (Comando su Mac) mentre fai clic sull'entità.
Per informazioni sull'utilizzo di SQL con Room, consulta Salvare i dati in un database locale utilizzando Room.
Aggiornamenti all'associazione dei dati
Questo aggiornamento include diversi miglioramenti per il data binding:
-
Ora puoi utilizzare un oggetto
LiveData
come campo osservabile nelle espressioni di associazione dei dati. La classeViewDataBinding
ora include un nuovo metodosetLifecycle()
che viene utilizzato per osservare gli oggettiLiveData
. -
La classe
ObservableField
ora può accettare altri oggettiObservable
nel suo costruttore. -
Puoi visualizzare l'anteprima di un nuovo compilatore incrementale per le tue classi di binding dei dati. Per informazioni dettagliate su questo nuovo compilatore e sulle istruzioni per attivarlo, consulta Data Binding Compiler 2.0.
I vantaggi del nuovo compilatore includono:
-
Le classi
ViewBinding
vengono generate dal plug-in Android per Gradle prima del compilatore Java. - Le librerie mantengono le classi di binding generate quando l'app viene compilata, anziché essere rigenerate ogni volta. In questo modo, è possibile migliorare notevolmente le prestazioni dei progetti multi-modulo.
-
Le classi
Compilatore e Gradle
D8 è il compilatore DEX predefinito
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
- Ridurre l'utilizzo della memoria
- Generazione di codice migliorata (allocazione dei registri migliore, tavole di stringhe più intelligenti)
- Esperienza di debug migliore 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
in
gradle.properties
, elimina il flag o impostalo su
true
:
android.enableD8=true
Per maggiori dettagli, vedi Nuovo compilatore DEX.
Rimozione di codice non necessario incrementale
Per i progetti che utilizzano funzionalità del linguaggio Java 8, la desugaring incrementale è abilitata per impostazione predefinita, il che può migliorare i tempi di compilazione.
La rimozione degli elementi non necessari consente di convertire lo zucchero sintattico in una forma 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 informazioni dettagliate su come utilizzare la nuova finestra Compilazione semplificata, consulta Monitorare la procedura di compilazione.
Concorrenza degli aggiornamenti batch e dell'indicizzazione
Le procedure di indicizzazione di Gradle Sync e IDE sono ora molto più efficienti, riducendo il tempo perso per molte operazioni di indicizzazione ridondanti.
C++ e LLDB
Abbiamo apportato molti miglioramenti alla qualità e alle prestazioni nelle fasi di programmazione, sincronizzazione, compilazione e debug dello sviluppo in C++. I miglioramenti includono:
-
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 è notevolmente ridotto per i progetti di grandi dimensioni.
-
Le prestazioni durante la compilazione e la sincronizzazione con CMake sono state migliorate tramite un riutilizzo più aggressivo dei risultati memorizzati nella cache.
-
L'aggiunta di formattatori ("pretty printer") per più strutture di dati C++ semplifica la lettura dell'output di LLDB.
-
LLDB ora funziona solo con Android 4.1 (livello API 16) e versioni successive.
Nota:il debug nativo con Android Studio 3.0 o versioni successive non funziona su Windows a 32 bit. Se utilizzi Windows a 32 bit e devi eseguire il debug del codice nativo, utilizza Android Studio 2.3.
Kotlin
Upgrade di Kotlin alla versione 1.2.30
Android Studio 3.1 include Kotlin versione 1.2.30.
Il codice Kotlin ora viene analizzato con il controllo lint a riga di comando
L'esecuzione di lint dalla riga di comando ora analizza le classi Kotlin.
Per ogni progetto su cui vuoi eseguire lint,
il repository Maven di Google deve essere incluso nel file build.gradle
di primo livello. Il repository Maven è già incluso per i progetti creati in
Android Studio 3.0 e versioni successive.
Strumenti per il rendimento
Esempi di processi C++ nativi con il profilo CPU
CPU Profiler ora include una configurazione predefinita per registrare le tracce campionate dei thread nativi della tua app. Puoi utilizzare questa configurazione dispiegando l'app su un dispositivo con Android 8.0 (livello API 26) o versioni successive e poi selezionando Campionata (nativa) dal menu a discesa delle configurazioni di registrazione di CPU Profiler. Dopodiché, registra e controlla una traccia come faresti normalmente.
Puoi modificare le impostazioni predefinite, ad esempio l'intervallo di campionamento, creando una configurazione di registrazione.
Per tornare al monitoraggio dei thread Java, seleziona una configurazione Sampled (Java) o Instrumented (Java).
Filtra le tracce della CPU, i risultati di allocazione della memoria e i dump dell'heap
CPU Profiler e Memory Profiler includono una funzionalità di ricerca che consente di filtrare i risultati della registrazione di una traccia del metodo, delle allocazioni di memoria o del dump dell'heap.
Per eseguire una ricerca, fai clic su Filtra nell'angolo in alto a destra del riquadro, digita la query e premi Invio.
Suggerimento: puoi anche aprire il campo di ricerca premendo Ctrl + F (Comando + F su Mac).
Nella scheda Grafico a forma di fiamma di Profiler della CPU, le serie di chiamate che includono metodi correlati alla query di ricerca sono evidenziate e spostate sul lato sinistro del grafico.
Per ulteriori informazioni sull'applicazione di filtri in base al metodo, alla classe o al nome del pacchetto, consulta Registrare e ispezionare le tracce dei metodi.
Scheda Richiesta in Network Profiler
Network Profiler now includes a Request tab that provides details about network requests during the selected timeline. Nelle versioni precedenti, Network Profiler forniva solo informazioni sulle risposte di rete.
Visualizzazione Thread in Network Profiler
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 le dimensioni, il tipo, lo stato e la durata della trasmissione.
- Visualizzazione thread: mostra l'attività di rete di ciascun thread della CPU della tua 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 della griglia di riferimento
- Possibilità di caricare un'immagine di riferimento e utilizzarla come overlay (utile per confrontare il layout con un mockup dell'interfaccia utente)
- Esegui il rendering dell'anteprima del sottoalbero per isolare una vista in un layout complesso
Layout Editor
La Tavolozza nell'editor di layout è stata migliorata in diversi modi:
- Riorganizzazione delle categorie per visualizzazioni e layout.
- Nuova categoria Comune per visualizzazioni e layout, che puoi aggiungere con un comando Preferiti.
- Ricerca di visualizzazioni e layout migliorata.
- Nuovi comandi per aprire la documentazione di un elemento di layout o di una visualizzazione specifica.
Puoi utilizzare il nuovo comando Converti visualizzazione nell'Albero dei componenti o nell'editor di progettazione per convertire una visualizzazione o un layout in 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.
Esegui ed Esegui istantaneo
Il comportamento dell'opzione Usa la stessa selezione per i lanci futuri nella finestra di dialogo Seleziona destinazione di deployment è stato reso più coerente. Se l'opzione Usa stessa selezione è attiva, la finestra di dialogo Seleziona destinazione di deployment si apre solo la prima volta che utilizzi il comando Esegui finché il dispositivo selezionato non è più collegato.
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 suddiviso.
Emulatore
Per informazioni dettagliate sulle novità e sulle modifiche nell'emulatore dall'Android Studio 3.0, consulta le note di rilascio dell'emulatore Android dalla versione 27.0.2 alla versione 27.1.12.
I principali miglioramenti includono:
- Istantanee di avvio rapido per il salvataggio dello stato dell'emulatore e un avvio più rapido, con la possibilità di utilizzare il comando Salva ora per salvare uno stato di avvio personalizzato.
- Schermata dell'emulatore senza finestra.
- Immagini di sistema per Android 8.0 (livello API 26), Android 8.1 (livello API 27) e Android P Developer Preview.
Miglioramenti all'interfaccia utente e all'esperienza utente
Altre descrizioni comando, scorciatoie da tastiera e messaggi utili
Abbiamo aggiunto descrizioni comando e messaggi utili in molti punti di Android Studio.
Per visualizzare le scorciatoie da tastiera per molti comandi, tieni premuto il cursore del mouse sopra un pulsante finché non viene visualizzata la descrizione comando.
Menu Strumenti > Android rimosso
Il menu Strumenti > 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 Monitor dispositivi è stato rimosso, come descritto di seguito.
Monitor dei dispositivi 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 Monitor dei dispositivi ora è fornita 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 release importante che include una serie di nuove funzionalità e miglioramenti.
Utenti macOS: se stai aggiornando una versione precedente di Android Studio, potresti visualizzare una finestra di dialogo di errore di aggiornamento con il messaggio "Sono stati rilevati alcuni conflitti nell'area di installazione". Basta ignorare questo errore e fare clic su Annulla per riprendere l'installazione.
3.0.1 (novembre 2017)
Si tratta di un aggiornamento minore di Android Studio 3.0 che include correzioni di bug generali e miglioramenti delle prestazioni.
Plug-in Android per Gradle 3.0.0
Il nuovo plug-in Android per Gradle include una serie di miglioramenti e nuove funzionalità, ma migliora principalmente le prestazioni di compilazione per i progetti con un numero elevato di moduli. Quando utilizzi il nuovo plug-in con questi progetti di grandi dimensioni, dovresti riscontrare quanto segue:
- Tempi di configurazione della compilazione 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 compilazione incrementali più rapidi quando vengono applicate semplici modifiche al codice o alle risorse.
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 compilazione e ai plug-in Gradle.
Questa versione include anche:
- Supporto per Android 8.0.
- Supporto per la creazione di APK distinti in base alle risorse linguistiche.
- Supporto per le librerie Java 8 e le funzionalità del linguaggio Java 8 (senza il compilatore Jack).
- Supporto della libreria di supporto Android Test 1.0 (Android Test Utility e Android Test Orchestrator).
- Sono state migliorate le velocità di build di ndk-build e cmake.
- È 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ù, consulta Eseguire la migrazione da ndkcompile.
Per ulteriori informazioni sulle modifiche, consulta le note di rilascio del plug-in Android per Gradle.
Se è tutto pronto per eseguire l'upgrade al nuovo plug-in, consulta Eseguire 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. Di conseguenza, con questa release, Android Studio include il supporto del linguaggio Kotlin per lo sviluppo di 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 alcune funzionalità del linguaggio Java 8 e utilizzare le librerie create con Java 8. Jack non è più necessario e devi prima disattivare Jack per utilizzare il supporto migliorato di Java 8 integrato nella toolchain predefinita.
Per aggiornare il progetto in modo che supporti la nuova toolchain del linguaggio Java 8, aggiorna Compatibilità con il codice sorgente e Compatibilità con il codice di destinazione su 1.8 nella finestra di dialogo Struttura del progetto (fai clic su File > Struttura del progetto). Per scoprire di più, scopri come utilizzare le funzionalità del linguaggio Java 8.
Android Profiler
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 monitoraggio dei metodi basato su esempi per misurare il tempo di esecuzione del codice, acquisire dump dell'heap, visualizzare le allocazioni di memoria e ispezionare i dettagli dei file trasmessi tramite 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 di tocco, le pressioni dei tasti e le modifiche dell'attività, in modo da avere più contesto per comprendere gli altri eventi di rendimento nella sequenza temporale.
Nota: anche la visualizzazione Logcat è stata spostata in una finestra distinta (in precedenza si trovava all'interno di Android Monitor, che è stato rimosso).
Nella sequenza temporale di panoramica di Android Profiler, fai clic sulle sequenze temporali CPU, MEMORIA o RETE per accedere agli strumenti di profiler corrispondenti.
CPU Profiler
Lo strumento di analisi della CPU ti aiuta ad analizzare l'utilizzo del thread della CPU della tua app attivando una traccia della CPU campionata o instrumentata. Puoi quindi risolvere i problemi di prestazioni della CPU utilizzando una serie di visualizzazioni e filtri dei dati.
Per saperne di più, consulta la guida di Profiler CPU.
Memory Profiler
Lo strumento di analisi della memoria consente di identificare perdite di memoria e giri di memoria che possono portare a balbuzie, blocchi e persino arresti anomali dell'app. Mostra un grafico in tempo reale dell'utilizzo della memoria della tua app, ti consente di acquisire un dump dell'heap, forzare le raccolte dei rifiuti e monitorare le allocazioni di memoria.
Per ulteriori informazioni, consulta la guida di Memory Profiler.
Network Profiler
Network Profiler ti consente di monitorare l'attività di rete della tua app, esaminare il payload di ciascuna richiesta di rete e tornare al codice che ha generato la richiesta di rete.
Per ulteriori informazioni, consulta la guida di Network Profiler.
Profilazione e debug degli APK
Ora Android Studio ti consente di profilare e eseguire il debug di qualsiasi APK senza dover eseguire la compilazione da un progetto Android Studio, a condizione che l'APK sia compilato per abilitare il debug e tu abbia 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à aperto un progetto, fai clic su File > Profila o esegui il debug dell'APK nella barra dei menu. Vengono visualizzati i file APK scompattati, ma il codice non viene decompilato. Pertanto, per aggiungere correttamente i breakpoint e visualizzare le analisi dello stack, devi allegare i file di codice sorgente Java e i simboli di debug nativi.
Per ulteriori informazioni, consulta Eseguire il profiling ed eseguire il debug di APK precompilati.
Esplora file del dispositivo
Il nuovo File Explorer del dispositivo ti consente di controllare il filesystem del dispositivo collegato e di trasferire file tra il dispositivo e il computer. Questo sostituisce lo strumento del file system disponibile in DDMS.
Per aprirlo, fai clic su Visualizza > Finestre degli strumenti > Esplora file del dispositivo.
Per ulteriori informazioni, consulta la guida di File Explorer del dispositivo.
Assistenza per le app istantanee
Il nuovo supporto per le app istantanee Android ti consente di creare app istantanee nel tuo progetto utilizzando due nuovi tipi di moduli: moduli di app istantanee e moduli di funzionalità (questi richiedono l'installazione dell'SDK di sviluppo di app istantanee).
Android Studio include anche una nuova azione di refactoring di modularizzazione per aiutarti a 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 di funzionalità di app istantanee, seleziona le classi nella finestra Progetto e fai clic su Refactor > Modularizza. Nella finestra di dialogo visualizzata, seleziona il modulo in cui devono essere inseriti i corsi e fai clic su OK.
Quando è tutto pronto per testare l'app istantanea, puoi crearla ed eseguirla nel modulo dell'app istantanea su un dispositivo connesso specificando l'URL dell'app istantanea nelle opzioni di lancio della configurazione di esecuzione: seleziona Esegui > Modifica configurazioni, seleziona il modulo dell'app istantanea e imposta l'URL in Opzioni di lancio.
Per ulteriori informazioni, consulta 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 scoprire di più, scopri come creare un progetto Android Things.
Procedura guidata per le icone adattive
Image Asset Studio ora supporta i drawable vettoriali e consente di creare icone di Avvio applicazioni adattive per Android 8.0 e contemporaneamente icone tradizionali ("legacy") per i dispositivi meno recenti.
Per iniziare, fai clic con il tasto destro del mouse sulla cartella res nel progetto, quindi fai clic su Nuovo > Asset immagine. Nella finestra Asset Studio, seleziona Icone Avvio app (adattative e precedenti) come tipo di icona.
Nota: per utilizzare le icone del programma di avvio adattivo, devi impostare compileSdkVersion
su 26 o versioni successive.
Per saperne di più, consulta la sezione Icone ad attivazione dinamica.
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). L'editor del layout consente anche di visualizzare l'anteprima dei caratteri nel 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 saperne di più, consulta la sezione relativa ai caratteri scaricabili.
Assistente per l'indicizzazione delle app di Firebase
L'Assistente Firebase è stato aggiornato con un nuovo tutorial per testare l'indicizzazione delle app. Per aprire l'assistente, seleziona Strumenti > Firebase. Quindi, seleziona Indicizzazione delle app > Testa l'Indicizzazione delle app.
Il tutorial include nuovi pulsanti per testare l'indicizzazione dei contenuti pubblici e personali:
- Nel passaggio 2, fai clic su Anteprima dei risultati di ricerca per verificare che i tuoi URL vengano visualizzati 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.
Assistente Link per app Android
L'Assistente per i link alle app è stato aggiornato con le seguenti nuove funzionalità:
-
Aggiungi test URL per ogni mappatura URL per assicurarti che i filtri di intent gestiscano gli URL reali.
Puoi anche definire questi test degli URL manualmente utilizzando il tag
<tools:validation>
descritto di seguito. -
Crea un file Digital Asset Links con la voce dell'oggetto appropriata per supportare Google Smart Lock e aggiungi il tag
asset_statements
<meta-data>
corrispondente al file manifest.
Convalidatore del filtro intent-filter dell'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"
nel
tag <manifest>
.
Se uno degli URL di test non supera la definizione del filtro intent, viene visualizzato un errore di lint. Un errore di questo tipo ti consente comunque di creare varianti di debug, ma interrompe le build di release.
Layout Editor
Layout Editor è stato aggiornato con una serie di miglioramenti, tra cui:
- Nuovo layout e nuove icone della barra degli strumenti.
- Layout aggiornato nell'albero dei componenti.
- Miglioramento degli inserimenti delle visualizzazioni tramite trascinamento.
- Nuovo riquadro degli errori sotto l'editor, che mostra tutti i problemi con i suggerimenti per la loro risoluzione (se disponibili).
- Vari miglioramenti all'interfaccia utente per la creazione con
ConstraintLayout
, tra cui:- Nuovo supporto per creare barriere.
- Nuovo supporto per la creazione di gruppi: nella barra degli strumenti, seleziona Linee guida > Aggiungi gruppo (è richiesta ConstraintLayout 1.1.0 beta 2 o versioni successive)
- Nuova UI per creare catene: seleziona più visualizzazioni, quindi fai clic con il tasto destro del mouse e seleziona Catena.
Layout Inspector
L'strumento di ispezione del layout include miglioramenti per semplificare il debug dei problemi relativi ai layout delle app, tra cui il raggruppamento delle proprietà in categorie comuni e una nuova funzionalità di ricerca nei riquadri Visualizza albero e Proprietà.
Strumento di analisi APK
Ora puoi utilizzare APK Analyzer dalla riga di comando con lo strumento
apkanalyzer
.
Anche lo strumento di analisi APK è stato aggiornato con i seguenti miglioramenti:
- Per gli APK creati con ProGuard, puoi caricare file di mapping ProGuard che aggiungono funzionalità al visualizzatore DEX, tra cui:
- Nodi in grassetto per indicare che non devono essere rimossi durante la 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.
- DEX Viewer ora mostra l'impatto stimato delle dimensioni di ogni pacchetto, classe e metodo.
- Nuove opzioni di filtro in alto per mostrare e nascondere campi e metodi.
- Nella visualizzazione ad albero, i nodi che sono riferimenti non definiti nel file DEX vengono visualizzati in corsivo.
Per ulteriori informazioni, vedi Analizzare la build con APK Analyzer.
Anteprima per il compilatore DEX D8
Android Studio 3.0 include un nuovo compilatore DEX facoltativo chiamato D8. Alla fine sostituirà il compilatore DX, ma puoi attivare subito l'utilizzo del nuovo compilatore D8.
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 provarlo, imposta quanto segue nel file gradle.properties
del progetto:
android.enableD8=true
Per ulteriori informazioni, consulta 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 mantenere aggiornate le librerie, in particolare quando si utilizza un sistema di integrazione continua (CI).
Ora tutti i nuovi progetti includono il repository Google Maven 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 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.
- È stato eseguito l'upgrade dell'IDE di base a IntelliJ 2017.1.2, che aggiunge una serie di nuove funzionalità di 2016.3 e 2017.1, come il refactoring del linguaggio Java 8, i suggerimenti per i parametri, l'evidenziazione semantica, i punti di interruzione trascinabili, i risultati istantanei nella ricerca e molto altro ancora.
- Sono stati aggiunti molti nuovi controlli lint.
- Consulta anche gli ultimi aggiornamenti di Android Emulator.
2.3 (marzo 2017)
Android Studio 2.3.0 è principalmente una release per la correzione di bug e per la 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.
Consulta 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 relativo al mancato funzionamento corretto di alcuni dispositivi Android fisici con Esecuzione istantanea (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 >
New > 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<T>)">Context.getSystemService()</a></code>
can cause a memory leak if the context is not the application context.
Lint looks for these initializations, and if it <em>cannot</em> determine
that the context is the application context, it suggests you use <code><a href="/reference/android/content/Context.html#getApplicationContext()">Context.getApplicationContext()</a></code> to get the proper context for the
initialization.
</li>
<li>Improved Resource Prefix: The existing <code>resourcePrefix</code>
lint check had many limitations. You can now configure your project with
a prefix, such as <code>android { resourcePrefix '<var>my_lib</var>'
}</code>, and lint makes sure that all of your resources are using this
prefix. You can use variations of the name for styles and themes. For
example for the <var>my_lib</var> prefix, you can have themes named
<code>MyLibTheme</code>, <code>myLibAttr</code>,
<code>my_lib_layout</code>, and so on.
</li>
<li>Switch to WebP: This check identifies images in your project that can
be converted to WebP format based on your project’s
<code>minSdkVersion</code> setting. An associated quickfix can
automatically convert the images, or you can <a href=
"/studio/write/convert-webp.html">convert images to WebP</a> manually.
</li>
<li>Unsafe WebP: If your project already includes WebP images, this check
analyzes your project to ensure that your <code>minSdkVersion</code>
setting is high enough to support the included images. For more
information about WebP support in Android and Android Studio, see
<a class="external" href=
"https://developers.google.com/speed/webp/faq#which_web_browsers_natively_support_webp">
Which browsers natively support WebP?</a> and <a href=
"/studio/write/convert-webp.html">Create WebP Images Using Android
Studio</a>.
</li>
</ul>
</li>
</ul>
<h3 class="hide-from-toc">
Changes
</h3>
<ul>
<li>A separate button to push changes with Instant Run: After deploying your
app, you now click <b>Apply Changes</b> <img src=
"/studio/images/buttons/toolbar-apply-changes.svg" alt="" class=
"inline-icon"> to quickly push incremental changes to your running app using
Instant Run. The <b>Run</b> <img src="/studio/images/buttons/toolbar-run.png"
alt="" class="inline-icon"> and <b>Debug</b> <img src=
"/studio/images/buttons/toolbar-debug.png" alt="" class="inline-icon">
buttons are always available to you when you want to reliably push your
changes and force an app restart.
<ul>
<li>Instant Run is supported only when deploying your app to a target
device running Android 5.0 (API level 21) or higher.
</li>
<li>Instant Run is no longer disabled for projects that <a href=
"/studio/projects/add-native-code.html">link to external native
projects</a> using CMake or ndk-build. However, you can only use Instant
Run to push incremental changes to your Java code, not your native code.
</li>
<li>Cold swaps (which you can force for a running app by clicking
<strong>Run</strong> <img src="/studio/images/buttons/toolbar-run.png"
alt="" class="inline-icon">) are now more reliable. Forcing a cold swap
also fixes the issue where changes to notification and widget UIs were
not updated on the target device.
</li>
<li>Includes optimizations that make app startup much faster. These
optimizations may affect profiling, so you should temporarily <a href=
"/studio/run/index.html#disable-ir">disable Instant Run</a> whenever
profiling your app.
</li>
</ul>
</li>
<li>
<p>
The <b>AVD Manager</b> <img src=
"/studio/images/buttons/toolbar-avd-manager.png" alt="" class=
"inline-icon"> and <b>SDK Manager</b> <img src=
"/studio/images/buttons/toolbar-sdk-manager.png" alt="" class=
"inline-icon"> buttons are now included in the lean Navigation Bar as
well as the full Toolbar. To use the lean Navigation Bar, click
<b>View</b> to open the View menu, then ensure that <b>Navigation Bar</b>
is selected and <b>Toolbar</b> is <em>not</em> selected.
</p>
<img src="/studio/images/releases/navigationbar_sdkavd_2x.png" width="757">
</li>
<li>The "Hybrid" debugger has been renamed to "Dual" debugger.
</li>
<li>In the <a href="/studio/run/rundebugconfig.html">Run/Debug
Configurations</a> dialog, under Defaults in the left pane, the following run
configuration names have changed with no behavior changes:
<ul>
<li>The JUnit name has changed to Android JUnit. If you have a project
that uses JUnit run configurations, those configurations are transformed
to Android JUnit run configurations the first time you open the project
with Android Studio. A dialog appears to inform you of the name change.
</li>
<li>The Android Tests name has changed to Android Instrumented Tests.
</li>
</ul>
</li>
<li>The <a href="/studio/debug/am-gpu-debugger.html">GPU Debugger</a> has
been removed from Android Studio as of version 2.3. An open-source,
standalone version of the tool is now available on <a href=
"https://github.com/google/gapid" class="external-link">GitHub</a>.
</li>
<li>The Run/Debug option is no longer available when you right-click a <code>
*.gradle build</code> script.
</li>
<li>All templates now use <code>ConstraintLayout</code> as the default
layout.
</li>
<li>The Widgets palette in the Layout Editor has been redesigned.
</li>
</ul>
<p>
This release also includes a number of bug fixes. <a href=
"https://code.google.com/p/android/issues/list?can=1&q=target%3D2.3+status%3DReleased&colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&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&q=target%3D2.2.3+status%3AReleased+&colspec=ID+Status+Priority+Owner+Summary+Stars+Reporter+Opened&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> > <strong>Signal Strength</strong> controls.
</li>
<li>Added an <strong>LTE</strong> option to the <strong>Cellular</strong>
> <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 > Project
Structure > SDK Location</strong>. You can switch to use the new bundled
JDK by clicking <strong>File > Project Structure > 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
- La funzionalità di esecuzione immediata ora richiede l'installazione dell'SDK di piattaforma corrispondente al livello API del dispositivo di destinazione.
- La funzionalità di esecuzione immediata 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 diparti nella tua app in esecuzione. ( Bug: #213454)
- L'app si arresta in modo anomalo quando l'utente passa da una sessione di Instant Run a una non di Instant Run in cui per una classe Serializable non è definito serialVersionUID. (Bug: #209006)
- Le modifiche allo stile non vengono applicate con l'esecuzione istantanea. (Bug: #210851)
- La sessione di esecuzione immediata non è affidabile e causa FileNotFoundException. (Bug: #213083)
- Le modifiche ai drawable non vengono applicate finché non viene eseguita la ricostruzione completa per KitKat. (Bug: #21530)
- Le modifiche alle risorse non vengono applicate con l'esecuzione istantanea quando i set di origini personalizzati 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 delle annotazioni non vengono applicate con l'esecuzione istantanea. (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 l'esecuzione come. (Bug: #210875)
- Arresto anomalo dell'app dopo il riavvio dell'esecuzione istantanea. (Bug: #219744)
- ClassNotFoundException osservato quando si passa da Instant Run a il debug istantaneo. (Bug: #215805)
<li>Improved performance for <strong>Gradle sync</strong> within the IDE,
especially for large projects.
</li>
<li>Improved build times for both full and incremental builds with new app
packaging code.
</li>
<li>Improved <strong>Jack compiler performance and features</strong>,
including support for annotation processors and dexing in process. To learn
more, read the <a href=
"/studio/releases/gradle-plugin.html#revisions">Android plugin for Gradle
2.2.0 release notes</a>.
</li>
<li>Removed the <strong>Scale</strong> AVD property from the AVD Manager.
</li>
<li>The Android Emulator <strong>-port</strong> and <strong>-ports</strong>
command-line options now report which ports and serial number the emulator
instance is using, and warn if there are any issues with the values you
provided.
</li>
<li>Improved the <strong><a href=
"/studio/write/create-java-class.html">Create New Class dialog</a></strong>
and the corresponding file templates. <strong>Note:</strong> If you've
previously customized the <strong>AnnotationType</strong>,
<strong>Class</strong>, <strong>Enum</strong>, <strong>Interface</strong>, or
<strong>Singleton</strong> file templates, you need to modify your templates
to comply with the new templates or you won’t be able to use the new fields
in the <strong>Create New Class</strong> dialog.
</li>
<li>Improved the <strong><a href=
"/studio/write/vector-asset-studio.html">Vector Asset Studio</a></strong>
user interface and added support for Adobe Photoshop Document (PSD) files.
</li>
<li>Improved the <strong><a href=
"/studio/write/image-asset-studio.html">Image Asset Studio</a></strong> user
interface.
</li>
<li>Improved the <strong>Theme Editor</strong>'s Resource Picker.
</li>
<li>Fixed memory leaks and reduced overall memory usage in Android Studio.
</li>
<li>Added a <strong>Background</strong> button in the <strong><a href=
"/studio/intro/update.html#sdk-manager">SDK Manager</a></strong> so you can
get back to work and install your packages in the background.
</li>
<li>Improved <strong><a href="/studio/intro/accessibility.html">Accessibility
features</a></strong>, including support for screen readers and keyboard
navigation.
</li>
<li>Enhanced <strong>Code Analysis</strong> includes code quality checks for
Java 8 language usage and more cross-file analysis.
</li>
<li>Several toolbar icons have changed.
</li>
2.1 (aprile 2016)
Le modifiche principali di questo aggiornamento forniscono il supporto per lo sviluppo con la versione Anteprima di Android N.
2.1.3 (agosto 2016)
Questo aggiornamento aggiunge la compatibilità con Gradle 2.14.1, che include miglioramenti delle prestazioni, nuove funzionalità e un'importante correzione di sicurezza. Per maggiori dettagli, consulta le note di rilascio di Gradle.
Per impostazione predefinita, i nuovi progetti in Android Studio 2.1.3 utilizzano Gradle 2.14.1. Per i progetti esistenti, l'IDE ti chiede di eseguire l'upgrade a Gradle 2.14.1 e al plug-in Android per Gradle 2.1.3, che è obbligatorio quando si utilizzano Gradle 2.14.1 e versioni successive.
2.1.2 (giugno 2016)
Questo aggiornamento include una serie di piccole modifiche e correzioni di bug:
- Aggiornamenti e correzioni di bug di Instant Run.
- Miglioramenti alle prestazioni di LLDB e alle notifiche di arresto anomalo.
- È stata corretta una regressione nell'aggiornamento della sicurezza di Android Studio 2.1.1 che causava il fallimento di
git rebase
.
2.1.1 (maggio 2016)
Aggiornamento della release della sicurezza.
La piattaforma Android N aggiunge il supporto per le funzionalità del linguaggio Java 8, che richiedono un nuovo compilatore sperimentale chiamato Jack. Al momento, la versione più recente di Jack è supportata solo in Android Studio 2.1. Pertanto, se vuoi utilizzare le funzionalità del linguaggio Java 8, devi usare Android Studio 2.1 per creare la tua app.
Nota:Esecuzione istantanea viene disattivata quando attivi il compilatore Jack perché al momento non sono compatibili.
Anche se Android Studio 2.1 è ora stabile, il compilatore Jack è ancora sperimentale e devi attivarlo con la proprietà jackOptions
nel file build.gradle
.
A parte le modifiche per supportare la versione N di anteprima, Android Studio 2.1 include correzioni di bug minori e i seguenti miglioramenti:
- Il debugger C++ compatibile con Java è ora attivato per impostazione predefinita quando utilizzi un dispositivo o un emulatore N e selezioni la modalità di debugger Native (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, l'invio di modifiche incrementali al codice all'emulatore o a un dispositivo fisico è ora quasi istantaneo. Rivedi gli aggiornamenti senza eseguire nuovamente il deployment di una nuova build di debug o, in molti casi, senza riavviare l'app.
- La funzionalità Instant Run supporta l'invio delle seguenti modifiche a un'app in esecuzione:
- Modifiche all'implementazione di un metodo statico o di un metodo di istanza esistente
- Modifiche a una risorsa dell'app esistente
- Modifiche al codice di struttura, ad esempio la firma di un metodo o un campo statico (richiede un dispositivo di destinazione con livello API 21 o versioni successive).
- Leggi la documentazione per scoprire di più su Instant Run.
Nota: l'esecuzione istantanea è supportata solo quando esegui il deployment della variante di compilazione di debug, utilizzi il plug-in Android per Gradle versione 2.0.0 o successive e configuri il file
build.gradle
a livello di modulo dell'app perminSdkVersion 15
o versioni successive. Per il miglior rendimento, configura la tua app perminSdkVersion 21
o versioni successive.
Nuove aggiunte a Lint:
- Ispezione delle istruzioni
switch
che utilizzano interi annotati@IntDef
per assicurarsi che tutte le costanti vengano gestite. Per aggiungere rapidamente eventuali istruzioni mancanti, utilizza il menu a discesa dell'azione di intenzione e seleziona Aggiungi costanti @IntDef mancanti. - Indicatori di tentativi errati di utilizzare l'interpolazione di stringhe per inserire
i numeri di versione nel file
build.gradle
. - Indicatori per le classi anonime che estendono la classe
Fragment
. - Indicatori per il codice nativo in posizioni non sicure, ad esempio le cartelle
res/
easset/
. Questo flag consiglia di archiviare il codice nativo nella cartellalibs/
, che viene poi pacchettizzato in modo sicuro nella cartelladata/app-lib/
dell'applicazione al momento dell'installazione. AOSP: #169950 - Indicatori per chiamate non sicure a
Runtime.load()
eSystem.load()
. AOSP: #179980 - Trova e rimuovi le risorse non utilizzate selezionando Ristruttura > Rimuovi
risorse non utilizzate dalla barra dei menu. Il rilevamento delle risorse inutilizzate ora supporta le risorse a cui fanno riferimento solo risorse inutilizzate, i riferimenti nei file non elaborati come i riferimenti alle immagini
.html
e gli attributitools:keep
etools:discard
utilizzati dallo strumento di riduzione delle risorse Gradle, tenendo conto dei set di origine inattivi (ad esempio le risorse utilizzate in altri tipi di build) e gestendo correttamente le importazioni dei campi statici. - Verifica che i riferimenti alle API implicite siano supportati su tutte le piattaforme
scelte come target da
minSdkVersion
. - Segnala l'uso improprio di
RecyclerView
eParcelable
. - Ora le ispezioni
@IntDef
,@IntRange
e@Size
vengono controllate anche per gli array e i parametri varargsint
.
Miglioramenti aggiuntivi:
- Ottimizzato per Android Emulator 2.0, che è più veloce che mai, supporta una gamma più ampia di dispositivi virtuali e presenta un'interfaccia utente notevolmente 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 attivare il supporto multi-core e specificare il numero di core che l'emulatore può utilizzare.
- Nelle impostazioni avanzate, puoi determinare la modalità di rendering delle immagini
sull'emulatore selezionando una delle seguenti opzioni:
- Hardware: utilizza la scheda grafica del computer per un rendering più rapido.
- Software: utilizza il rendering basato su software.
- Automatica:lascia che sia l'emulatore a decidere l'opzione migliore. Questa è l'impostazione predefinita.
- Tempi di imballaggio AAPT migliorati specificando il target di deployment prima della compilazione dell'app. In questo modo, Android Studio può pacchettizzare in modo efficiente solo 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 Test Lab con Android Studio.
- È stata aggiunta un'anteprima del nuovo debugger GPU. 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, indicizzazione delle app e funzionalità di ricerca alle tue app per aumentare il traffico verso la tua app, scoprire quali contenuti dell'app vengono utilizzati più di frequente e attirare nuovi utenti. Testa e convalida gli URL nella tua app direttamente in Android Studio. Consulta Supportare gli URL e l'indicizzazione delle app 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 quando vengono completati gli attributi. Per verificare se questa opzione è attivata, apri la finestra di dialogo Impostazioni o Preferenze, vai a Editor > Generale > Chiavi intelligenti e seleziona la casella accanto ad Aggiungi virgolette per il valore dell'attributo al completamento dell'attributo. Numero del problema: 195113
- L'editor XML ora supporta il completamento del codice per le espressioni di associazione dei dati.
Android Studio 1.5.1 (dicembre 2015)
Correzioni e miglioramenti:
- È stato risolto un problema di errore di rendering nell'editor di layout. Numero del problema: 194612
- È stata aggiunta la possibilità di variare gli attributi del file manifest
description
in base alla configurazione. Problema: 194705 - È stato migliorato il contrasto del tema di aspetto Darcula di Android Studio in Vector Asset Studio. Numero del problema: 191819
- È stato aggiunto il supporto del pulsante Guida a Vector Asset Studio.
- È stato aggiunto il supporto dell'operatore
%
per l'associazione di dati. Problema: 194045 - È stato risolto un caso in cui l'avvio di un'app per il debug comportava la connessione del debugger al dispositivo sbagliato. Problema: 195167
- È stata corretta un'eccezione di puntatore nullo che potrebbe verificarsi durante il tentativo di eseguire un'app in determinate situazioni.
Android Studio 1.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 Monitor Android nella parte inferiore della finestra principale. In Android Monitor, fai clic sulla scheda Memoria. Mentre il monitoraggio è in esecuzione, fai clic sull'icona Dump heap Java, poi su Acquisizioni nella finestra principale e fai doppio clic sul file per visualizzarlo. Fai clic su Capture Analysis (Esegui analisi) a destra. (Il monitoraggio dei dispositivi Android non può essere eseguito contemporaneamente a Android Monitor.)
- È stato aggiunto il supporto di nuovi link diretti e link alle 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 strumentolint
per Android ora contiene avvisi per alcuni problemi relativi ai link diretti e all'API App Indexing. - È stata aggiunta la possibilità di utilizzare nomi brevi durante il completamento automatico del codice delle visualizzazioni personalizzate nell'editor di codice.
- È stato aggiunto il supporto di altri elementi
VectorDrawable
a Vector Asset Studio per la compatibilità con le versioni precedenti. Vector Asset Studio può utilizzare questi elementi per convertire gli elementi drawable vettoriali 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 fornirti un feedback immediato e pratico in Android Studio, oltre 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, elementouses-feature
e banner mancanti. Per Android Auto, può verificare l'utilizzo corretto nel file descrittore a cui fa riferimento il fileAndroidManifest.xml
, segnalare se non è presente un filtro intent per la classeMediaBrowserService
e identificare determinati problemi relativi alle azioni vocali. - Sono stati aggiunti nuovi controlli
lint
per i ricevitori di trasmissione non sicuri, l'utilizzo delle classiSSLCertificateSocketFactory
eHostnameVerifier
e le chiamateFile.setReadable()
eFile.setWritable()
. Rileva inoltre le ricerche di risorse manifest non valide, in particolare per le risorse che variano in base alla configurazione. - Sono stati corretti una serie di problemi di stabilità.
Android Studio 1.4.1 (ottobre 2015)
Correzioni e miglioramenti:
- È stato risolto un problema di memorizzazione nella cache del modello Gradle che poteva portare a una sincronizzazione eccessiva di Gradle al riavvio dell'IDE.
- È stato risolto un problema di deadlock del debug nativo.
- Risolto un problema che bloccava gli utenti del sistema di controllo 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
- È stata corretta la segnalazione di errori di traduzione errati per le impostazioni internazionali che hanno un qualificatore di regione e una traduzione nella regione (ma non nell'impostazione internazionale di base). Problema: 188577
- È stato risolto un problema di blocco in Editor temi relativo alla sua interazione con Editor layout. Problema: 188070
- È stato risolto un conflitto di ricarica e modifica dell'editor di temi che causava l'aggiornamento non corretto degli attributi. Problema: 187726
- Miglioramento delle prestazioni di Theme Editor.
- È stato risolto un problema per cui l'attributo
android:required
veniva ignorato nel file manifest. Problema: 187665
Android Studio 1.4.0 (settembre 2015)
Correzioni e miglioramenti:
- È stato aggiunto lo strumento Vector Asset Studio per l'importazione di grafica vettoriale, ad esempio icone Materiale e file SVG. Per utilizzare questo strumento, nella visualizzazione Android della finestra Progetto, fai clic con il tasto destro del mouse sulla cartella res e seleziona Nuovo > Asset vettoriale.
- Sono state aggiunte nuove funzioni di monitoraggio Android, GPU e rete. Per utilizzare questi monitor, fai clic su Monitor Android nella parte inferiore della finestra principale. Android Device Monitor non può essere in esecuzione contemporaneamente ad Android Monitor.
- È stata aggiunta un'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 la specifica Material Design e per la
appcompat
libreria di supporto per la compatibilità con le versioni precedenti.
Android Studio 1.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 della visualizzazione non risolte potevano causare l'arresto anomalo dell'editor di layout. Problema: 178690
- È stato risolto il problema relativo agli 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 1.3.1 (agosto 2015)
Correzioni e miglioramenti:
- È stato corretto il supporto per la creazione di un dispositivo virtuale Android (AVD) Android Wear su Windows.
- È stato aggiornato il Wizard del progetto in modo che utilizzi il nome del progetto inserito.
- È stato aggiunto il supporto per consentire l'archiviazione dell'SDK Android in una directory di sola lettura.
- È stata aggiornata la versione del plug-in Android per Gradle alla versione 1.3.0.
- Sono stati risolti i problemi relativi all'avvio di una sessione di debug dalla shell Unix Android Debug Bridge (adb).
- È stato corretto il messaggio di rinominazione del pacchetto Java in modo che mostri il nome corretto del pacchetto.
Android Studio 1.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 altre annotazioni, come
@RequiresPermission
,@CheckResults
e@MainThread
. - È stata aggiunta la possibilità di generare dump dell'heap Java e analizzare le allocazioni dei thread dal Monitor della memoria. Puoi anche convertire i file in formato binario HPROF specifici per Android in formato HPROF standard da Android Studio.
- È stato integrato SDK Manager
in Android Studio per semplificare l'accesso ai pacchetti e agli strumenti e fornire notifiche di aggiornamento.
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 l'autenticazione tramite impronta. - È 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 per un modulo APK di test separato per creare APK di test in Android Studio.
- Aggiornamento di AVD Manager con ottimizzazioni di HAXM e notifiche migliorate.
- È stato aggiunto il supporto per gli emulatori ARM e MIPS a 64 bit per QEMU 2.1.
- È stata semplificata la risoluzione degli avvisi Lint mediante l'aggiunta di correzioni rapide, come la generazione automatica dell'implementazione di Parcelable.
- È stato aggiunto il supporto per i modelli dal vivo per l'inserimento rapido di snippet di codice.
Android Studio 1.2.2(giugno 2015)
Correzioni e miglioramenti:
- Sono stati risolti i problemi di compilazione 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 1.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 i file di dati sulle prestazioni della memoria e della CPU acquisiti, ad esempio il monitoraggio dei metodi della CPU e gli snapshot dell'heap della memoria.
- Supporto esteso per le annotazioni con annotazioni dei metadati aggiuntive e nullità dedotta.
- È 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 e le prestazioni del codice:
-
- 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.
- È stato aggiunto il rilevamento dello stile di codice per le dimensioni di tabulazione e rientro.
- Sono stati aggiunti file scratch per esperimenti di codice e prototipazione senza file di progetto.
- È stato aggiunto l'inserimento simultaneo di tag di apertura e chiusura nei file HTML e XML.
- È stato aggiunto un decompilatore di classi Java integrato per consentirti di esaminare i contenuti di una libreria per la quale non è disponibile il codice sorgente.
Consulta la pagina Novità di IntelliJ per una descrizione completa delle nuove funzionalità e dei miglioramenti.
- Sono state aggiunte altre visualizzazioni dei progetti per Scratches, File di progetto, Problemi, Produzione e Test per migliorare la gestione e l'accesso ai progetti.
- 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
cartella
res/drawable-280dpi/
.
Android Studio 1.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 in modo da includere
cartelle
res/mipmap
per icone di Avvio specifiche per la densità. Queste cartelleres/mipmap
sostituiscono leres/drawable
cartelle per le icone in Avvio applicazioni. - Sono state aggiornate le icone di Avvio applicazioni in modo che abbiano un aspetto Material Design ed è stata aggiunta un'icona di Avvio applicazioni
xxxhdpi
. - Sono stati aggiunti e migliorati i controlli Lint per le combinazioni di regioni e lingue, le icone di Avvio app, i nomi delle risorse e altri problemi comuni di codice.
- È stato aggiunto il supporto per il tag lingua 47 delle Best Current Practice (BCP).
Android Studio versione 1.0.1 (dicembre 2014)
Varie correzioni e miglioramenti:
- È stato risolto il problema di blocco del file device.xml e di AVD Manager.
- È stato corretto il log dell'emulatore sui sistemi Windows.
- È stato risolto il problema relativo alla creazione di AVD con Android Studio e Android SDK installati su unità diverse su sistemi Windows.
- Imposta il canale di aggiornamento predefinito per i nuovi download su Stabile. Se hai installato la versione 1.0.0 di Android Studio e vuoi aggiornamenti della versione stabile e pronta per la produzione, utilizza File > Impostazioni > Aggiornamenti per passare al canale di aggiornamento Stabile.
Android Studio versione 1.0 (dicembre 2014)
Versione iniziale di Android Studio.
Android Studio versione 0.8.14 (ottobre 2014)
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)
È stato aggiunto il supporto per i progetti Android Wear.
Per un elenco completo delle modifiche, visita la pagina tools.android.com.
Android Studio 0.5.2 (maggio 2014)
- Per un elenco completo delle modifiche, visita la pagina tools.android.com.
Android Studio versione 0.4.6 (marzo 2014)
- Per un elenco completo delle modifiche, visita la pagina tools.android.com.
Android Studio versione 0.4.2 (gennaio 2014)
- Per un elenco completo delle modifiche, visita la pagina tools.android.com.
Android Studio versione 0.3.2 (ottobre 2013)
- Per un elenco completo delle modifiche, visita la pagina tools.android.com.
Android Studio 0.2.x (luglio 2013)
- Sono state integrate le ultime modifiche al codice base di IntelliJ. Sono incluse correzioni per i problemi segnalati dagli utenti di Studio, ad esempio modifiche alle dimensioni dei caratteri e al rendering dei caratteri su Linux.
- 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 in modo che contenga il file di output anche se è personalizzato tramite il 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, gusti) insieme anziché separatamente.
- È stata corretta la dipendenza per i test del progetto della libreria in modo da includere correttamente tutte le dipendenze della libreria stessa.
- È stato corretto il caso in cui due dipendenze hanno lo stesso nome di elemento.
- È stato risolto il problema per cui il file delle regole di Proguard non può essere applicato ai gusti.
Tutte le note di rilascio del plug-in Gradle sono disponibili qui: http://tools.android.com/tech-docs/new-build-system.
- È stato corretto il modello IDE in modo che contenga il file di output anche se è personalizzato tramite il DSL. Inoltre,
è stato corretto il DSL per ottenere/impostare il file di output sull'oggetto variante in modo che non sia necessario
utilizzare
- Gli errori di Gradle di aapt non rimandano più ai file di output uniti nella cartella build/, ma 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 attivarla, vai a Preferenze > Compilatore e seleziona la casella Compila 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 delle librerie .aar (ad es. l'utilizzo di una libreria senza una copia locale delle origini). La convalida e la navigazione XML delle risorse non funzionano ancora negli editor di origine.
- Rilevamento di cicli nei riferimenti alle risorse.
- La documentazione rapida (F1), che può mostrare tutte le traduzioni della stringa sotto il cursore, ora mostrerà anche tutti gli overlay delle risorse dei vari tipi di build e dei vari gusti Gradle, nonché delle librerie. Sono elencate in ordine inverso di overlay delle risorse, con barrato le versioni della stringa mascherate.
- Correzioni per gestire l'aggiornamento delle risorse unite quando l'insieme delle dipendenze dei moduli cambia.
- Correzioni di rendering XML per gestire correttamente le dichiarazioni di entità carattere e le interpretazioni letterali XML e Unicode.
- Supporto per il salvataggio di screenshot per le finestre di anteprima e modifica del layout.
- Correzioni di bug dei modelli.
- Correzioni di bug di Lint.
- Varie correzioni per i report sugli arresti anomali. Grazie e continua a inviare report sugli arresti anomali.
Android Studio versione 0.1.x (maggio 2013)
- Varie correzioni di bug, inclusa una correzione per un problema comune di installazione di Windows.
Versioni precedenti del plug-in Android per Gradle
3.6.0 (febbraio 2020)
Questa versione del plug-in Android richiede quanto segue:
-
Gradle 5.6.4. Per scoprire di più, leggi la sezione sull'aggiornamento di Gradle.
-
SDK Build Tools 28.0.3 o versioni successive.
Questo aggiornamento minore supporta la compatibilità con le nuove impostazioni e funzionalità predefinite per la visibilità del pacchetto in Android 11.
Per informazioni dettagliate, consulta le note di rilascio della versione 4.0.1.
Nuove funzionalità
Questa versione del plug-in Android per Gradle include le seguenti nuove funzionalità.
Visualizza associazione
Il binding delle visualizzazioni garantisce la sicurezza in fase di compilazione quando fai riferimento alle visualizzazioni nel
tuo codice. Ora puoi sostituire findViewById()
con il
riferimento alla classe di binding generato automaticamente. Per iniziare a utilizzare il binding delle visualizzazioni,
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 il plug-in Maven per la pubblicazione di Gradle, che consente di pubblicare gli artefatti di compilazione in un repository Apache Maven. Il plug-in Gradle per Android crea un componente per ogni artefatto della variante di build nel modulo della tua app o libreria che puoi utilizzare per personalizzare una 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 viene compilata la versione di debug dell'app, il plug-in utilizza un nuovo
strumento di packaging, chiamato zipflinger, per compilare l'APK. Questo nuovo
strumento dovrebbe offrire miglioramenti alla velocità di compilazione. Se il nuovo strumento di pacchetti
non funziona come previsto,
segnala un bug. Puoi tornare
a utilizzare lo strumento di imballaggio precedente includendo quanto segue nel
file gradle.properties
:
android.useNewApkCreator=false
Attribuzione della build nativa
Ora puoi determinare il tempo necessario a Clang per compilare e collegare ogni file C/C++ nel 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 generare questo file di attribuzione della compilazione:
-
Aggiungi il flag
-Pandroid.enableProfileJson=true
quando esegui una compilazione Gradle. Ad esempio:gradlew assembleDebug -Pandroid.enableProfileJson=true
-
Apri il browser Chrome e digita
chrome://tracing
nella barra di ricerca. -
Fai clic sul pulsante Carica e vai a
<var>project-root</var>/build/android-profile
per trovare il file. Il file si chiamaprofile-<var>timestamp</var>.json.gz
.
Puoi visualizzare i dati di attribuzione della compilazione nativa nella parte superiore del visualizzatore:
Modifiche al comportamento
Quando utilizzi questa versione del plug-in, potresti riscontrare le seguenti modifiche di comportamento.
Librerie native pacchettizzate non compresse per impostazione predefinita
Quando crei l'app, il plug-in ora imposta
extractNativeLibs
su "false"
per
impostazione predefinita. In altre parole, le librerie native sono allineate alle pagine e pacchettizzate
non compresse. Sebbene questo comporti un aumento delle dimensioni del caricamento, gli utenti beneficiano di quanto segue:
- Dimensioni di installazione dell'app ridotte perché la piattaforma può accedere alle librerie native direttamente dall'APK installato, senza creare una copia delle librerie.
- Dimensioni di download ridotte perché 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 per Gradle pacchettizzi le librerie native compresse, 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 dell'NDK, il plug-in Gradle per Android ora seleziona una versione predefinita da utilizzare per la compilazione dei file di codice sorgente.
In precedenza, il plug-in selezionava la versione più recente scaricata dell'NDK.
Utilizza la proprietà android.ndkVersion
nel file build.gradle
del modulo per sostituire il valore predefinito selezionato dal plug-in.
Generazione semplificata di classi R
Il plug-in Gradle per Android semplifica il percorso di compilazione generando un solo classe R per ogni modulo della libreria nel progetto e condividendo queste classi R con le altre dipendenze del modulo. Questa ottimizzazione dovrebbe comportare compilazioni più rapide, ma richiede di tenere presente quanto segue:
- Poiché il compilatore condivide le classi R con le dipendenze dei moduli di upstream, è importante che ogni modulo del progetto utilizzi un nome di pacchetto univoco.
- La visibilità della classe R di una libreria per le altre dipendenze del progetto
è determinata dalla configurazione utilizzata per includere la libreria come
una dipendenza. Ad esempio, se la libreria A include la libreria B come dipendenza "api", la libreria A e le altre librerie che dipendono dalla libreria A hanno accesso alla classe R della libreria B. Tuttavia, altre biblioteche potrebbero non avere accesso al corso R della Biblioteca B. Se la libreria A utilizza la configurazione della dipendenza
implementation
. Per saperne di più, consulta la sezione sulle configurazioni delle dipendenze.
Rimuovi le risorse mancanti dalla configurazione predefinita
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 le norme di conservazione di 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 l'SDK target dell'app è impostato su il livello API 23, che in precedenza consentiva l'accesso a queste annotazioni durante il runtime durante la compilazione dell'app utilizzando versioni precedenti del plug-in Android Gradle e D8.
Altre modifiche al comportamento
-
aaptOptions.noCompress
non è più sensibile alle maiuscole su tutte le piattaforme (sia per APK che per bundle) e rispetta i percorsi che utilizzano caratteri maiuscoli. -
Il binding dei dati è ora incrementale per impostazione predefinita. Per scoprire di più, consulta il problema 110061530.
-
Tutti i test di unità, inclusi i test di unità Roboelectric, ora sono completamente memorizzabili nella cache. Per scoprire di più, consulta il problema 115873047.
Correzioni di bug
Questa versione del plug-in Android per Gradle include le seguenti correzioni di bug:
- I test di unità Robolectric ora sono supportati nei moduli della libreria che utilizzano l'associazione di dati. Per scoprire di più, consulta issue #126775542.
- Ora puoi eseguire attività
connectedAndroidTest
su più moduli quando la modalità di esecuzione in parallelo di Gradle è attivata.
Problemi noti
Questa sezione descrive i problemi noti del plug-in Android per Gradle 3.6.0.
Prestazioni lente dell'attività Android Lint
Il completamento di Android Lint può richiedere molto più tempo in alcuni progetti a causa di una regressione nell'infrastruttura di analisi, con un conseguente calcolo più lento dei tipi dedotti per le lambda in determinati costrutti di codice.
Il problema è segnalato come un bug in IDEA e verrà risolto nel plug-in Android per Gradle 4.0.
Classe manifest mancante {:#agp-missing-manifest}
Se la tua app definisce autorizzazioni personalizzate nel file manifest, il plug-in Gradle di Android genera in genere una classe Manifest.java
che include le autorizzazioni personalizzate come costanti di stringa. Il plug-in impacchetta
questa classe con la tua app, in modo da poter fare più facilmente riferimento a queste
autorizzazioni in fase di runtime.
La generazione della classe manifest non funziona nel plug-in Android per Gradle 3.6.0.
Se compili l'app con questa versione del plug-in e fa riferimento
alla classe manifest, potresti visualizzare un'eccezione ClassNotFoundException
. 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)
Il plug-in Android per Gradle 3.5.0, insieme a Android Studio 3.5, è una release importante e il risultato di Project Marble, che si concentra sul miglioramento di tre aree principali degli strumenti per sviluppatori Android: stato di salute del sistema, perfezionamento delle funzionalità e correzione dei bug. In particolare, il miglioramento della velocità di compilazione del progetto è stato un obiettivo principale di questo aggiornamento.
Per informazioni su questi e altri aggiornamenti di Project Marble, leggi il post del blog Android for Developers o le sezioni riportate di seguito.
Questa versione del plug-in Android richiede quanto segue:
-
Gradle 5.4.1. Per saperne di più, leggi la sezione sull'aggiornamento di Gradle.
-
SDK Build Tools 28.0.3 o versioni successive.
Questo aggiornamento minore supporta la compatibilità con le nuove impostazioni e funzionalità predefinite per la visibilità del pacchetto in Android 11.
Per informazioni dettagliate, consulta le note di rilascio della versione 4.0.1.
3.5.3 (dicembre 2019)
Questo aggiornamento minore supporta Android Studio 3.5.3 e include varie correzioni di bug 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 incrementale delle annotazioni
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 della compilazione incrementale. Per un elenco completo dei processori di annotazione ottimizzati, consulta la tabella dei processori di annotazione incrementale.
Inoltre, KAPT 1.3.30 e versioni successive supportano anche i processori di annotazione incrementale, che puoi attivare includendo kapt.incremental.apt=true
nel 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 chiedere al plug-in di generare la configurazione del test utilizzando percorsi relativi, il che consente all'attività AndroidUnitTest
di essere completamente memorizzata nella cache, includendo quanto segue nel file AndroidUnitTest
:gradle.properties
android.testConfig.useRelativePath = true
Problemi noti
-
Quando utilizzi il plug-in Kotlin Gradle 1.3.31 o versioni precedenti, potresti visualizzare il seguente avviso durante la compilazione o la sincronizzazione del progetto:
WARNING: API 'variant.getPackageLibrary()' is obsolete and has been replaced with 'variant.getPackageLibraryProvider()'.
Per risolvere questo problema, esegui l'upgrade del plug-in alla versione 1.3.40 o successive.
3.4.0 (aprile 2019)
Questa versione del plug-in Android richiede quanto segue:
-
Gradle 5.1.1 o versioni successive. Per saperne di più, leggi la sezione sull'aggiornamento di Gradle.
Nota: quando utilizzi Gradle 5.0 e versioni successive, la dimensione dell'heap di memoria del daemon Gradle predefinita diminuisce da 1 GB a 512 MB. Ciò potrebbe comportare un peggioramento del rendimento della compilazione. Per sostituire questa impostazione predefinita, specifica la dimensione dell'heap del demone Gradle nel file
gradle.properties
del progetto. -
SDK Build Tools 28.0.3 o versioni successive.
Questo aggiornamento minore supporta la compatibilità con le nuove impostazioni e funzionalità predefinite per la visibilità del pacchetto in Android 11.
Per informazioni dettagliate, consulta le note di rilascio della versione 4.0.1.
3.4.2 (luglio 2019)
Questo aggiornamento minore supporta Android Studio 3.4.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.4.1 (maggio 2019)
Questo aggiornamento minore supporta Android Studio 3.4.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.
Nuove funzionalità
-
Nuove configurazioni delle dipendenze dei controlli lint: il comportamento di
lintChecks
è cambiato ed è stata introdotta una nuova configurazione delle dipendenze,lintPublish
, per darti un maggiore controllo sui controlli lint pacchettizzati nelle librerie Android.-
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 la configurazione delle dipendenzelintChecks
per includere i controlli lint nell'AAR pubblicato, devi eseguire la migrazione di queste dipendenze per utilizzare la nuova configurazionelintPublish
descritta 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 di 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 packaging e firma dovrebbero registrare un miglioramento complessivo della velocità di compilazione. Se noti un peggioramento del rendimento relativo a queste attività, segnala un bug.
-
Modifiche al 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 continuare a creare la tua app istantanea nelle versioni future del plug-in, esegui la migrazione dell'app istantanea all'utilizzo del plug-in delle funzionalità dinamiche, che ti consente anche di pubblicare sia le esperienze istantanee sia quelle delle app installate da un unico app bundle Android. -
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 per Gradle 3.3.0 e ora è attivato per impostazione predefinita sia per i progetti di app sia per le librerie Android che utilizzano il plug-in 3.4.0 e versioni successive.
L'immagine seguente fornisce una panoramica di alto livello della procedura di compilazione prima dell'introduzione di R8.
Ora, con R8, le operazioni di desugaring, shrinking, obfuscating, ottimizzazione e dexing (D8) vengono completate in un unico passaggio, come illustrato di seguito.
Tieni presente che R8 è progettato per funzionare con le regole ProGuard esistenti, quindi probabilmente non dovrai intraprendere alcuna azione per usufruire di R8. Tuttavia, poiché si tratta di una tecnologia diversa da ProGuard progettata specificamente per i progetti Android, la riduzione e l'ottimizzazione potrebbero comportare la rimozione di codice che ProGuard potrebbe non aver rimosso. Pertanto, in questa situazione improbabile, potresti dover aggiungere altre regole per mantenere il codice nell'output della compilazione.
Se riscontri problemi con l'utilizzo di R8, consulta le
domande frequenti sulla compatibilità di R8
per verificare se esiste una soluzione al problema. Se una soluzione non è documentata,
segnala un bug.
Puoi disattivare R8 aggiungendo una delle seguenti righe al file gradle.properties
del progetto:
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
Nota: per un determinato tipo di build, se imposti useProguard
su false
nel file build.gradle
del modulo dell'app, il plug-in Android per Gradle utilizza R8 per ridurre il codice dell'app per quel tipo di build, indipendentemente dal fatto che tu disattivi R8 nel file gradle.properties
del progetto.
-
ndkCompile
è deprecato: ora viene visualizzato un errore di compilazione se provi a utilizzarendkBuild
per compilare le librerie native. Ti consigliamo di utilizzare CMake o ndk-build per aggiungere codice C e C++ al tuo progetto.
Problemi noti
-
Al momento l'utilizzo corretto dei nomi dei pacchetti univoci non è obbligatorio, ma diventerà più rigoroso nelle versioni successive del plug-in. Nel plug-in Android Gradle versione 3.4.0, puoi attivare la verifica se il progetto dichiara nomi di pacchetti accettabili aggiungendo la riga riportata di seguito al file
gradle.properties
.android.uniquePackageNames = true
Per scoprire di più sull'impostazione di un nome del pacchetto tramite il plug-in Android Gradle, consulta Impostare l'ID applicazione.
3.3.0 (gennaio 2019)
Questa versione del plug-in Android richiede quanto segue:
-
Gradle 4.10.1 o versioni successive. Per saperne di più, leggi la sezione sull'aggiornamento di Gradle.
Nota: quando utilizzi Gradle 5.0 e versioni successive, la dimensione dell'heap della memoria del daemon Gradle predefinita diminuisce da 1 GB a 512 MB. Ciò potrebbe comportare una regressione del rendimento della compilazione. Per eseguire l'override di questa impostazione predefinita, specifica la dimensione dell'heap del demone Gradle nel
gradle.properties
del progetto. -
SDK Build Tools 28.0.3 o versioni successive.
Questo aggiornamento minore supporta la compatibilità con le nuove impostazioni e funzionalità predefinite per la visibilità del pacchetto in 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 varie correzioni di bug e miglioramenti delle prestazioni.
Nuove funzionalità
-
Sincronizzazione del percorso di classe migliorata: durante la risoluzione delle dipendenze nei percorsi di classe di runtime e compilazione, il plug-in Gradle di Android tenta di correggere determinati conflitti di versione a valle per le dipendenze che compaiono in più percorsi di classe.
Ad esempio, se il percorso di classe di runtime include la versione 2.0 della libreria A e il percorso di compilazione include la versione 1.0 della libreria A, il plug-in aggiorna automaticamente la dipendenza sul percorso di compilazione alla versione 2.0 della libreria A 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 scoprire di più, consulta Risolvere i conflitti tra i classpath.
-
Miglioramento della compilazione incrementale di Java quando si utilizzano gli elaboratori di annotazioni:questo aggiornamento riduce il tempo di compilazione migliorando il supporto della compilazione incrementale di Java quando si utilizzano gli elaboratori di annotazioni.
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 è attivata, 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 gli elaboratori di annotazioni che utilizzi supportano l'elaborazione incrementale delle annotazioni, 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. In alternativa, puoi includere 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 misurazione sui moduli di funzionalità 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 "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.
La chiamata di determinati metodi precedenti nell'API Variants, come
variant.getJavaCompile()
, potrebbe comunque forzare la configurazione dell'attività. Per assicurarti che la compilazione sia ottimizzata per la configurazione delle attività lazy, richiama nuovi metodi che restituiscano un oggetto TaskProvider, comevariant.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 utilizza R8 anziché ProGuard per ridurre e offuscare il codice e le risorse della tua app. Per scoprire di più su R8, leggi questo post del blog del Blog per 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 classiR.java
intermedie. Questa ottimizzazione può migliorare notevolmente le prestazioni di compilazione per i progetti che includevano molti progetti secondari e dipendenze della libreria, nonché la velocità di indicizzazione in Android Studio. -
Quando crei un Android App Bundle, gli APK generati da questo app bundle che hanno come target Android 6.0 (livello API 23) o versioni successive ora includono per impostazione predefinita le versioni non compresse delle librerie native. Questa ottimizzazione evita che il dispositivo debba creare una copia della libreria e, di conseguenza, riduce le dimensioni sul disco della tua app. Se preferisci disattivare questa ottimizzazione, aggiungi quanto segue al file
gradle.properties
:android.bundle.enableUncompressedNativeLibs = false
-
Il plug-in applica le versioni minime di alcuni plug-in di terze parti.
-
Sincronizzazione del progetto con una sola variante: la sincronizzazione del progetto con la configurazione di compilazione è un passaggio importante per consentire ad Android Studio di comprendere la struttura del progetto. Tuttavia, questa procedura può essere molto laboriosa 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. Se soddisfi questi requisiti, IDE ti chiede di attivare questa ottimizzazione quando sincronizzi il progetto. L'optimizzazione è attivata 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 supporta completamente i progetti che includono i linguaggi Java e C++ e offre un supporto parziale 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à è stata ampliata per supportare NDK. Per scoprire di più, leggi Scaricare automaticamente i pacchetti mancanti con Gradle.
Correzioni di bug
-
Il plug-in Android per Gradle 3.3.0 risolve i seguenti problemi:
- Il processo di compilazione chiama
android.support.v8.renderscript.RenderScript
anziché la versione AndroidX, nonostante Jetifier sia abilitato - Conflitti dovuti a
androidx-rs.jar
, inclusoannotation.AnyRes
incluso in modo statico - Quando utilizzi RenderScript, non devi più impostare manualmente la versione di Build Tools
nei file
build.gradle
- Il processo di compilazione chiama
3.2.0 (settembre 2018)
Questa versione del plug-in Android richiede quanto segue:
- Gradle 4.6 o superiore. Per saperne di più, leggi la sezione sull'aggiornamento di Gradle.
- SDK Build Tools 28.0.3 o versioni successive.
3.2.1 (ottobre 2018)
Con questo aggiornamento, non è più necessario specificare una versione per gli strumenti di compilazione dell'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ù, consulta Informazioni sugli Android App Bundle.
-
Supporto per velocità di compilazione incrementale migliorate quando si utilizzano gli elaboratori di annotazioni: il DSL
AnnotationProcessorOptions
ora estendeCommandLineArgumentProvider
, il che consente a te o all'autore dell'elaboratore di annotazioni di annotare gli argomenti per l'elaboratore utilizzando annotazioni del tipo di proprietà di compilazione incrementale. L'utilizzo di queste annotazioni migliora la correttezza e il rendimento delle compilazioni incrementali e pulite memorizzate nella cache. Per scoprire di più, consulta Passare gli argomenti ai processori di annotazioni. -
Strumento di migrazione per AndroidX: se utilizzi il plug-in Android Gradle 3.2.0 con Android 3.2 e versioni successive, puoi eseguire la migrazione delle dipendenze locali e Maven del progetto per utilizzare le nuove librerie AndroidX selezionando Ristruttura > Migra ad AndroidX dalla barra dei menu. L'utilizzo di questo strumento di migrazione imposta inoltre i seguenti flag su
true
nel filegradle.properties
:-
android.useAndroidX
: se impostato sutrue
, il plug-in Android utilizza la libreria AndroidX appropriata anziché una libreria di supporto. Se questo flag non è specificato, il plug-in lo imposta sufalse
per impostazione predefinita. -
android.enableJetifier
: se impostato sutrue
, il plug-in Android esegue automaticamente la migrazione delle librerie di terze parti esistenti per l'utilizzo di AndroidX riscrivendo i relativi file binari. Se questo flag non è specificato, il plug-in lo imposta sufalse
per impostazione predefinita. Puoi impostare questo flag sutrue
solo se ancheandroid.useAndroidX
è impostato sutrue
, altrimenti viene visualizzato un errore di compilazione.Per scoprire di più, leggi la panoramica di AndroidX.
-
-
Nuovo strumento di riduzione del codice, R8: R8 è un nuovo strumento per la riduzione e l'oscuramento 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
android.enableR8 = true
Modifiche al comportamento
-
La rimozione del codice non necessario con D8 è ora attiva per impostazione predefinita.
-
AAPT2 è ora disponibile nel repository Maven di Google. Per utilizzare AAPT2, assicurati di avere la dipendenza
google()
nel filebuild.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. Le versioni precedenti di Android Studio attivavano il multidex nativo durante il deployment della versione di debug di un'app su un dispositivo con Android API 21 o versioni successive. Ora, indipendentemente dal fatto che tu stia eseguendo il deployment su un dispositivo o stia creando un APK per la release, il plug-in Gradle per Android attiva il multidex nativo per tutti i moduli impostati su
minSdkVersion=21
o versioni successive. -
Ora il plug-in impone una versione minima del plug-in protobuf (0.8.6), del plug-in Kotlin (1.2.50) e del plug-in Crashlytics (1.25.4).
-
Il plug-in del modulo delle funzionalità,
com.android.feature
, ora impone l'utilizzo solo di lettere, cifre e trattini bassi quando si specifica un nome del 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 evitamento della compilazione per i moduli della libreria con il binding dei dati. (Issue #77539932)
- Ora puoi riattivare configure-on-demand se lo hai disattivato nelle versioni precedenti a causa di alcuni errori di compilazione imprevedibili. (Issue #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 compilazione 27.0.3 o versioni successive.
Tieni presente che non devi più specificare una versione per gli strumenti di compilazione utilizzando la proprietà
android.buildToolsVersion
. Per impostazione predefinita, il plug-in utilizza la versione minima richiesta.
Nuovo compilatore DEX, D8
Per impostazione predefinita, Android Studio ora utilizza un nuovo compilatore DEX chiamato D8. La compilation DEX è il processo di trasformazione del bytecode .class
in bytecode .dex
per il runtime Android (o Dalvik per le versioni precedenti di Android). Rispetto al compilatore precedente, chiamato DX, D8 compila più velocemente e genera file DEX più piccoli, pur avendo le stesse prestazioni o migliori in fase di esecuzione dell'app.
D8 non dovrebbe cambiare il flusso di lavoro quotidiano di sviluppo delle app. Tuttavia, se
riscontri problemi relativi al nuovo compilatore, segnala un bug. Puoi disattivare temporaneamente D8 e utilizzare DX includendo quanto segue nel file gradle.properties
del progetto:
android.enableD8=false
Per i progetti che utilizzano le funzionalità del linguaggio Java 8, la desugaring incrementale è abilitata per impostazione predefinita. Puoi disattivarla specificando quanto segue nel file gradle.properties
del progetto:
android.enableIncrementalDesugaring=false.
Utenti della versione di anteprima: se utilizzi già una versione di anteprima di D8, tieni presente che ora viene compilato in base alle librerie incluse negli strumenti di compilazione dell'SDK, non nel 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
earmeabi
.Se vuoi creare APK che hanno come target questi ABI, devi utilizzare NDK r16b o versioni precedenti e specificare gli ABI nel file
build.gradle
, come mostrato di seguito:splits { abi { include 'armeabi', 'mips', 'mips64' ... } }
splits { abi { include("armeabi", "mips", "mips64") ... } }
-
La cache compilazione del plug-in Android ora esegue l'espulsione delle voci della cache più vecchie di 30 giorni.
-
Il passaggio di
"auto"
aresConfig
non seleziona più automaticamente le risorse stringa da includere nel pacchetto APK. Se continui a utilizzare"auto"
, il plug-in pacchettizza tutte le risorse di stringa fornite dalla tua app e dalle sue dipendenze. Pertanto, devi invece specificare ogni lingua che vuoi che il plug-in pacchettizzi nel tuo APK. -
Poiché i moduli locali non possono dipendere dall'APK di test dell'app, l'aggiunta di dipendenze ai test con strumenti utilizzando la configurazione
androidTestApi
, anzichéandroidTestImplementation
, fa sì che Gradle emetta il seguente avviso:WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
WARNING: Configuration 'androidTestApi' is obsolete and has been replaced with 'androidTestImplementation'
Correzioni
- È stato risolto un problema per cui Android Studio non riconosce correttamente le dipendenze nelle build composite.
- È stato risolto un problema per cui si verifica un errore di sincronizzazione del progetto durante il caricamento del plug-in Android più volte in una singola build, ad esempio quando più progetti secondari includono ciascuno il plug-in Android nel classpath del buildscript.
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 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 sec circa | ~29 s | ~6,4 s |
Alcune di queste modifiche non sono compatibili con le build esistenti. Pertanto, prima di utilizzare il nuovo plug-in, devi valutare l\'impegno necessario per eseguire la migrazione del progetto.
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 quanto segue:
- Gradle 4.1 o versioni successive. Per saperne di più, leggi la sezione sull'aggiornamento di Gradle.
-
Build Tools 26.0.2
o versioni successive. Con questo aggiornamento non è più necessario specificare una versione per gli strumenti di compilazione: il plug-in utilizza per impostazione predefinita 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
- Miglior parallelismo per progetti multi-modulo tramite un grafico delle attività granulare.
- Quando apporti modifiche alla dipendenza, Gradle esegue build più veloci non compilando nuovamente i moduli che non hanno accesso all'API della dipendenza.
Devi limitare le dipendenze che divulgano le API ad altri moduli utilizzando le nuove configurazioni delle dipendenze di Gradle:
implementation
,api
,compileOnly
eruntimeOnly
. - Maggiore velocità di compilazione incrementale 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. - Miglioramento delle velocità di compilazione mediante l'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.
- Elaborazione delle risorse incrementali migliorata utilizzando AAPT2, che ora è attivata per impostazione predefinita. Se riscontri problemi durante l'utilizzo di AAPT2,
segnala un bug. Puoi anche
disattivare AAPT2 impostando
android.enableAapt2=false
nelgradle.properties
file e riavviando il daemon Gradle eseguendo./gradlew --stop
dalla riga di comando.
Nuove funzionalità
- Gestione delle dipendenze consapevole delle varianti. Quando crei una determinata variante di un modulo, ora il plug-in associa automaticamente le varianti delle dipendenze dei moduli della libreria locale alla variante 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. Jack è ora deprecato e non è più necessario. Per prima cosa, devi disattivare Jack per utilizzare il supporto migliorato di Java 8 integrato nella toolchain predefinita. Per ulteriori informazioni, consulta Utilizzare le funzionalità del linguaggio Java 8.
-
È stato aggiunto il supporto per l'esecuzione di test con Android Test Orchestrator, che consente di eseguire ogni test dell'app all'interno della propria chiamata 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. Inoltre, anche se un test si arresta in modo anomalo, viene interrotta solo la relativa 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 specificareANDROID_TEST_ORCHESTRATOR
, come mostrato di seguito. Per impostazione predefinita, questa proprietà è impostata suHOST
, 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" } }
- È stato aggiunto
-
La nuova configurazione delle dipendenze
androidTestUtil
ti consente di installare un altro APK di utilità di test prima di eseguire i test di strumentazione, ad esempio Android Test Orchestrator:Groovy
dependencies { androidTestUtil 'com.android.support.test:orchestrator:1.0.0' ... }
Kotlin
dependencies { androidTestUtil("com.android.support.test:orchestrator:1.0.0") ... }
-
È stato aggiunto
testOptions.unitTests.includeAndroidResources
per supportare i test di unità che richiedono risorse Android, come Roboelectric. Se imposti questa proprietà sutrue
, il plug-in esegue l'unione di risorse, asset e manifest prima di eseguire i test di unità. I test possono quindi esaminarecom/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 libreria, gli asset uniti non contengono gli asset delle dipendenze (vedi issue #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 tutte le relative dipendenze. -
android_custom_package
: il nome del pacchetto della classe R finale. Se modifichi dinamicamente l'ID applicazione, questo nome del pacchetto potrebbe non corrispondere all'attributopackage
nel manifest dell'app.
-
- Supporto dei caratteri come risorse (una nuova funzionalità introdotta in Android 8.0 (livello API 26)).
- Supporto per gli APK specifici per lingua con Android SDK Instant Apps 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
lintChecks
ti consente di compilare un JAR che definisce regole di lint personalizzate e di impacchettarlo nei progetti AAR e 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 dipendere dal progetto lint utilizzando la configurazionelintChecks
:Groovy
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks project(':lint-checks') }
Kotlin
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks(project(":lint-checks")) }
Modifiche al comportamento
- Il plug-in Android 3.0.0 rimuove alcune API e la compilazione non funzionerà se le utilizzi. Ad esempio, non puoi più utilizzare l'API Variants per accedere agli oggetti
outputFile()
o utilizzareprocessManifest.manifestOutputFile()
per recuperare il file manifest per ogni variante. Per scoprire di più, consulta Modifiche all'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 la compressione PNG nel blocco
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. Pertanto, per migliorare i tempi di compilazione per altri tipi di build, devi disattivare l'ottimizzazione 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
aggiungere gli elaboratori di annotazione al percorso di classe dell'elaboratore utilizzando la configurazione delle dipendenze
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ù, consulta Eseguire la migrazione da ndkcompile.
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 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 sec circa | ~29 s | ~6,4 s |
Alcune di queste modifiche non sono compatibili con le build esistenti. Pertanto, prima di utilizzare il nuovo plug-in, devi valutare l\'impegno necessario per eseguire la migrazione del progetto.
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 quanto segue:
- Gradle 4.1 o versioni successive. Per saperne di più, leggi la sezione sull'aggiornamento di Gradle.
-
Build Tools 26.0.2
o versioni successive. Con questo aggiornamento non è più necessario specificare una versione per gli strumenti di compilazione: il plug-in utilizza per impostazione predefinita 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
- Miglior parallelismo per progetti multi-modulo tramite un grafico delle attività granulare.
- Quando apporti modifiche alla dipendenza, Gradle esegue build più veloci non compilando nuovamente i moduli che non hanno accesso all'API della dipendenza.
Devi limitare le dipendenze che divulgano le API ad altri moduli utilizzando le nuove configurazioni delle dipendenze di Gradle:
implementation
,api
,compileOnly
eruntimeOnly
. - Maggiore velocità di compilazione incrementale 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. - Miglioramento delle velocità di compilazione mediante l'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.
- Elaborazione delle risorse incrementali migliorata utilizzando AAPT2, che ora è attivata per impostazione predefinita. Se riscontri problemi durante l'utilizzo di AAPT2,
segnala un bug. Puoi anche
disattivare AAPT2 impostando
android.enableAapt2=false
nelgradle.properties
file e riavviando il daemon Gradle eseguendo./gradlew --stop
dalla riga di comando.
Nuove funzionalità
- Gestione delle dipendenze consapevole delle varianti. Quando crei una determinata variante di un modulo, ora il plug-in associa automaticamente le varianti delle dipendenze dei moduli della libreria locale alla variante 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. Jack è ora deprecato e non è più necessario. Per prima cosa, devi disattivare Jack per utilizzare il supporto migliorato di Java 8 integrato nella toolchain predefinita. Per ulteriori informazioni, consulta Utilizzare le funzionalità del linguaggio Java 8.
-
È stato aggiunto il supporto per l'esecuzione di test con Android Test Orchestrator, che consente di eseguire ogni test dell'app all'interno della propria chiamata 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. Inoltre, anche se un test si arresta in modo anomalo, viene interrotta solo la relativa 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 specificareANDROID_TEST_ORCHESTRATOR
, come mostrato di seguito. Per impostazione predefinita, questa proprietà è impostata suHOST
, 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" } }
- È stato aggiunto
-
La nuova configurazione delle dipendenze
androidTestUtil
ti consente di installare un altro APK di utilità di test prima di eseguire i test di strumentazione, ad esempio Android Test Orchestrator:Groovy
dependencies { androidTestUtil 'com.android.support.test:orchestrator:1.0.0' ... }
Kotlin
dependencies { androidTestUtil("com.android.support.test:orchestrator:1.0.0") ... }
-
È stato aggiunto
testOptions.unitTests.includeAndroidResources
per supportare i test di unità che richiedono risorse Android, come Roboelectric. Se imposti questa proprietà sutrue
, il plug-in esegue l'unione di risorse, asset e manifest prima di eseguire i test di unità. I test possono quindi esaminarecom/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 libreria, gli asset uniti non contengono gli asset delle dipendenze (vedi issue #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 tutte le relative dipendenze. -
android_custom_package
: il nome del pacchetto della classe R finale. Se modifichi dinamicamente l'ID applicazione, questo nome del pacchetto potrebbe non corrispondere all'attributopackage
nel manifest dell'app.
-
- Supporto dei caratteri come risorse (una nuova funzionalità introdotta in Android 8.0 (livello API 26)).
- Supporto per gli APK specifici per lingua con Android SDK Instant Apps 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
lintChecks
ti consente di compilare un JAR che definisce regole di lint personalizzate e di impacchettarlo nei progetti AAR e 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 dipendere dal progetto lint utilizzando la configurazionelintChecks
:Groovy
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks project(':lint-checks') }
Kotlin
dependencies { // This tells the Gradle plugin to build ':lint-checks' into a lint.jar file // and package it with your module. If the module is an Android library, // other projects that depend on it automatically use the lint checks. // If the module is an app, lint includes these rules when analyzing the app. lintChecks(project(":lint-checks")) }
Modifiche al comportamento
- Il plug-in Android 3.0.0 rimuove alcune API e la compilazione non funzionerà se le utilizzi. Ad esempio, non puoi più utilizzare l'API Variants per accedere agli oggetti
outputFile()
o utilizzareprocessManifest.manifestOutputFile()
per recuperare il file manifest per ogni variante. Per scoprire di più, consulta Modifiche all'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 la compressione PNG nel blocco
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. Pertanto, per migliorare i tempi di compilazione per altri tipi di build, devi disattivare l'ottimizzazione 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
aggiungere gli elaboratori di annotazione al percorso di classe dell'elaboratore utilizzando la configurazione delle dipendenze
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ù, consulta Eseguire la migrazione da ndkcompile.
2.3.0 (febbraio 2017)
2.3.3 (giugno 2017)
Si tratta di un aggiornamento minore che aggiunge la compatibilità con Android Studio 2.3.3.
2.3.2 (maggio 2017)
Si tratta di un aggiornamento minore che aggiunge la compatibilità con Android Studio 2.3.2.
2.3.1 (aprile 2017)
Si tratta di un aggiornamento minore del plug-in Android 2.3.0 che corregge un problema per cui alcuni dispositivi Android fisici non funzionavano correttamente con Instant Run (vedi Issue #235879).
- Dipendenze:
-
- Gradle 3.3 o versioni successive.
- Build Tools 25.0.0 o versioni successive.
- 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. I progetti che utilizzano il plug-in Android 2.3.0 e versioni successive utilizzano
la cache di compilazione per impostazione predefinita. Per scoprire di più, consulta
Migliorare la velocità di compilazione con
la cache di compilazione.
- Include un'attività
cleanBuildCache
che svuota la cache di compilazione. - Se utilizzi la versione sperimentale della cache di compilazione (inclusa nelle versioni precedenti del plug-in), devi aggiornare il plug-in alla versione più recente.
- Include un'attività
- Modifiche:
-
- Supporta le modifiche a Instant Run incluse in Android Studio 2.3.
- I tempi di configurazione per progetti di grandi dimensioni dovrebbero essere notevolmente più rapidi.
- Sono stati corretti i problemi relativi al download automatico per la libreria di layout con vincoli.
- Il plug-in ora utilizza ProGuard versione 5.3.2.
- Sono incluse molte correzioni per i bug segnalati. Continua a segnalare i bug quando riscontri problemi.
2.2.0 (settembre 2016)
- Dipendenze:
-
- Gradle 2.14.1 o versioni successive.
- Build Tools 23.0.2 o versioni successive.
- Novità:
-
- Utilizza Gradle 2.14.1, che include miglioramenti alle prestazioni e nuove funzionalità, nonché corregge una vulnerabilità di sicurezza che consente l'escalation dei privilegi locali quando si utilizza il daemon Gradle. Per maggiori dettagli, consulta le note di rilascio di Gradle.
- Con il DSL
externalNativeBuild {}
, Gradle ora ti consente di eseguire il collegamento alle sorgenti native e compilare le librerie native utilizzando CMake o ndk-build. Dopo aver creato le librerie native, Gradle le impacchetta 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 Scaricare automaticamente i 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, consulta la guida Costruire la cache.
- Migliora il rendimento della compilazione adottando una nuova pipeline di imballaggio predefinita che gestisce l'archiviazione, la firma e l'allineamento in un'unica attività. Puoi
ripristinare l'utilizzo degli strumenti di pacchetti precedenti aggiungendo
android.useOldPackaging=true
al tuogradle.properties
file. Quando utilizzi il nuovo strumento di imballaggio, l'attivitàzipalignDebug
non è disponibile. Tuttavia, puoi crearne uno autonomamente chiamando il metodocreateZipAlignTask(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 gli APK risultanti. Qualsiasi modifica a questi APK dopo la firma ne invalida
le firme v2 e ne impedisce l'installazione su un dispositivo. Per disattivare questa funzionalità,
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 di ProGuard per determinare quali classi Gradle deve 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
file DEX principale, passa il percorso del file di configurazione a Gradle utilizzando
buildTypes.multiDexKeepProguard
. L'utilizzo di questo DSL è diverso dall'utilizzo dibuildTypes.proguardFiles
, che fornisce regole ProGuard generali per la tua app e non specifica le classi per il file DEX principale. - Aggiunge il supporto per il flag
android:extractNativeLibs
, che può ridurre le dimensioni dell'app quando la installi su un dispositivo. Quando imposti questo flag sufalse
nell'elemento<application>
del file manifest dell'app, Gradle pacchettizza le versioni non compresse e aliniate delle librerie native con l'APK. In questo modo, impedisci aPackageManager
di copiare le librerie native dall'APK al file system del dispositivo durante l'installazione e hai il vantaggio aggiuntivo di ridurre le dimensioni degli aggiornamenti delta della tua app. - Ora puoi specificare
versionNameSuffix
eapplicationIdSuffix
per le versioni del prodotto. (Issue 59614)
- Modifiche:
-
-
getDefaultProguardFile
ora restituisce i file ProGuard predefinite forniti dal plug-in Android per Gradle e non utilizza più quelli nell'SDK Android. - Miglioramento delle prestazioni e delle funzionalità del compilatore Jack:
- Jack ora supporta la copertura dei test Jacoco quando viene impostato
testCoverageEnabled
sutrue
. - Supporto migliorato per gli elaboratori di annotazioni. I processori di annotazioni nel classpath, ad esempio eventuali dipendenze
compile
, vengono applicati automaticamente alla compilazione. Puoi anche specificare un elaboratore di annotazioni nella compilazione e passare gli argomenti utilizzando il DSLjavaCompileOptions.annotationProcessorOptions {}
nel filebuild.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 elaboratore di annotazioni al momento della compilazione, ma non includerlo nell'APK, utilizza l'ambito di dipendenza
annotationProcessor
:Groovy
dependencies { compile 'com.google.dagger:dagger:2.0' annotationProcessor 'com.google.dagger:dagger-compiler:2.0' // or use buildVariantAnnotationProcessor to target a specific build variant }
Kotlin
dependencies { implementation("com.google.dagger:dagger:2.0") annotationProcessor("com.google.dagger:dagger-compiler:2.0") // or use buildVariantAnnotationProcessor to target a specific build variant }
Per un elenco dei parametri che puoi impostare, esegui quanto segue dalla riga di comando:
java -jar /build-tools/jack.jar --help-properties
- Jack ora supporta la copertura dei test Jacoco quando viene impostato
- 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 demone, 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 maggiori dettagli, consulta le note di rilascio di Gradle.
- Dipendenze:
-
- Gradle 2.10 o versioni successive.
- Build Tools 23.0.2 o versioni successive.
- Novità:
-
- È stato aggiunto il supporto per l'anteprima per gli sviluppatori di N, JDK 8 e le funzionalità del linguaggio Java 8 utilizzando la toolchain di Jack. Per scoprire di più, consulta la guida all'anteprima di N.
Nota: al momento Esecuzione immediata non funziona con Jack e verrà disattivata durante l'utilizzo della nuova toolchain. Devi utilizzare Jack solo se stai sviluppando per la versione N Preview e vuoi utilizzare le funzionalità del linguaggio Java 8 supportate.
- È stato aggiunto il supporto predefinito per la compilazione incrementale di Java per ridurre il tempo di compilazione durante lo sviluppo. A tal fine, viene eseguita la ricompilazione solo delle parti del codice sorgente che sono state modificate o che devono essere ricompilate. Per disattivare
questa funzionalità, aggiungi il seguente codice al file
build.gradle
a livello di modulo:Groovy
android { ... compileOptions { incremental false } }
Kotlin
android { ... compileOptions { incremental = false } }
-
È stato aggiunto il supporto per il dexing in-process, che esegue il dexing all'interno del processo di compilazione anziché in processi VM esterni separati. In questo modo, non solo le build incrementali vengono eseguite più velocemente, ma anche le build complete. La funzionalità è attivata per impostazione predefinita per i progetti che hanno impostato la dimensione massima dell'heap del daemon Gradle su almeno 2048 MB. A tale scopo, inserisci quanto segue nel file
```none org.gradle.jvmargs = -Xmx2048m ```gradle.properties
del progetto:Se hai definito un valore per
```none org.gradle.jvmargs = -Xmx3072m ```javaMaxHeapSize
nel filebuild.gradle
a livello di modulo, devi impostareorg.gradle.jvmargs
sul valore dijavaMaxHeapSize
+ 1024 MB. Ad esempio, se hai impostatojavaMaxHeapSize
su "2048 m", devi aggiungere quanto segue al filegradle.properties
del progetto:Per disattivare il dexing in-process, aggiungi il seguente codice al file
build.gradle
a livello di modulo:Groovy
android { ... dexOptions { dexInProcess false } }
Kotlin
android { ... dexOptions { dexInProcess = false } }
- È stato aggiunto il supporto per l'anteprima per gli sviluppatori di N, JDK 8 e le funzionalità del linguaggio Java 8 utilizzando la toolchain di Jack. Per scoprire di più, consulta la guida all'anteprima di N.
2.0.0 (aprile 2016)
- Dipendenze:
-
- Gradle 2.10 o versioni successive.
- Build Tools 21.1.1 o versioni successive.
- Novità:
-
- Consente l'esecuzione istantanea supportando l'iniezione di bytecode e inviando aggiornamenti di codice e risorse a un'app in esecuzione sull'emulatore o su un dispositivo fisico.
- È stato aggiunto il supporto per le build incrementali, anche quando l'app non è in esecuzione. I tempi di build completi vengono migliorati inviando le modifiche incrementali tramite Android Debug Bridge al dispositivo connesso.
- È stato aggiunto
maxProcessCount
per controllare il numero di processi dex worker che possono essere generati contemporaneamente. Il seguente codice, nel filebuild.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:
Groovy
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>
- Quando
- Problemi risolti:
-
- È stato risolto un problema che causava dipendenze AAR duplicate sia nelle configurazioni di build di test sia in quelle 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:
-
- È stato integrato il plug-in Data Binding nel plug-in Android per Gradle. Per attivarlo, aggiungi
il seguente codice a ogni file
build.gradle
per progetto che utilizza il plugin: - È 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 manipolazione delle classi personalizzate, offrendo al contempo una maggiore flessibilità in merito a ciò che puoi manipolare. Per inserire una trasformazione in una build, crea una nuova classe che implementi una delle interfacceTransform
e registrala conandroid.registerTransform(theTransform)
oandroid.registerTransform(theTransform, dependencies)
. Non è necessario collegare le attività. Tieni presente quanto segue sull'API Transform: - Una trasformazione può essere applicata a uno o più dei seguenti elementi: il progetto corrente, i sottoprogetti e le librerie esterne.
- È necessario registrare una trasformazione a livello globale, che la applichi 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: solo il percorso del codice
javac/dx
lo fa. - Gradle esegue le trasformazioni in questo 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 classeApplicationVariant
. Non puoi più accedere all'attivitàDex
tramite l'API delle varianti perché ora viene eseguita tramite una trasformazione. Al momento non esiste un'alternativa per controllare il 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 interrompere correttamente una compilazione Gradle e di segnalare la causa di errore di fondo quando la compilazione Gradle richiama attività asincrone e si verifica un errore nel processo del worker.
- È 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 vari problemi relativi all'output di errore di Android Asset Packaging Tool (AAPT).
- È stato aggiunto il supporto dell'instrumentazione incrementale JaCoCo per build incrementali più veloci. Il plug-in Android per Gradle ora invoca direttamente lo strumento di misurazione 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 di drawable vettoriali per la generazione di file PNG in fase di compilazione per la compatibilità con le versioni precedenti.
Il plug-in Android per Gradle genera file PNG per ogni drawable vettoriale trovato in una directory di risorse che non specifica una versione dell'API o specifica un attributo
android:minSdkVersion
pari o inferiore a 20 nell'elemento<uses-sdk>
nel file manifest dell'app. Puoi impostare le densità PNG utilizzando la proprietàgeneratedDensities
nelle sezionidefaultConfig
oproductFlavor
di un filebuild.gradle
. - È stata aggiunta la condivisione di
android.jar
simulabile, che il plug-in genera solo una volta e utilizza per i test di unità. Ora sono disponibili più moduli, comeapp
elib
. Elimina$rootDir/build
per rigenerarlo. - È stata modificata l'elaborazione delle risorse Java in modo che venga eseguita prima delle attività di offuscamento anziché durante il packaging 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.
android { dataBinding { enabled = true } }
android { dataBinding { enabled = true } }
- È stato integrato il plug-in Data Binding nel plug-in Android per Gradle. Per attivarlo, aggiungi
il seguente codice a ogni file
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.
- È stato corretto il compito ZipAlign in modo che utilizzi correttamente l'output del compito precedente quando viene utilizzato un nome file personalizzato.
- È stato corretto il packaging di Renderscript con l'NDK.
- È stato mantenuto il supporto per l'attività di compilazione
createDebugCoverageReport
. - È stato corretto il supporto per l'utilizzo personalizzato della proprietà
archiveBaseName
nel file di compilazionebuild.gradle
. - È stato corretto l'avviso
Invalid ResourceType
lint causato dalla ricerca di annotazioni del metodo del parametro quando viene eseguito lint al di fuori di Android Studio.
Plug-in Android per Gradle, revisione 1.3.0 (luglio 2015)
Dipendenze:- Gradle 2.2.1 o versioni successive.
- Build Tools 21.1.1 o versioni successive.
-
È stato aggiunto il supporto per la proprietà
com.android.build.threadPoolSize
per controllare la dimensione del pool di thread delle attivitàAndroid
dal filegradle.properties
o dalla 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
eLICENSE.txt
dagli APK. Per includere questi file in un APK, rimuovili dalla proprietàpackagingOptions.excludes
nel filebuild.gradle
. Ad esempio:android { packagingOptions.excludes = [] }
android { packagingOptions.excludes.clear() }
- È stata aggiunta l'attività
sourceSets
per ispezionare l'insieme di tutti gli insiemi 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
eflavorA
con il tipo di buildDebug
, gli insiemi di origine di test sono:- test
- testFlavor1
- testFlavorA
- testFlavor1FlavorA
- testFlavor1FlavorADebug
I test Android riconoscevano già le cartelle di origine con più varianti.
- È stato migliorato il supporto dei test di unità per:
- Esegui
javac
sulle origini principali e di test, anche se la proprietàuseJack
è impostata sutrue
nel file di compilazione. - Riconoscere correttamente le dipendenze per ogni tipo di build.
- Esegui
- È stato aggiunto il supporto per la specifica degli argomenti del programma di test di misurazione 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 un
modulo APK di test come modulo di test separato, utilizzando le proprietà
targetProjectPath
etargetVariant
per impostare il percorso dell'APK e la variante di destinazione.Nota: un modulo APK di test non supporta i gusti dei prodotti e può avere come target una sola variante. Inoltre, Jacoco non è ancora supportato.
- È stata aggiunta la convalida del nome della risorsa prima dell'unione delle risorse.
- Quando crei un pacchetto AAR (Android ARchive) per i moduli della libreria, non fornire un segnaposto
@{applicationId}
automatico nelle impostazioni di unione manifest. Utilizza invece un segnaposto diverso, ad esempio@{libApplicationId}
, e fornisci un valore se vuoi includere gli ID applicazione nella raccolta dell'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.
- È stato aggiunto il supporto per includere le risorse in stile Java nel percorso di classe quando esegui i test di unità direttamente da Gradle.
- È stato aggiunto il supporto delle dipendenze dei test di unità per gli elementi dell'archivio Android (AAR).
- È stato aggiunto il supporto della proprietà
unitTestVariants
in modo che le varianti del test di unità possano essere manipolate utilizzando il filebuild.gradle
. - È stato aggiunto il blocco di codice
unitTest.all
sottotestOptions
per configurare attività personalizzate per il test di unità. Il seguente codice di esempio mostra come aggiungere le impostazioni di configurazione dei test di unità utilizzando questa nuova opzione:android { testOptions { unitTest.all { jvmArgs '-XX:MaxPermSize=256m' // Or any other gradle option. } } }
android { testOptions { unitTest.all { jvmArgs += listOf("-XX:MaxPermSize=256m") // Or any other gradle option. } } }
- È stata corretta la gestione degli enum e dei campi di istanze pubbliche nel
packaging 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
per applicare i file ProGuard durante la minimizzazione di un APK di test. - È stata aggiunta la proprietà
timeOut
al blocco di codiceadbOptions
per impostare il tempo di registrazione massimo per la registrazione dello schermo di Android Debug Bridge. - È stato aggiunto il supporto per le risorse a 280 dpi.
- Miglioramento delle prestazioni durante la valutazione del progetto.
- Supporto migliorato per l'esecuzione di test delle unità con Gradle.
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 un problema relativo alle dipendenze duplicate in un'app di test che ha attivato un errore di ProGuard.
- È stata corretta l'implementazione di Comparator che non era conforme al contratto Comparator di JDK e generava un errore di 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 file JAR simulabile per i test di unità.
- È stata corretta l'impostazione
archivesBaseName
nel filebuild.gradle
. - È stato corretto l'errore relativo al segnaposto non risolto nell'unione del manifest durante la creazione di un'applicazione di test della libreria.
Plug-in Android per Gradle, revisione 1.1.1 (febbraio 2015)
- Dipendenze:
-
- Gradle 2.2.1 o versioni successive.
- Build Tools 21.1.1 o versioni successive.
- Note generali:
-
- Le varianti di compilazione sono state modificate in modo che solo quelle che pacchettizzano un'app Wear attiveranno le attività di compilazione specifiche per Wear.
- I problemi relativi alle dipendenze ora non vanno a buon fine in fase di compilazione anziché in fase di debug. Questo comportamento ti consente di eseguire attività di diagnostica (ad esempio "dependencies") per contribuire a risolvere il conflitto.
- È stato corretto il metodo
android.getBootClasspath()
in modo che restituisca 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:
-
- È stato aggiunto il supporto per i nuovi test di unità
- È stato attivato
test di unità per l'esecuzione sulla JVM locale rispetto a 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
etestMyFlavorDebug
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 esempiotestCompile 'junit:junit:4.11'
,testMyFlavorCompile 'some:library:1.0'
.Nota: le dipendenze solo per i test non sono attualmente compatibili con Jack (Java Android Compiler Kit).
- È stata aggiunta l'opzione
android.testOptions.unitTests.returnDefaultValues
per controllare il comportamento dell'android.jar simulabile. Test
nei nomi delle attività di test è stato sostituito conAndroidTest
. Ad esempio, l'attivitàassembleDebugTest
ora èassembleDebugAndroidTest
. Le attività di test di unità contengono ancoraUnitTest
nel nome dell'attività, ad esempioassembleDebugUnitTest
.- File di configurazione di ProGuard modificati in modo che non vengano più applicati all'APK di test. Se la minimizzazione è attivata, ProGuard elabora l'APK di test e applica solo il file di mappatura generato durante la minimizzazione dell'APK principale.
- Gestione delle dipendenze aggiornata
- Sono stati risolti i problemi relativi all'utilizzo degli ambiti
provided
epackage
.Nota: questi ambiti non sono compatibili con i pacchetti AAR (Android ARchive) e causeranno un errore di 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 elemento con una versione diversa per entrambe le app, la compilazione non va a buon fine.
- Sono stati risolti i problemi relativi all'utilizzo degli ambiti
- È stato aggiunto il supporto per il qualificatore della risorsa
anyDpi
nella fusione delle risorse. - Miglioramento delle velocità di valutazione e sincronizzazione dell'IDE per i progetti con un gran numero di moduli Android.
Plug-in Android per Gradle, revisione 1.0.1 (gennaio 2015)
- Dipendenze:
-
-
Gradle 2.2.1 fino a 2.3.x.
Nota: questa versione del plug-in Android per Gradle non è compatibile con Gradle 2.4 e versioni successive.
- Build Tools 21.1.1 o versioni successive.
-
- Note generali:
-
- È stato risolto il problema di errore di compilazione di Gradle durante l'accesso al
modulo
extractReleaseAnnotations
. (Issue 81638). - È stato risolto il problema relativo al passaggio da
Disable
all'impostazione--no-optimize
al bytecode dell'eseguibile Dalvik (dex). (Issue 82662). - Sono stati risolti i problemi di unione del manifest durante l'importazione di librerie con un valore
targetSdkVersion
inferiore a 16. - È stato risolto il problema di ordinamento della densità quando si utilizza Android Studio conJDK 8.
- È stato risolto il problema di errore di compilazione di Gradle durante l'accesso al
modulo
Plug-in Android per Gradle, revisione 1.0.0 (dicembre 2014)
- Dipendenze:
-
-
Gradle 2.2.1 fino a 2.3.x.
Nota: questa versione del plug-in Android per Gradle non è compatibile con Gradle 2.4 e versioni successive.
- Build Tools 21.1.1 o versioni successive.
-
- Note generali:
-
- Release iniziale del plug-in.