Android Studio Bumblebee | 1/1/2021 (gennaio 2022)

Di seguito sono riportate le nuove funzionalità di Android Studio Bumblebee.

Supporto per l'esecuzione del test KMP

Puoi eseguire test per progetti Kotlin Multiplatform (KMP) da Android Studio Bumblebee.

Per assicurarti che i test vengano eseguiti correttamente da Android Studio, verifica di disporre di tutti i requisiti riportati di seguito:

  • AGP 7.0.0-alpha08 o versioni successive
  • Gradle 6.8.2 o superiore
  • Plug-in Kotlin 1.4.30 o versioni successive

Nuova Gestione dispositivi

Nuova finestra Gestione dispositivi con

Gestione dispositivi sostituisce la funzionalità AVD Manager, sia dalla schermata di benvenuto di Android Studio sia dopo aver aperto un progetto. Gestione dispositivi introduce alcune nuove funzionalità che semplificano la creazione e la gestione di tutti i dispositivi di test locali, ad esempio:

  • Un'interfaccia utente più flessibile che supporta l'inserimento nel dock nell'IDE, mobile o in una finestra separata, come in altre finestre degli strumenti Android Studio. In questo modo puoi accedere più facilmente ai tuoi dispositivi senza ostruire altre finestre dell'IDE.
  • Una scheda Virtuale che consente di creare, gestire ed eseguire il deployment di dispositivi virtuali, visualizzare i dettagli di ogni dispositivo a colpo d'occhio o ispezionare rapidamente il dispositivo in Esplora file dispositivo con un solo clic.
  • Una scheda Fisica che ti consente di accoppiare rapidamente un nuovo dispositivo tramite ADB Wifi e di visualizzare a colpo d'occhio i dettagli di ogni dispositivo fisico. Puoi anche ispezionare rapidamente il file system di ciascun dispositivo utilizzando Esplora file del dispositivo con un clic.

Per aprire la nuova versione di Gestione dispositivi, procedi in uno dei seguenti modi:

  • Nella schermata di benvenuto di Android Studio, seleziona Altre azioni > Gestione dispositivi virtuali.
  • Dopo aver aperto un progetto, seleziona Visualizza > Finestre degli strumenti > Gestione dispositivi dalla barra del menu principale.

Novità in Controllo layout

Acquisisci snapshot della gerarchia di layout

Layout Inspector ora consente di salvare istantanee della gerarchia di layout dell'app in esecuzione, in modo da poterle condividere facilmente con altri o farvi riferimento in un secondo momento.

Gli snapshot acquisiscono i dati che generalmente vengono visualizzati quando utilizzi lo strumento Controllo layout, tra cui un rendering 3D dettagliato del layout, la struttura ad albero dei componenti di Visualizzazione, Scrivi o del layout ibrido e attributi dettagliati per ciascun componente dell'interfaccia utente. Per salvare uno snapshot:

  1. Eseguire il deployment dell'app su un dispositivo con livello API 23 o versioni successive
  2. Apri Controllo layout selezionando Visualizza > Finestre degli strumenti > Controllo layout.
  3. Layout Inspector dovrebbe connettersi automaticamente al processo dell'app. In caso contrario, seleziona la procedura dell'app dal menu a discesa.
  4. Se vuoi acquisire un'istantanea, fai clic su Esporta istantanea Icona Esporta nella barra degli strumenti di Controllo layout.
  5. Nella finestra di dialogo di sistema visualizzata, specifica il nome e la posizione in cui salvare lo snapshot. Assicurati di salvare il file con un'estensione *.li.

In seguito, puoi caricare un'istantanea di Layout Inspector selezionando File > Apri dalla barra del menu principale e aprendo un file *.li.

Istantanea dello strumento di controllo del layout per l'app di esempio Girasole

Supporto per l'ispezione della semantica di Compose

In Compose, Semantics descrive la tua UI in un modo alternativo comprensibile per i servizi di accessibilità e per il framework di testing. In Android Studio Bumblebee, ora puoi utilizzare Layout Inspector per esaminare le informazioni semantiche nei layout di Compose.

