Android Studio Iguana | 1/2023

Android Studio è l'IDE ufficiale per lo sviluppo per Android e include tutto il necessario per creare app per Android.

Questa pagina elenca le nuove funzionalità e i miglioramenti apportati all'ultima versione nel canale stabile Android Studio Iguana. Puoi scaricarla qui o aggiornarla in Android Studio facendo clic su Guida > Verifica la disponibilità di aggiornamenti (Android Studio > Verifica la disponibilità di aggiornamenti su macOS).

Per controllare le correzioni apportate in questa versione di Android Studio, consulta i problemi chiusi.

Per visualizzare le note di rilascio relative alle versioni precedenti di Android Studio, consulta Release precedenti.

Per accedere in anteprima alle funzionalità e ai miglioramenti imminenti, consulta Anteprima delle build di Android Studio.

Se riscontri problemi in Android Studio, consulta la pagina Problemi noti o Risoluzione dei problemi.

Compatibilità del plug-in Android Gradle e di Android Studio

Il sistema di build di Android Studio è basato su Gradle e il plug-in Android Gradle (AGP) aggiunge diverse funzionalità specifiche per la creazione di app per Android. Nella tabella seguente è indicata la versione di AGP richiesta per ogni versione di Android Studio.

Versione di Android Studio Versione AGP obbligatoria
Meduse | 1.3.2023 3,2-8,4
Iguana | 1/2/2023 3,2-8,3
Riccio | 1.1.2023 3,2-8,2
Giraffa | 1.3.2022 3,2-8,1
Fenicottero | 1.2.2022 3,2-8,0
Anguilla elettrica | 1.1.2022 3,2-7,4

Versioni precedenti

Versione di Android Studio Versione AGP obbligatoria
Delfino | 1.3.2021 3,2-7,3
Scoiattolo americano | 1/2/2021 3,2-7,2
Bombolo | 1.1.2021 3,2-7,1
Volpe artica | 2020.3.1 3,1-7,0

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

Versioni minime degli strumenti per il livello API Android

Esistono versioni minime di Android Studio e AGP che supportano un livello API specifico. L'utilizzo di versioni di Android Studio o AGP precedenti a quelle richieste dalle targetSdk o compileSdk del progetto potrebbe causare problemi imprevisti. Ti consigliamo di utilizzare l'ultima versione di anteprima di Android Studio e AGP per lavorare su progetti che hanno come target le versioni in anteprima del sistema operativo Android. Puoi installare versioni di anteprima di Android Studio oltre a una versione stabile.

Le versioni minime di Android Studio e AGP sono le seguenti:

Livello API Versione minima di Android Studio Versione AGP minima
Anteprima VanillaIceCream Meduse | 1.3.2023 8.4
34 Riccio | 1.1.2023 8.1.1
33 Fenicottero | 1.2.2022 7,2

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

Release patch

Di seguito è riportato un elenco delle release delle patch in Android Studio Iguana e nel plug-in Android Gradle 8.3.

Android Studio Iguana | Patch 1 2023.2.1 e AGP 8.3.1 (marzo 2024)

Questo aggiornamento secondario include queste correzioni di bug.

Integrazione del sistema di controllo della versione negli approfondimenti sulla qualità delle app

App Quality Insights ora ti consente di passare dall'analisi dello stack di Crashlytics al codice pertinente, nel momento in cui si è verificato l'arresto anomalo. AGP allega i dati di hash del commit Git ai report sugli arresti anomali, il che consente ad Android Studio di accedere al tuo codice e mostrare com'era nella versione in cui si è verificato il problema. Quando visualizzi un report sugli arresti anomali in Approfondimenti sulla qualità delle app, puoi scegliere di andare alla riga di codice nel pagamento Git corrente o visualizzare una differenza tra il pagamento corrente e la versione del codebase che ha generato l'arresto anomalo.

Per integrare il tuo sistema di controllo della versione con App Quality Insights, devi soddisfare i seguenti requisiti minimi:

Per utilizzare l'integrazione del controllo della versione per un tipo di build di cui è possibile eseguire il debug, abilita il flag vcsInfo nel file di build a livello di modulo. Per le build release (non di cui è possibile eseguire il debug), il flag è abilitato per impostazione predefinita.

Kotlin

android {
  buildTypes {
    getByName("debug") {
      vcsInfo {
        include = true
      }
    }
  }
}

trendy

android {
  buildTypes {
    debug {
      vcsInfo {
        include true
      }
    }
  }
}

