Sviluppo di codice iterativo

In qualità di sviluppatore mobile, spesso sviluppi l'interfaccia utente della tua app passo dopo passo anziché tutto contemporaneamente. Android Studio adotta questo approccio con Jetpack Compose fornisce strumenti per l'ispezione che non richiedono una build completa, modificare i valori e verificare il risultato finale.

Live Edit

Live Edit è una funzionalità che consente di aggiornare gli elementi componibili negli emulatori dispositivi fisici in tempo reale. Questa funzionalità riduce al minimo i cambi di contesto tra scrittura e creazione dell'app, così potrai concentrarti più a lungo sulla scrittura del codice senza interruzioni.

La funzionalità di editing in tempo reale prevede tre modalità:

  • Manuale: le modifiche al codice vengono applicate quando vengono inviate manualmente utilizzando Ctrl+' (Comando+' su macOS)
  • Manuale al salvataggio: le modifiche al codice vengono applicate quando vengono salvate manualmente utilizzando Ctrl+S (Cmd+S su macOS).
  • Automatico: le modifiche vengono applicate sul dispositivo o nell'emulatore quando aggiorni una funzione componibile.

La funzionalità di modifica in tempo reale si concentra sulle modifiche al codice relative a UI e UX. La funzionalità Modifica in tempo reale non supportare modifiche quali aggiornamenti della firma dei metodi, aggiunta di nuovi metodi o modifiche gerarchiche. Per ulteriori informazioni, consulta l'elenco delle limitazioni di Live Edit.

Questa funzionalità non sostituisce la creazione e l'esecuzione dell'app o per Applica modifiche. È progettato invece per ottimizzare il flusso di lavoro durante la creazione, il deployment e l'iterazione per sviluppare la UI di Compose.

Il flusso di lavoro delle best practice è il seguente:

  1. Configura l'applicazione in modo che possa essere eseguita.
  2. Utilizza la modifica in tempo reale il più possibile finché non devi apportare una modifica non supportata da questa funzionalità, ad esempio l'aggiunta di nuovi metodi mentre l'app è in esecuzione.
  3. Dopo aver apportato una modifica non supportata, fai clic su Esegui Corsa
icona per riavviare la tua app e riprendere la modifica in tempo reale.

Iniziare a utilizzare la modifica in tempo reale

Per iniziare, segui questi passaggi per creare un'attività di scrittura vuota, attiva Live Edit per il tuo progetto e apportare modifiche con Live Edit.

Configura il nuovo progetto

  1. Prima di iniziare, assicurati di avere installato Android Studio Giraffe o versioni successive e che il livello API del tuo dispositivo fisico o dell'emulatore sia almeno 30.

  2. Apri Android Studio e seleziona Nuovo progetto nella finestra di dialogo Ti diamo il benvenuto in Android Studio. Se hai già un progetto aperto, puoi crearne uno nuovo andando su File > Nuovo > Nuovo progetto.

  3. Scegli il modello Attività di composizione vuota per Smartphone e tablet e poi fai clic su Avanti.

    Selezione del modello in Android Studio
    Figura 1. Modelli tra cui scegliere. Per la modifica in tempo reale, scegli Attività di composizione vuota.
  4. Completa la finestra di dialogo Nuovo progetto con le informazioni richieste: nome, nome del pacchetto, posizione di salvataggio, SDK minimo e linguaggio di configurazione di compilazione.

    Impostazioni di esempio del progetto del passaggio 4 inserite in Android Studio
    Figura 2. Impostazioni di progetto di esempio.
  5. Fai clic su Fine.