Informazioni semantiche visualizzate tramite Layout Inspector

Quando selezioni un nodo Scrivi, utilizza la finestra Attributi per verificare se dichiara direttamente le informazioni semantiche, se unisce la semantica dagli elementi figlio o se esegue entrambe le operazioni. Per identificare rapidamente i nodi che includono la semantica, dichiarata o unita, seleziona il menu a discesa Opzioni di visualizzazione nella finestra Struttura ad albero dei componenti e seleziona Evidenzia livelli semantici. In questo modo vengono evidenziati solo i nodi nell'albero che includono la semantica e puoi utilizzare la tastiera per spostarti rapidamente da uno all'altro.

Evitare i riavvii dell'attività

Se colleghi il Controllo layout a un'app in esecuzione su versioni precedenti di Android Studio, l'attività dell'app potrebbe essere riavviata. Questa operazione è necessaria per impostare un flag dispositivo che consenta di esaminare i layout della tua app.

In Android Studio Bumblebee, puoi evitare il riavvio dell'attività quando colleghi Controllo layout impostando in anticipo questo flag tramite uno dei seguenti passaggi:

  • Abilita un'opzione di esecuzione della configurazione

    1. Seleziona Esegui > Modifica configurazioni dalla barra del menu principale. Viene visualizzata la finestra di dialogo Esegui/configura configurazioni di debug.
    2. Vai alla configurazione di esecuzione che vuoi utilizzare.
    3. Nella sezione Opzioni di Controllo layout, seleziona la casella accanto a Connetti a Layout Inspector senza riavviare l'attività.
    4. Utilizza la configurazione di esecuzione la prossima volta che vuoi esaminare la tua app utilizzando Layout Inspector.
  • Imposta il flag dalla riga di comando:

    1. Apri una finestra del terminale sulla macchina collegata al dispositivo
    2. Imposta il flag dispositivo per la tua app utilizzando il seguente comando:
    adb shell settings put global debug_view_attributes_application_package <my_package_name>
    
    1. Implementa l'app sul dispositivo e collega il Controllo layout. Android Studio controllerà se il flag è impostato ed eviterà di riavviare l'attività, se possibile.

Istantanee di Document Layout Inspector

Ora puoi acquisire snapshot della gerarchia di layout della tua app da salvare, condividere o esaminare in un secondo momento. Gli snapshot acquisiscono i dati che normalmente visualizzi quando utilizzi Controllo layout, tra cui un rendering 3D dettagliato del layout, la struttura ad albero dei componenti di visualizzazione, composizione o layout ibrido e attributi dettagliati per ciascun componente dell'interfaccia utente. Quando esamini il layout di un'app in esecuzione, fai clic su Esporta istantanea Icona Esporta nella barra degli strumenti di Controllo layout e salva l'istantanea con un'estensione *.li. Puoi quindi caricare uno snapshot di Layout Inspector selezionando File > Apri nella barra del menu principale e aprendo un file *.li. Lo snapshot viene visualizzato in una scheda della finestra dell'editor, per consentirti di confrontarlo facilmente con l'app in esecuzione.

Novità in Controllo app

In Android Studio Bumblebee, sono disponibili nuovi strumenti e funzionalità nella finestra Ispezione delle app. Puoi aprire Controllo app selezionando Visualizza > Finestre dello strumento > Controllo app dalla barra del menu principale.

Controllo rete

Network Profiler nella finestra dello strumento Profilers è stato spostato nella finestra dello strumento App Ispezione. Se hai già utilizzato Network Profiler, rimangono disponibili le stesse funzionalità e dati avanzati sul traffico di rete. È sufficiente eseguire il deployment della tua app su un dispositivo con livello API 26 o livelli successivi e aprire la scheda App Inspector > Network Inspector.

Ispezione di job, sveglie e wakelock