Ora, quando crei la tua app e la pubblichi su Google Play, i report sugli arresti anomali includono i dati necessari all'IDE per collegarsi alle versioni precedenti dell'app dall'analisi dello stack.

Visualizzare le varianti di arresto anomalo di Crashlytics negli approfondimenti sulla qualità delle app

Per analizzare le cause principali di un arresto anomalo, ora puoi utilizzare gli approfondimenti sulla qualità delle app per visualizzare gli eventi in base a varianti del problema o gruppi di eventi che condividono analisi dello stack simili. Per visualizzare gli eventi in ogni variante di un report sugli arresti anomali, seleziona una variante dal menu a discesa. Per aggregare le informazioni per tutte le varianti, seleziona Tutte.

Controllo UI di composizione

Per aiutare gli sviluppatori a creare UI più adattive e accessibili in Jetpack Compose, Android Studio Iguana Canary 5 ha introdotto una nuova modalità di controllo dell'interfaccia utente in Compose Preview. Questa funzionalità è simile a lint visivo e integrazioni dei controlli di accessibilità per le visualizzazioni. Quando attivi la modalità di controllo dell'interfaccia utente di Compose, Android Studio controlla automaticamente l'interfaccia utente di Compose e verifica la presenza di problemi adattivi e di accessibilità su schermo di dimensioni diverse, ad esempio testo esteso su schermi di grandi dimensioni o contrasto basso. La modalità evidenzia i problemi rilevati in diverse configurazioni dell'anteprima e li elenca nel riquadro dei problemi.

Prova questa funzionalità oggi stesso facendo clic sul pulsante Controllo UI su Anteprima di Scrivi e invia il tuo feedback:

Fai clic sul pulsante Modalità di controllo dell'UI di composizione per attivare il controllo.

Problemi noti della modalità di controllo dell'interfaccia utente:

  • Il problema selezionato nel riquadro dei problemi potrebbe perdere lo stato attivo
  • "Ignora regola" non funziona
Modalità di controllo dell'UI di composizione attivata con i dettagli nel riquadro dei problemi.

Rendering progressivo per l'anteprima di Compose

Android Studio Iguana Canary 3 introduce il rendering progressivo nell'anteprima di Compose. Nell'ambito del nostro continuo impegno volto a migliorare le prestazioni delle anteprime, ora, per qualsiasi anteprima che non è visibile, ne riduciamo deliberatamente la qualità per risparmiare memoria utilizzata.

Questa funzionalità è stata sviluppata con l'obiettivo di migliorare ulteriormente l'usabilità delle anteprime in quanto è in grado di gestire più anteprime contemporaneamente in un file. Prova la prova oggi e invia il tuo feedback.

Aggiornamento della piattaforma IntelliJ IDEA 2023.2

Android Studio Iguana include gli aggiornamenti IntelliJ IDEA 2023.2, che migliorano l'esperienza dell'IDE di Studio. Per maggiori dettagli sulle modifiche, consulta le note di rilascio di IntelliJ IDEA 2023.2.

Procedura guidata del modulo Profili di riferimento

A partire da Android Studio Iguana, puoi generare profili di riferimento per la tua app utilizzando il modello Generatore di profili di riferimento nella nuova procedura guidata di modulo (File > Nuovo > Nuovo modulo).

Questo modello configura il progetto in modo che possa supportare i profili di riferimento. Utilizza il nuovo plug-in Gradle Baseline Profiles, che automatizza il processo di configurazione del progetto nel modo richiesto con un'attività Gradle.

Il modello crea anche una configurazione di esecuzione che ti consente di generare un profilo di riferimento con un clic dall'elenco a discesa Seleziona configurazione di esecuzione/debug.

Testare le modifiche alla configurazione con l'API Espresso Device

Utilizza l'API Espresso Device per testare la tua app quando il dispositivo subisce modifiche comuni alla configurazione, ad esempio la rotazione e l'apertura dello schermo. L'API Espresso Device consente di simulare queste modifiche alla configurazione su un dispositivo virtuale ed eseguire i test in modo sincrono, così viene eseguita una sola azione o asserzione dell'interfaccia utente alla volta e i risultati del test sono più affidabili. Scopri di più su come scrivere test UI con Espresso.

Per utilizzare l'API Espresso Device, occorre quanto segue:

  • Android Studio Iguana o versioni successive
  • Plug-in Android Gradle 8.3 o versioni successive
  • Emulatore Android 33.1.10 o versioni successive
  • Dispositivo virtuale Android che esegue il livello API 24 o versioni successive

