In qualità di sviluppatore per dispositivi mobili, spesso sviluppi l'interfaccia utente della tua app passo dopo passo anziché sviluppare tutto in una volta. Android Studio adotta questo approccio con Jetpack Compose fornendo strumenti che non richiedono una build completa per ispezionare, modificare i valori e verificare il risultato finale.
Live Edit
Live Edit è una funzionalità che ti consente di aggiornare i composable negli emulatori e nei dispositivi fisici in tempo reale. Questa funzionalità riduce al minimo i cambi di contesto tra la scrittura e la creazione dell'app, consentendoti di concentrarti più a lungo sulla scrittura del codice senza interruzioni.
Live Edit ha tre modalità:
- Manuale: le modifiche al codice vengono applicate quando vengono inviate manualmente utilizzando Controllo+' (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 nel dispositivo o nell'emulatore quando aggiorni una funzione componibile.
La modifica in tempo reale si concentra sulle modifiche al codice relative a UI e UX. La modifica in tempo reale non supporta modifiche come aggiornamenti della firma del metodo, aggiunta di nuovi metodi o modifiche alla gerarchia delle classi. Per ulteriori informazioni, consulta l'elenco delle limitazioni di Live Edit.
Questa funzionalità non sostituisce la creazione e l'esecuzione dell'app o l'opzione Applica modifiche. È invece progettato per ottimizzare il tuo flusso di lavoro durante la creazione, il deployment e l'iterazione per sviluppare l'interfaccia utente di Compose.
Il flusso di lavoro delle best practice è il seguente:
- Configura l'applicazione in modo che possa essere eseguita.
- Utilizza la modifica live il più possibile finché non devi apportare una modifica che non supporta, ad esempio l'aggiunta di nuovi metodi durante l'esecuzione dell'app.
- Dopo aver apportato una modifica non supportata, fai clic su Esegui
per riavviare l'app e riprendere la modifica live.
Iniziare a utilizzare Live Edit
Per iniziare, segui questi passaggi per creare un'attività Compose vuota, attivare Live Edit per il tuo progetto e apportare modifiche con Live Edit.
Configurare il nuovo progetto
Prima di iniziare, assicurati di aver installato Android Studio Giraffe o versioni successive e che il livello API del tuo dispositivo fisico o emulatore sia almeno 30.
Apri Android Studio e seleziona Nuovo progetto nella finestra di dialogo Benvenuto in Android Studio. Se hai già aperto un progetto, puoi crearne uno nuovo andando su File > Nuovo > Nuovo progetto.
Scegli il modello Attività di composizione vuota per Smartphone e tablet e poi fai clic su Avanti.
Figura 1. Modelli tra cui scegliere. Per la modifica dal vivo, scegli Attività di composizione vuota. Compila la finestra di dialogo Nuovo progetto con le informazioni richieste: nome, nome del pacchetto, posizione di salvataggio, SDK minimo e lingua di configurazione della build.
Figura 2. Impostazioni di esempio del progetto. Fai clic su Fine.
Attivare Live Edit
Vai alle impostazioni per attivare la modifica dal vivo.
- Su Windows o Linux, vai a File > Impostazioni > Editor > Modifica dal vivo.
- Su macOS, vai a Android Studio > Impostazioni > Editor > Modifica live.
Seleziona l'opzione Modifica dal vivo e la modalità che vuoi eseguire dalle impostazioni.
In modalità manuale, le modifiche al codice vengono inviate ogni volta che premi Ctrl +' (Cmd +' su macOS). In modalità manuale al salvataggio, le modifiche al codice vengono applicate ogni volta che salvi manualmente, utilizzando Control+S (Command+S su macOS). In modalità automatica, le modifiche al codice vengono applicate al dispositivo o all'emulatore man mano che le apporti.
Figura 3. Impostazioni di Live Edit. Nell'editor, apri il file
MainActivity
, che è il punto di ingresso per la tua app.Fai clic su Esegui
per eseguire il deployment dell'app.
Dopo aver attivato la modifica in tempo reale, il segno di spunta verde Aggiornato viene visualizzato in alto a destra nella finestra dello strumento Dispositivi in esecuzione:
Apportare e rivedere 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
nel seguente modo:
@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 immediatamente sul dispositivo di test, come mostrato nella figura 4.

Greeting
.Risolvere i problemi di Live Edit
Se non vedi le modifiche sul dispositivo di test, Android Studio potrebbe non essere riuscito ad aggiornarle. Controlla se l'indicatore di modifica in tempo reale indica Non aggiornato, come mostrato nella figura 5, il che indica un errore di compilazione. Per informazioni sull'errore e suggerimenti su come risolverlo, fai clic sull'indicatore.