Background Task Inspector ora consente di esaminare job, sveglie e wakelock della tua app, oltre al supporto esistente per l'ispezione dei worker. Ogni tipo di attività asincrona viene ora visualizzata sotto l'intestazione appropriata nella scheda Controllo, consentendoti di monitorarne facilmente lo stato e l'avanzamento. Come per i worker, puoi selezionare un lavoro, una sveglia o un wakelock per ispezionarne le informazioni dettagliate nel riquadro Dettagli attività.

Controllo attività in background che mostra lavori, sveglie e wakelock

Poiché i Lavoratori usano i job e i wakelock in background, quelle attività programmate dai lavoratori appaiono come figli di ogni worker. Tieni presente che puoi visualizzare i worker solo in modalità grafico.

Novità in Profiler

In Android Studio Bumblebee, sono disponibili nuove funzionalità che ti offrono maggiori informazioni su come la tua app utilizza le risorse. Per profilare la tua app, seleziona Visualizza > Strumenti Windows > Profiler dalla barra del menu principale.

Canale per il rilevamento di infiltrazioni

Durante la profilazione della tua app utilizzando dispositivi con Android 11 (livello API 30) o versioni successive, il profiler CPU ora mostra un nuovo gruppo di tracce che illustra le fasi di ogni frame in Ciclo di vita dei frame: Applicazione, Attendi GPU, Composizione e Frame sul display. Ogni traccia etichetta i frame con un numero di frame e codifica il rettangolo con il colore per consentirti di visualizzare facilmente la fase del ciclo di vita di un frame specifico, oltre a guide da confrontare con gli eventi Vsync. Puoi utilizzare questi dati per capire dove potrebbe verificarsi jank nella tua app e indagare sulle cause principali. Nel riquadro Analisi ora è presente la scheda Frame, che riassume comodamente le informazioni di rendering per tutti i frame. Per ulteriori informazioni, consulta Rilevamento di jank nell'interfaccia utente.

Assistenza per la profilazione delle app profilabili

Durante la profilazione dell'app, è importante generare dati accurati con la versione dell'app più simile a quella che installeranno gli utenti. Per farlo, ora puoi includere la proprietà <profileable> nel file manifest dell'app per profilare le app di cui non è possibile eseguire il debug, come mostrato dal seguente codice.

<profileable android:shell="true"/>

Profileable è una configurazione manifest introdotta in Android 10 ed è disponibile per le attività di profilazione di CPU e memoria. L'utilizzo del flag profilabile anziché del flag di cui è possibile eseguire il debug presenta il vantaggio principale di un overhead inferiore per la misurazione delle prestazioni; tuttavia, alcune funzionalità di profilazione non sono disponibili per le build profilabili, ad esempio la sequenza temporale degli eventi, la profilazione della CPU avviata dall'API, i dump dell'heap o le registrazioni della posizione in tempo reale. Per ulteriori informazioni, consulta Applicazioni profilabili.

Comprimi frame di calltack

Ora puoi comprimere i frame non pertinenti alla tua indagine quando ispezioni una registrazione di esempio di Callstack nella finestra dello strumento Profilers. Gli stack di chiamate sono utili per capire quale parte del codice è stata eseguita e perché è stata richiamata. Tuttavia, il calltack per un programma Java/Kotlin di solito include non solo codice Java/Kotlin, ma anche frame del codice nativo che possono distrarre. Per scoprire di più su come perfezionare la visualizzazione di calltack, consulta Esaminare i frame di calltack.

Debug wireless

Android Studio Bumblebee supporta la funzionalità di debug wireless su dispositivi Android 11 e versioni successive. Accoppia ed esegui il deployment della tua app da Android Studio tramite Wi-Fi senza utilizzare un cavo USB o gestire le connessioni Android Debug Bridge (adb) utilizzando la riga di comando. Per utilizzare l'opzione, vai all'opzione Accoppia dispositivi tramite Wi-Fi dal menu di selezione del dispositivo, quindi scegli un codice QR o un codice PIN di accoppiamento. Sul dispositivo Android 11 e versioni successive, nella sezione Opzioni sviluppatore, trova la schermata Debug wireless, quindi inizializza e connettiti a una sessione ADB in modalità wireless con Android Studio. Scopri di più sulla configurazione del debug wireless nella pagina Connettersi a un dispositivo tramite Wi-Fi (Android 11 e versioni successive).