Configura il progetto per l'API Espresso Device

Per configurare il progetto in modo che supporti l'API Espresso Device:

  1. Per consentire al test di passare i comandi al dispositivo di test, aggiungi le autorizzazioni INTERNET e ACCESS_NETWORK_STATE al file manifest nel set di origine androidTest:

      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permissions.ACCESS_NETWORK_STATE" />
  2. Attiva il flag sperimentale enableEmulatorControl nel file gradle.properties:

      android.experimental.androidTest.enableEmulatorControl=true
  3. Abilita l'opzione emulatorControl nello script di build a livello di modulo:

    Kotlin

      testOptions {
        emulatorControl {
          enable = true
        }
      }

    trendy

      testOptions {
        emulatorControl {
          enable = true
        }
      }
  4. Nello script di compilazione a livello di modulo, importa la libreria di dispositivi Espresso nel progetto:

    Kotlin

      dependencies {
        androidTestImplementation("androidx.test.espresso:espresso-device:3.5.1")
      }

    trendy

      dependencies {
        androidTestImplementation 'androidx.test.espresso:espresso-device:3.5.1'
      }

Test delle modifiche comuni alla configurazione

L'API Espresso Device ha più orientamenti e stati pieghevoli che puoi utilizzare per simulare modifiche alla configurazione del dispositivo.

Testa rispetto alla rotazione dello schermo

Ecco un esempio di come verificare cosa succede alla tua app quando lo schermo del dispositivo ruota:

  1. Innanzitutto, per uno stato di avvio coerente, imposta il dispositivo in modalità verticale:

      import androidx.test.espresso.device.action.ScreenOrientation
      import androidx.test.espresso.device.rules.ScreenOrientationRule
      ...
      @get:Rule
      val screenOrientationRule: ScreenOrientationRule = ScreenOrientationRule(ScreenOrientation.PORTRAIT)
  2. Crea un test che imposti il dispositivo in orientamento orizzontale durante l'esecuzione del test:

      @Test
      fun myRotationTest() {
        ...
        // Sets the device to landscape orientation during test execution.
        onDevice().setScreenOrientation(ScreenOrientation.LANDSCAPE)
        ...
      }
  3. Dopo che lo schermo ruota, verifica che l'UI si adatti al nuovo layout come previsto:

      @Test
      fun myRotationTest() {
        ...
        // Sets the device to landscape orientation during test execution.
        onDevice().setScreenOrientation(ScreenOrientation.LANDSCAPE)
        composeTestRule.onNodeWithTag("NavRail").assertIsDisplayed()
        composeTestRule.onNodeWithTag("BottomBar").assertDoesNotExist()
      }

Test rispetto allo schermo che si apre

Ecco un esempio di come verificare cosa succede alla tua app se si trova su un dispositivo pieghevole e lo schermo si apre:

  1. Innanzitutto, esegui il test con il dispositivo chiuso chiamando onDevice().setClosedMode(). Assicurati che il layout dell'app si adatti alla larghezza dello schermo compatto:

      @Test
      fun myUnfoldedTest() {
        onDevice().setClosedMode()
        composeTestRule.onNodeWithTag("BottomBar").assetIsDisplayed()
        composeTestRule.onNodeWithTag("NavRail").assetDoesNotExist()
        ...
      }
  2. Per passare a uno stato completamente aperto, chiama onDevice().setFlatMode(). Verifica che il layout dell'app si adatti alla classe di dimensioni espansa:

      @Test
      fun myUnfoldedTest() {
        onDevice().setClosedMode()
        ...
        onDevice().setFlatMode()
        composeTestRule.onNodeWithTag("NavRail").assertIsDisplayed()
        composeTestRule.onNodeWithTag("BottomBar").assetDoesNotExist()
      }

Specifica i dispositivi necessari per i test

Se esegui un test che esegue azioni di piegatura su un dispositivo non pieghevole, generalmente il test non va a buon fine. Per eseguire solo i test pertinenti per il dispositivo in esecuzione, utilizza l'annotazione @RequiresDeviceMode. L'esecutore del test salta automaticamente i test sui dispositivi che non supportano la configurazione in fase di test. Puoi aggiungere la regola per i requisiti del dispositivo a ogni test o a un'intera classe di test.

Ad esempio, per specificare che un test deve essere eseguito solo su dispositivi che supportano l'espansione in una configurazione flat, aggiungi il seguente codice @RequiresDeviceMode al test:

@Test
@RequiresDeviceMode(mode = FLAT)
fun myUnfoldedTest() {
  ...
}