Limitazioni di Live Edit
Di seguito è riportato un elenco delle limitazioni attuali.
[Si applica solo ad Android Studio Giraffe e versioni successive] Live Edit richiede Compose Runtime 1.3.0 o versioni successive. Se il tuo progetto utilizza una versione precedente di Compose, Live Edit è disattivato.
[Valido solo per Android Studio Giraffe e versioni successive] Live Edit richiede AGP 8.1.0-alpha05 o versioni successive. Se il tuo progetto utilizza una versione precedente di AGP, Live Edit è disattivato.
Live Edit richiede un dispositivo fisico o un emulatore che esegue il 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 modificare il nome o la firma della funzione, aggiungere o rimuovere una funzione o modificare campi non funzionali.
Live Edit reimposta lo stato dell'app la prima volta che modifichi una funzione Compose in un file. Ciò si verifica solo dopo la prima modifica del codice: lo stato dell'app non viene reimpostato dalle successive modifiche del codice apportate alle funzioni Compose in quel file.
Le classi modificate con la modifica in tempo reale potrebbero comportare una penalità di rendimento. Esegui l'app e utilizza una build di rilascio pulita se stai valutando le prestazioni.
Perché il debugger funzioni sulle classi che hai modificato con Live Edit, devi eseguire un'esecuzione completa.
Un'app in esecuzione potrebbe arrestarsi in modo anomalo se la modifichi con Live Edit. In questo caso, puoi eseguire nuovamente il deployment dell'app con il pulsante Esegui
.
Live Edit non esegue alcuna manipolazione del bytecode definita nel file di build del progetto, ad esempio la manipolazione del bytecode che verrebbe applicata quando il progetto viene creato utilizzando le opzioni del menu Build o facendo clic sui pulsanti Build o Run.
Le funzioni non componibili vengono aggiornate in tempo reale sul dispositivo o sull'emulatore e viene attivata una ricomposizione completa. La ricomposizione completa potrebbe non richiamare la funzione aggiornata. Per le funzioni non componibili, devi attivare le funzioni appena aggiornate o eseguire di nuovo l'app.
La modifica live non viene ripresa 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
inkotlinOptions
nella configurazione della build.La modifica in tempo reale non funziona con i deployment multi-deploy. Ciò significa che non puoi eseguire il deployment su un dispositivo e poi su un altro. La modifica in tempo reale è attiva solo sull'ultimo insieme di dispositivi su cui è stata eseguita la distribuzione dell'app.
La modifica in tempo reale funziona con i deployment su più dispositivi (deployment su più dispositivi creati tramite Seleziona più dispositivi nel menu a discesa del dispositivo di destinazione). Tuttavia, non è ufficialmente supportato e potrebbero verificarsi problemi. 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.
La modifica dal vivo non supporta attualmente i progetti Android Automotive.
Domande frequenti su Live Edit
Qual è lo stato attuale di Live Edit?
Live Edit è disponibile in Android Studio Giraffe. Per attivarlo, vai a File > Impostazioni > Editor > Live Edit (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 devo evitare di utilizzare la modifica dal vivo?
La modifica in tempo reale si concentra sulle modifiche al codice relative a UI e UX. Non supporta modifiche come gli aggiornamenti della firma del metodo, l'aggiunta di nuovi metodi o le modifiche alla gerarchia delle classi. Per ulteriori informazioni, vedi Limitazioni di Live Edit.
Quando devo utilizzare l'anteprima di composizione?
Utilizza Compose Preview quando sviluppi singoli composable. L'anteprima visualizza gli elementi di Compose e si aggiorna automaticamente per mostrare l'effetto delle modifiche al codice. L'anteprima supporta anche la visualizzazione degli elementi della UI in diverse configurazioni e stati, come tema scuro, impostazioni internazionali e scala del carattere.
Sviluppo iterativo del codice con Compose
Live Edit e Hot Reload per Compose Multiplatform sono funzionalità che possono farti risparmiare tempo e aumentare la produttività durante lo sviluppo con Compose. Tuttavia, soddisfano le esigenze di diversi tipi di sviluppo:
Live Edit supporta lo sviluppo iterativo con Jetpack Compose per le applicazioni per Android. Consente di aggiornare i composable negli emulatori e nei dispositivi fisici in tempo reale. Questa funzionalità riduce al minimo i cambi di contesto tra la scrittura e la creazione dell'app, consentendoti di concentrarti sulla scrittura del codice più a lungo senza interruzioni.
Compose Hot Reload soddisfa la stessa esigenza, ma supporta le applicazioni desktop create con Compose Multiplatform. Ti consente di apportare modifiche al codice della UI in un'applicazione Compose Multiplatform e vedere i risultati in tempo reale ricaricando in modo intelligente il codice ogni volta che viene modificato.
Sebbene queste due funzionalità condividano molte tecnologie all'interno del motore Compose e supportino molti casi d'uso simili, non hanno le stesse funzionalità perché si applicano a diversi tipi di sviluppo di Compose.
Se stai sviluppando un'app per Android, devi utilizzare Live Edit per accelerare il processo di sviluppo. Se stai sviluppando un'applicazione desktop utilizzando Compose Multiplatform, devi utilizzare Compose Hot Reload.
Modifica in tempo reale dei valori letterali (ritirata)
Android Studio può aggiornare in tempo reale alcuni valori letterali costanti utilizzati nei composables all'interno di anteprime, emulatore e dispositivo fisico. Ecco alcuni tipi supportati:
Int
String
Color
Dp
Boolean
Puoi visualizzare i valori letterali costanti che attivano gli aggiornamenti in tempo reale senza il passaggio di compilazione attivando le decorazioni letterali tramite l'indicatore dell'interfaccia utente di modifica in tempo reale dei valori letterali:
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 elementi componibili, puoi aggiornare l'app senza doverla ridistribuire facendo clic sul pulsante Applica modifiche al codice:
Consigliati per te
- Nota: il testo del link viene visualizzato quando JavaScript è disattivato
- Personalizzare le animazioni {:#customize-animations}
- Animazioni basate sul valore