Accoppiamento di un dispositivo tramite Wi-Fi

Crea anteprima interattiva attivata per impostazione predefinita

A partire da Bumblebee di Android Studio, la funzionalità di anteprima interattiva è abilitata per impostazione predefinita. L'anteprima interattiva ti consente di interagire con l'anteprima come funzionerebbe su un dispositivo. L'anteprima interattiva viene isolata dalle altre anteprime in un ambiente sandbox, in cui puoi fare clic sugli elementi e inserire l'input utente nell'anteprima. È un modo rapido per testare stati e gesti diversi della tua componibile, ad esempio una casella di controllo selezionata o vuota.

La modalità interattiva in anteprima viene eseguita direttamente in Android Studio senza emulatore, il che comporta alcune limitazioni:

  • Nessun accesso di rete.
  • Nessun accesso ai file.
  • Alcune API di contesto potrebbero non essere completamente disponibili.

Utente che interagisce con un&#39;anteprima in Android Studio

Anteprima di disegno vettoriale animato (AVD)

Lo strumento di disegno vettoriale animato offre la possibilità di visualizzare l'anteprima delle risorse disegnabili animate. Questo strumento ti consente di visualizzare l'anteprima delle risorse <animation-list>, <animated-vector> e <animated-selector> in Android Studio e semplifica il perfezionamento delle animazioni personalizzate.

L&#39;utente visualizza l&#39;anteprima e la riproduzione di un&#39;animazione in Android Studio

Classi R non transitive attive per impostazione predefinita

Le classi R non transitive sono ora attive per impostazione predefinita. Puoi utilizzare classi R non transitive con il plug-in Android per Gradle per creare build più veloci per applicazioni con più moduli. In questo modo è possibile evitare la duplicazione delle risorse garantendo che la classe R di ogni modulo contenga solo riferimenti alle proprie risorse, senza estrarre riferimenti dalle sue dipendenze. Questo porta a build più aggiornate e ai vantaggi corrispondenti di evitare le compilazioni.

Per ricevere assistenza per l'utilizzo di questa funzionalità, vai a Refactoring > Esegui la migrazione alle classi R non temporanee...

Aggiornamento sul supporto di Apple Silicon

Per chi usa macOS su hardware Apple Silicon (arm64), Android Studio Arctic Fox ed Android Emulator supportano questa nuova architettura dallo scorso anno. Tuttavia, con questa versione abbiamo aggiornato gli strumenti della piattaforma SDK Android v32.0.0 (che include adb e fastboot) e gli strumenti di build v32.1.0 (che include aapt) in modo che diventino programmi binari universali in modo che i tuoi strumenti per sviluppatori Android non richiedano più l'esecuzione del traduttore binario Rosetta. Consulta le note di rilascio degli strumenti della piattaforma SDK.

Selettore dispositivi aggiornato per gli strumenti di progettazione

Per semplificare la progettazione dell'app per i diversi dispositivi Android, abbiamo aggiornato il selettore dispositivo in varie finestre degli strumenti di progettazione, ad esempio Layout Editor e Convalida del layout, con dispositivi di riferimento che riflettono le dimensioni più comuni dei fattori di forma di ciascun dispositivo. Da telefoni a tablet, da dispositivi Wear ad Android TV, ora è più facile visualizzare in anteprima, convalidare o modificare il layout su schermi di dimensioni più rappresentative dei dispositivi più diffusi nel mondo reale.

Selettore dispositivi con i dispositivi e le relative dimensioni e densità, raggruppati per classe

Test di Android

Android Studio Bumblebee e AGP 7.1 introducono diversi nuovi miglioramenti e funzionalità per aiutarti a eseguire i test di strumentazione automatizzati in modo più affidabile e scalabile e a ottenere risultati utili che puoi utilizzare per eseguire il debug dei problemi.

Esecutore test Gradle unificato

