Di seguito sono riportate le nuove funzionalità di Android Studio Dolphin.
Novità in Scrivi
Di seguito sono riportati le nuove funzionalità e i miglioramenti a Jetpack Compose in Android Studio.
Componi coordinazione dell'animazione
Se le animazioni sono descritte in un'anteprima componibile, ora puoi utilizzare l'anteprima dell'animazione per ispezionarle e coordinarle tutte contemporaneamente. Puoi anche bloccare un'animazione specifica.
Crea annotazioni multianteprima
Ora puoi definire una classe di annotazione che include più definizioni di anteprima e utilizzare la nuova annotazione per generare le anteprime contemporaneamente. Utilizza questa nuova annotazione per visualizzare l'anteprima di più dispositivi, caratteri e temi contemporaneamente, senza ripetere le definizioni per ogni singola composizione.
Crea conteggi di ricomposizione in Controllo layout
Durante il debug dei layout di Scrivi, sapere quando i componibili vengono o meno ricomposti è importante per capire se la tua UI è implementata correttamente. Ad esempio, se ricompone troppe volte, l'app potrebbe svolgere più lavoro del necessario. D'altra parte, i componenti che non si ricompongono quando prevediamo che possano causare comportamenti imprevisti.
Ora lo strumento Controllo layout consente di vedere quando i componenti componibili discreti nella gerarchia di layout sono stati ricomposti o ignorati. Queste informazioni vengono mostrate in tempo reale mentre interagisci con l'app. Per iniziare, assicurati che l'app utilizzi Scrivi 1.2.0-alpha03
o versioni successive. quindi esegui il deployment dell'app
come faresti normalmente.
Apri la finestra Controllo layout e connettiti al processo dell'app. Nella struttura ad albero dei componenti, dovrebbero essere visualizzate due nuove colonne accanto alla gerarchia del layout. La prima colonna mostra il numero di composizioni per ciascun nodo. La seconda colonna mostra il numero di ignoramenti per ciascun nodo. Puoi visualizzare informazioni simili anche nel riquadro Attributi quando selezioni una componibile dalla struttura ad albero dei componenti o dalla visualizzazione del layout.
Per reimpostare il conteggio, fai clic su Reimposta nella parte superiore del riquadro Struttura ad albero dei componenti. Reimpostare il conteggio può aiutarti a comprendere le ricomposizioni o i salti durante un'interazione specifica con la tua app.
Assistente di accoppiamento emulatore Wear OS aggiornato
A partire da Android Studio Dolphin Canary 3, l'assistente di accoppiamento dell'emulatore Wear OS ha funzionalità migliorate che semplificano la gestione e la connessione degli emulatori di Wear. Ora puoi effettuare le seguenti operazioni:
- Visualizza i dispositivi Wear in Gestione dispositivi.
- Accoppia più dispositivi Wear a un singolo telefono virtuale o fisico.
- Ricollega automaticamente i dispositivi accoppiati in precedenza quando vengono avviati. Android Studio ora memorizza e riaccoppia l'ultima coppia configurata.
Per utilizzare queste nuove funzionalità, assicurati che gli emulatori di telefoni abbiano un livello API 30 o successivo e che abbiano installato Google Play Store. Inoltre, assicurati che gli emulatori di Wear siano API di livello 28 o successivi. Per eseguire l'upgrade alle immagini di sistema più recenti per i dispositivi emulati, vai a Strumenti > SDK Manager.
Per ulteriori informazioni, consulta la pagina Utilizzare l'assistente di accoppiamento dell'emulatore Wear OS.
Barra degli strumenti dell'emulatore Wear OS aggiornata
A partire da Android Studio Dolphin Canary 2, per gli emulatori di Wear con livello API 28 o successivo, la barra degli strumenti dell'emulatore include pulsanti che simulano i pulsanti fisici e le azioni comuni sul dispositivo. I nuovi pulsanti sono: il pulsante 1 e il pulsante 2 (il pulsante 2 è disponibile solo con l'API di livello 30 o superiore), il pulsante con il palmo e il pulsante di inclinazione. Di seguito sono riportate alcune azioni che puoi eseguire utilizzando i nuovi pulsanti nell'emulatore Wear:
- Per impostare il dispositivo in modalità Ambient, fai clic sul pulsante con il palmo.
- Per ripristinare la schermata precedente in cui il dispositivo era acceso prima della modalità Ambient, fai clic sul pulsante Inclina.
Per maggiori informazioni, vedi Eseguire azioni comuni nell'emulatore.
Nuove configurazioni di esecuzione per Wear OS
Sono state aggiunte nuove configurazioni di esecuzione per eseguire rapidamente il debug di superfici specifiche per Wear OS, come quadranti, schede e complicazioni. Puoi creare queste nuove configurazioni dalla finestra di dialogo Esegui/configura configurazioni di debug quando esegui l'applicazione.
Per maggiori informazioni, consulta l'articolo Configurazioni di esecuzione/debug Wear OS.
Nuovo Logcat
Logcat è stato aggiornato per semplificare l'analisi, l'esecuzione di query e il monitoraggio dei log.
Nuovo formattatore
Logcat ora formatta i log per semplificare la scansione di informazioni utili, come tag e messaggi, e identificare diversi tipi di log, come avvisi ed errori.
Crea più finestre Logcat
Ora puoi creare più schede all'interno di Logcat, in modo da poter passare facilmente tra i diversi dispositivi o query. Facendo clic con il pulsante destro del mouse su una scheda, puoi rinominarla, quindi trascinarla per riorganizzarle.
Inoltre, per semplificare il confronto tra due set di log, ora puoi suddividere la visualizzazione all'interno di una scheda facendo clic con il tasto destro del mouse nella visualizzazione log e selezionando Dividi a destra o Dividi. Per chiudere una suddivisione, fai clic con il tasto destro del mouse e seleziona Chiudi. Ogni suddivisione consente di impostare la connessione del dispositivo, le opzioni di visualizzazione e la query.
Passare da una visualizzazione preimpostata all'altra
Logcat ora consente di passare rapidamente da una modalità di visualizzazione all'altra (Standard, Compatta e Personalizzata) facendo clic su . Ogni modalità di visualizzazione fornisce un'impostazione predefinita diversa per mostrare più o meno informazioni, ad esempio timestamp, tag e ID di processo (PID). Puoi anche personalizzare ciascuna di queste modalità di visualizzazione predefinite e una modalità di visualizzazione personalizzata selezionando Modifica visualizzazione.
Nuova ricerca coppia chiave-valore
Nella versione precedente di Logcat avevi la possibilità di utilizzare la ricerca per stringhe (con supporto per le espressioni regolari) o di creare un nuovo filtro compilando vari campi con l'interfaccia utente di Logcat. La prima opzione rendeva la ricerca più complessa, la seconda la seconda rendeva più difficili la condivisione e l'impostazione delle query. Ora abbiamo semplificato l'esperienza introducendo ricerche per coppie chiave-valore direttamente dal campo della query principale.
Questo nuovo sistema di query fornisce l'accuratezza delle query desiderate, senza fare affidamento su espressioni regolari, con la possibilità di ricordare le query passate dalla cronologia e di condividerle con altri. Inoltre, puoi comunque utilizzare le espressioni regolari ed escludere i log in base alle coppie chiave-valore. Di seguito sono riportati alcuni esempi di come utilizzare il nuovo sistema di query, ma puoi anche iniziare semplicemente a digitare nel campo della query per visualizzare i suggerimenti:
- PID per il progetto di app locale:
package:mine
- Valori specifici:
package:<package-ID>
tag:<tag>
level:[VERBOSE | INFO | ASSERT |DEBUG | WARN | ERROR ]
- Escludi un valore specifico facendo precedere la chiave dal simbolo
-
:-tag:<exclude-tag>
- Utilizza espressioni regolari con una determinata chiave inserendo
~
dopo la chiave:tag~:<regular-expression-tag>
- Combina con il tag di esclusione:
-tag~:<exclude-regular-expression-tag>
Puoi anche visualizzare una cronologia delle query facendo clic su nel campo delle query e selezionandole dal menu a discesa. Per aggiungere una query ai preferiti in modo che rimanga in cima all'elenco in tutti i progetti di Studio, fai clic sulla alla fine del campo della query.
Monitorare i log relativi ad arresti anomali/riavvii delle app
Il nuovo Logcat ora semplifica il monitoraggio dei log della tua app in caso di arresti anomali e riavvii dell'app, in modo da non perdere log importanti per questi eventi.
Quando un Logcat rileva che il processo dell'app è stato interrotto e riavviato, viene visualizzato un messaggio nell'output, ad esempio PROCESS ENDED
e PROCESS STARTED
, come mostrato di seguito:
Il riavvio di Logcat conserva la configurazione della sessione, ad esempio suddivisioni di schede, filtri e opzioni di visualizzazione, per consentirti di continuare facilmente la sessione.
Dispositivi gestiti da Gradle
Per migliorare coerenza, prestazioni e affidabilità quando si utilizzano dispositivi virtuali Android per i test strumentati automatizzati, stiamo introducendo i dispositivi gestiti da Gradle. Questa funzionalità, disponibile per i livelli API 27 e successivi, consente di configurare dispositivi di test virtuali nei file Gradle del progetto. Il sistema di compilazione utilizza le configurazioni per gestire completamente (ovvero creare, eseguire il deployment ed eliminare) i dispositivi durante l'esecuzione dei test automatici.
Questa funzionalità garantisce a Gradle visibilità non solo sui test in esecuzione, ma anche sul ciclo di vita dei dispositivi, migliorando così la qualità dell'esperienza di test nei seguenti modi:
- Gestisce i problemi relativi ai dispositivi per garantire l'esecuzione dei test
- Utilizza gli snapshot degli emulatori per migliorare i tempi di avvio e l'utilizzo della memoria dei dispositivi, nonché per ripristinare lo stato di pulizia dei dispositivi tra un test e l'altro
- Memorizza nella cache i risultati dei test ed esegue nuovamente solo i test che potrebbero fornire risultati diversi
- Fornisce un ambiente coerente per l'esecuzione dei test tra test locali e remoti
Inoltre, Gradle Managed Devices introduce un nuovo tipo di emulatore, chiamato Automated Test Devices (ATD), ottimizzato per migliorare le prestazioni durante l'esecuzione dei test di strumentazione. Se abbinato al supporto dello partizionamento orizzontale di test, puoi sperimentare la suddivisione della suite di test in più istanze ATD al fine di ridurre il tempo complessivo di esecuzione del test. Per saperne di più sui dispositivi gestiti da Gradle e sulle sue funzionalità associate, consulta Scalare i test con i dispositivi gestiti da Gradle.
Supporto di R8 tramite l'utilizzo di file di mappatura basati su offset dell'istruzione DEX
Durante l'ottimizzazione delle informazioni di riga, R8 ora può codificare le informazioni negli oggetti di informazioni di debug condivisi con tabelle a linee in base agli offset delle istruzioni. Questo riduce sostanzialmente l'overhead delle informazioni. Il risultato è che le righe nei metodi non sono più consecutive, ma potrebbero saltare a intervalli a seconda della dimensione delle istruzioni. Tieni presente che alcuni strumenti non prendono in considerazione questa codifica condivisa.
Inoltre, le VM Android a partire da O (livello API 26) supportano gli offset delle istruzioni di stampa nelle analisi dello stack se il metodo non contiene informazioni sul numero di riga. Quando si compila con minSdk 26 o versioni successive e senza informazioni sui file di origine, R8 rimuove completamente le informazioni relative al numero di riga.
Le lambda stateless non sono più desugurate come singleton
Le lambda stateless non vengono più assegnate come singleton durante il desugaring. La rappresentazione come singleton aggiunge un overhead per le dimensioni del codice a causa dell'aggiunta di campi e inizializzazione della classe, nonché dell'overhead all'avvio, dovuto all'inizializzazione della classe statica. Le lambda stateless vengono ora assegnate nei siti di utilizzo allo stesso modo delle lambda stateful (lambda con acquisizioni).
R8 evita il rallentamento della verifica sui runtime di Android
Per eliminare i problemi di prestazioni sui runtime di Android (Dalvik e ART), R8 (non D8) ora introduce stub di libreria e delinea le chiamate ai metodi di libreria per le classi e i metodi di libreria che potrebbero non esistere in fase di runtime. In questo modo vengono eliminati molti problemi di verifica e migliora le prestazioni di runtime. Questa funzionalità è sempre attiva.
Supporto per le API JDK-11 con desugaring dell'API Java 8 e versioni successive
Quando si utilizza la dipendenza coreLibraryDesugaring, ora è disponibile il supporto per una libreria di implementazione basata su JDK-11. Per ulteriori informazioni, consulta ildesugar_jdk_libs
log delle modifiche.
Release delle patch
Di seguito è riportato un elenco delle release delle patch in Android Studio Dolphin.
Android Studio Dolphin | Patch 1.3.1 2021 (ottobre 2022)
Con la release Patch 1, Android Studio Dolphin supporta ora il plug-in Kotlin 1.7.20. Questo piccolo aggiornamento include anche le seguenti correzioni di bug:
Problemi risolti | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Plugle Android per Gradle |
|
||||||||||||
Dexer (D8) |
|
||||||||||||
Importazione/sincronizzazione |
|
||||||||||||
Risorse |
|
||||||||||||
Shrinker (R8) |
|