Attivare la modifica in tempo reale

  1. Vai alle impostazioni per attivare la modifica in tempo reale.

    • Su Windows o Linux, vai a File > Impostazioni > Editor > Modifica in tempo reale.
    • Su macOS, vai a Android Studio > Impostazioni > Editor > Live Edit.
  2. Seleziona l'opzione Live Edit e la modalità da eseguire impostazioni.

    In modalità manuale, le modifiche al codice vengono applicate ogni volta che premi CTRL + " (Comando + " su macOS). In modalità manuale attivata salvare, le modifiche al codice vengono applicate ogni volta che salvi manualmente, utilizzando Ctrl+S (Comando+S macOS). In modalità automatica, le modifiche al codice vengono applicate al tuo dispositivo o un emulatore quando apporti le modifiche.

    Interfaccia utente della casella di controllo Modifica in tempo reale nelle impostazioni di Android Studio
    Figura 3. Impostazioni di Live Edit.
  3. Nell'editor, apri il file MainActivity, che è il punto di contatto per la tua app.

  4. Fai clic su Esegui Pulsante dell'interfaccia utente. per eseguire il deployment della tua app.

  5. Dopo aver attivato la funzionalità Live Edit, viene visualizzato il segno di spunta verde Aggiornati nella In alto a destra nella finestra dello strumento Dispositivi in esecuzione:

    UI con segno di spunta verde di Modifica in tempo reale

Apporta e rivedi le modifiche

Man mano che apporti le modifiche supportate nell'editor, il dispositivo di test virtuale o fisico si aggiorna automaticamente.

Ad esempio, modifica il metodo Greeting esistente in MainActivity in quanto segue:

@Composable
fun Greeting(name: String) {
    Text(
        text = "Hello $name!",
        Modifier
            .padding(80.dp) // Outer padding; outside background
            .background(color = Color.Cyan) // Solid element background color
            .padding(16.dp) // Inner padding; inside background, around text)
    )
}

Le modifiche vengono visualizzate istantaneamente sul dispositivo di test, come mostrato nella figura 4.

Modifiche al metodo di saluto applicate su un dispositivo
Figura 4. Il dispositivo di test che mostra le modifiche alla modalità Modifica in tempo reale Greeting.

Risolvere i problemi relativi a Live Edit

Se non vedi le modifiche sul dispositivo di test, è possibile che Android Studio non sia riuscito a aggiornarle. Controlla se l'indicatore di modifica in tempo reale indica Out Of Date (Non aggiornato), come mostrato nella figura 5, il che indica un errore di compilazione. Per informazioni sull'errore e i suggerimenti per risolverlo, fai clic .

Icona di Live Edit non aggiornata
Figura 5. Indicatore dello stato della modifica in tempo reale.

Limitazioni della modifica dal vivo

Di seguito è riportato un elenco delle limitazioni attuali.

  • [Si applica solo ad Android Studio Giraffe e versioni successive] La modifica in tempo reale richiede Compose Runtime 1.3.0 o versioni successive. Se il tuo progetto utilizza una versione precedente di Scrittura, la modifica in tempo reale è disabilitata.

  • [Si applica solo ad Android Studio Giraffe e versioni successive] La modifica in tempo reale richiede AGP 8.1.0-alpha05 o versioni successive. Se il progetto utilizza una versione precedente di AGP, la modifica in tempo reale è disabilitata.

  • La modifica in tempo reale richiede un dispositivo fisico o un emulatore con livello API 30 o versioni successive.

  • La modifica in tempo reale supporta solo la modifica del corpo di una funzione, il che significa che non puoi cambiare il nome o la firma della funzione, aggiungere o rimuovere una funzione o modificare i campi non funzione.

  • La modifica in tempo reale reimposta lo stato dell'app la prima volta che modifichi una funzione Componi in un file. Questo accade solo dopo la prima modifica del codice e lo stato dell'app non è reimpostate dalle successive modifiche al codice che apporti alle funzioni Compose in quel file.

  • Le classi modificate con Live Edit potrebbero incorrere in problemi di prestazioni. Esegui il tuo e usare una build di release pulita se stai valutando la sua del rendimento.

  • Devi eseguire un'esecuzione completa affinché il debugger possa operare sulle classi che hai modificato con la modifica in tempo reale.

  • Un'app in esecuzione potrebbe avere un arresto anomalo quando la modifichi con la funzionalità Modifica in tempo reale. In questo caso, puoi eseguire nuovamente il deployment dell'app con il pulsante Esegui Interfaccia utente