Il plug-in Android per Gradle 7.1.0 e Android Studio Bumblebee e versioni successive utilizzano l'implementazione di Gradle del runner di test strumentato per Android per eseguire test con strumentazione. Utilizzando lo stesso esecutore del test, è probabile che i risultati siano coerenti, a prescindere dall'esecuzione di AGP dalla riga di comando, ad esempio su un server di integrazione continua, o da Android Studio.

Esecutore test Gradle unificato in Bumblebee

Le versioni precedenti di Android Studio utilizzano l'esecutore di test strumentato per Android IntelliJ anziché l'esecutore di test strumentato per Android di Gradle. Pertanto, se non utilizzi la versione più recente di Android Studio, a seconda che tu li esegua da Android Studio o dalla riga di comando utilizzando il plug-in Gradle, potresti vedere risultati di test diversi, ad esempio test superati con un runner e fallimentare su un altro.

Strumenti di test discreti nelle versioni precedenti di Android Studio

Se hai già salvato configurazioni di test strumentate nel progetto, questi utilizzeranno Gradle per eseguire i test sul tuo dispositivo connesso. Puoi creare una nuova configurazione di test strumentata utilizzando l'azione gronda accanto alla classe o al metodo di test, come mostrato di seguito.

Esegui test dall&#39;azione gronda

Durante l'esecuzione dei test strumentati, puoi confermare che Android Studio stia utilizzando l'esecutore del test Gradle ispezionando l'output del test nella matrice di test per l'output dell'attività Gradle. Anche se miglioriamo questa funzionalità a ogni versione di Android Studio, esistono alcuni problemi noti. Se riscontri problemi, segnala un bug. Puoi anche disabilitare la nuova pipeline di test per ripristinare il comportamento precedente.

Android Emulator ora viene eseguito direttamente all'interno di Android Studio per impostazione predefinita

Per impostazione predefinita, Android Emulator viene eseguito direttamente all'interno di Android Studio. In questo modo puoi risparmiare spazio sullo schermo, spostarti rapidamente tra l'emulatore e la finestra dell'editor utilizzando i tasti di scelta rapida e organizzare il flusso di lavoro dell'emulatore e dell'IDE in un'unica finestra dell'applicazione.

L&#39;emulatore viene avviato in una finestra degli strumenti di Android Studio.

Quando l'emulatore è in esecuzione, avrai accesso alle azioni più comuni dell'emulatore, ad esempio la rotazione, e alle opzioni di controllo esteso come la riproduzione della navigazione. Per eseguire l'emulatore in una finestra separata, vai a File > Impostazioni > Strumenti > Emulatore (Android Studio > Preferenze > Strumenti > Emulatore su macOS) e deseleziona Avvia in una finestra degli strumenti.

Disabilita la nuova pipeline di test

Per impostazione predefinita, Android Studio Bumblebee utilizza Gradle per eseguire i test di strumentazione. Se riscontri problemi, puoi disattivare questo comportamento come descritto di seguito:

  1. Seleziona File > Impostazioni > Creazione, Esecuzione, Implementazione > Test (oppure Android Studio > Preferenze > Creazione, Esecuzione, Implementazione > Test su MacOS).
  2. Deseleziona la casella accanto a Esegui test strumentati Android utilizzando Gradle e fai clic su OK.

Puoi anche ripristinare i comportamenti precedenti in uno dei seguenti modi:

  • Quando esegui le attività Gradle dalla riga di comando, utilizza il seguente parametro della riga di comando: -Pandroid.experimental.androidTest.useUnifiedTestPlatform=false
  • Aggiungi il seguente parametro al file gradle.properties del tuo progetto: android.experimental.androidTest.useUnifiedTestPlatform=false

Per contribuire a risolvere eventuali problemi, segnala un bug.

Release delle patch

Di seguito sono riportate le patch di Android Studio Bumblebee.

Android Studio Bumblebee | Patch 3.1.1 2021 (aprile 2022)

Questo piccolo aggiornamento include le seguenti correzioni di bug:

  • Plug-in Android per Gradle
    • Problemi di classe duplicati segnalati da R8
  • Crea varianti
    • versionNameSuffix non funziona più se il nome della versione della variante viene impostato tramite la nuova API onVariants
  • Crea anteprima
    • Correzioni di bug relativi a prestazioni e stabilità.
    • Risolvi il blocco che si è verificato occasionalmente durante l'utilizzo della funzionalità Modifica in tempo reale dei valori letterali.
  • Importa/Sincronizza
    • Il messaggio "È necessaria la sincronizzazione della promozione" contiene versioni AGP ridondanti
    • Ricompilare Foo.java/kt pulisce troppo e non ricompila il componente giusto
  • Struttura del progetto
    • Miglioramenti alla stabilità dell'assistente di upgrade di AGP quando si cambiano le versioni di destinazione
    • AGP Upgrade Assistant ora informa gli utenti sull'upgrade dei plug-in Gradle
  • Network Inspector
    • Il nuovo Network Inspector si arresta in modo anomalo dopo l'aggiornamento di Bumblebee
    • Ricevo costantemente questo errore quando il debugger è connesso all'ultima versione di Android Studio.
    • TrackedHttpURLConnection.getHeaderField arresti anomali con NullPointerException

Per ulteriori informazioni, leggi il post del blog Bumblebee Patch 3 di Android Studio.

Android Studio Bumblebee | Patch 2.1.1 2021 (febbraio 2022)

Questo aggiornamento include le seguenti correzioni di bug:

  • Build C++
    • ModelCache.safeGet(androidProjectResult.androidProject::getNdkVersion, "") non deve essere null
  • Editor di codice
    • Bug nei modelli live di Android Studio: l'espressione className() non risolve il nome della classe
  • D8/R8
    • java.lang.NoSuchMethodError: nessun metodo statico $jacocoInit
    • Copertura dei test di Android interrotta a causa di un errore di Mockito
    • È necessaria una soluzione alternativa per l'implementazione di CAS non funzionante nell'API 31
    • Le classi Sealed non sono supportate
    • NullPointerException quando abiliti l'unione orizzontale delle classi in Chrome
    • AbstractMethodError dopo l'unione del metodo virtuale
    • Impossibile verificare gli stack frame a causa di un out-type init-class errato
    • L'input Dex utilizza un registro non definito
    • Errore di StringBuilderOptimizerAnalysisTest nei rami di release
    • Non determinismo in R8
  • Deployment
    • L'esecuzione del progetto dell'applicazione del proprietario del dispositivo non riesce e viene visualizzato il messaggio di errore Couldn't terminate the existing process for
  • Strumenti di progettazione
    • Le anteprime di composizione non riescono a trovare risorse di altri moduli quando sono abilitate classi R non transitive
    • Studio si blocca durante la build.
  • Emulatore incorporato
    • Vari miglioramenti delle prestazioni e della stabilità.
  • Importa/Sincronizza
    • Errore IDE all'avvio di Bumblebee: il file di build dell'elenco di output non è disponibile per il tipo di output Apk in IdeBuildTasksAndOutputInformationImp
  • IntelliJ
    • Variabili di ambiente non recuperate quando vengono lanciate da Mac OS X Monterey Dock
  • Jetpack (androidx) > Navigazione
    • Esegui l'upgrade di SafeArgs per creare sulla versione più recente di AGP stabile
  • Finestre degli strumenti
    • Impossibile eseguire Gestione dispositivi Android
    • Network Inspector in BumbleBee non mostra la risposta dell'API in formato leggibile

Per ulteriori informazioni, consulta il post del blog Bumblebee Patch 2 di Android Studio.

Android Studio Bumblebee | Patch 1.1.1 2021 (febbraio 2022)

Questo piccolo aggiornamento include le seguenti correzioni di bug:

  • Emulatore
    • Impossibile connettersi all'emulatore incorporato dopo aver eseguito l'upgrade a Bumblebee (Mac M1)
  • IntelliJ
    • Variabili di ambiente non recuperate quando vengono lanciate da Mac OS X Monterey Dock

Per ulteriori informazioni, consulta il post del blog Bumblebee Patch 1 di Android Studio.