..

  • Live Edit non esegue alcuna manipolazione del bytecode definita file di build del progetto, ad esempio la manipolazione del bytecode che sarebbe applicata quando il progetto viene creato utilizzando le opzioni nel menu Crea oppure facendo clic sui pulsanti Crea o Esegui.

  • Le funzioni non componibili vengono aggiornate in tempo reale sul dispositivo o nell'emulatore e viene attivata la ricomposizione completa. La ricomposizione completa potrebbe non richiamare il funzione aggiornata. Per le funzioni non componibili, devi attivare la funzione funzioni aggiornate o eseguire di nuovo l'app.

  • La modifica in tempo reale non riprende al riavvio dell'app. Devi eseguire di nuovo l'app.

  • Live Edit supporta solo i processi di cui è possibile eseguire il debug.

  • Live Edit non supporta i progetti che utilizzano valori personalizzati per moduleName in kotlinOptions nella configurazione della build.

  • Live Edit non funziona con i deployment con più deployment. Ciò significa che non puoi eseguirne il deployment su un dispositivo e poi su un altro. La funzionalità di modifica in tempo reale è attiva solo su l'ultimo gruppo di dispositivi su cui è stato eseguito il deployment dell'app.

  • La modifica in tempo reale funziona con deployment multidispositivo (deployment Dispositivi creati tramite l'opzione Seleziona più dispositivi nel target menu a discesa dei dispositivi). Tuttavia, non è ufficialmente supportato e potrebbero esserci che le applicazioni presentino problemi di prestazioni. Se riscontri problemi, segnalali.

  • Applica modifiche/Applica modifiche al codice non sono compatibili con la modifica in tempo reale e richiedono il riavvio dell'app in esecuzione.

  • Al momento, la modifica in tempo reale non supporta i progetti Android Automotive.

Domande frequenti su Modifica in tempo reale

  • Qual è lo stato attuale di Live Edit?

    La funzionalità Live Edit è disponibile in Android Studio Giraffe. Per attivarla: vai a File > Impostazioni > Editor > Modifica in tempo reale (Android Studio > Impostazioni > Editor > Live Edit su macOS).

  • Quando devo utilizzare Live Edit?

    Utilizza la modifica in tempo reale quando vuoi vedere rapidamente l'effetto degli aggiornamenti agli elementi UX (ad esempio aggiornamenti dei modificatori e animazioni) sull'esperienza complessiva dell'app.

  • Quando conviene evitare di usare Live Edit?

    La funzionalità Modifica in tempo reale si concentra sulle modifiche al codice relative a UI e UX. Non supporta modifiche, ad esempio aggiornamenti della firma dei metodi, aggiunta di nuovi metodi o modifiche gerarchiche. Per ulteriori informazioni, consulta Limitazioni di Live Edit.

  • Quando devo utilizzare Anteprima composizione?

    Utilizza l'anteprima di Scrivi durante lo sviluppo di singoli componenti componibili. L'anteprima visualizza gli elementi di composizione e si aggiorna automaticamente per mostrare l'effetto delle modifiche al codice. L'anteprima supporta anche la visualizzazione degli elementi dell'interfaccia utente in configurazioni e stati diversi, ad esempio tema scuro, lingue e scala dei caratteri.

Modifica in tempo reale dei valori letterali (deprecata)

Android Studio può aggiornare in tempo reale alcune costanti letterali utilizzate nei composabili all'interno di anteprime, emulatore e dispositivo fisico. Ecco alcuni esempi tipi supportati:

  • Int
  • String
  • Color
  • Dp
  • Boolean

Video dell'utente che modifica i literal nel codice sorgente e l'anteprima
si aggiorna
dinamicamente

Puoi visualizzare i valori letterali costanti che attivano gli aggiornamenti in tempo reale senza il valore di compilazione mediante l'attivazione delle decorazioni letterali tramite la Live Edit di Indicatore UI per valori letterali:

Attivazione della modifica in tempo reale dei literal

Applica modifiche

Applica modifiche ti consente di aggiornare il codice e le risorse senza dover eseguire nuovamente il deployment dell'app su un emulatore o un dispositivo fisico (con alcune limitazioni).

Ogni volta che aggiungi, modifichi o elimini composabili, puoi aggiornare l'app senza doverla eseguire di nuovo facendo clic sul pulsante Applica modifiche al codice:

L'utente fa clic sul pulsante "Applica modifiche"