Crea ed esegui la tua app

Per verificare l'aspetto e il comportamento della tua app su un dispositivo, devi crearla ed eseguirla. Android Studio configura nuovi progetti per consentirti di implementare la tua app su un dispositivo virtuale o fisico con pochi clic.

Questa panoramica è incentrato su come utilizzare Android Studio per creare ed eseguire la tua app per test e debug. Per informazioni su come usare Android Studio per creare la tua app in modo che possa essere rilasciata agli utenti, consulta Creare un'app per la release per gli utenti. Per informazioni più dettagliate su come gestire e personalizzare una build con o senza Android Studio, consulta Configurare la build.

Build di base ed esecuzione

Per creare ed eseguire la tua app, segui questi passaggi:

  1. Nella barra degli strumenti, seleziona l'app dal menu delle configurazioni di esecuzione.
  2. Nel menu del dispositivo di destinazione, seleziona il dispositivo su cui vuoi eseguire l'app.

    Menu del dispositivo di destinazione.

    Se non hai configurato alcun dispositivo, devi creare un dispositivo virtuale Android per utilizzare l'emulatore Android o collegare un dispositivo fisico.

  3. Fai clic su Esegui .

Android Studio ti avvisa se tenti di avviare il progetto su un dispositivo a cui è associato un errore o un avviso. Iconografia e modifiche stilistiche differenziano tra errori (selezioni di dispositivi che comportano una configurazione non funzionante) e avvisi (le selezioni dei dispositivi che potrebbero causare comportamenti imprevisti, ma che sono comunque eseguibili).

Monitora il processo di compilazione

Per visualizzare i dettagli del processo di compilazione, seleziona Visualizza > Finestre degli strumenti > Build oppure fai clic su Crea nella barra della finestra degli strumenti. La finestra dello strumento Crea mostra le attività eseguite da Gradle per creare la tua app, come mostrato nella figura 1.

Figura 1. La finestra dello strumento Crea in Android Studio.
  1. Scheda Sincronizzazione:mostra le attività eseguite da Gradle per sincronizzare con i file di progetto. Analogamente alla scheda Output build, se si verifica un errore di sincronizzazione, seleziona gli elementi nella struttura per ottenere ulteriori informazioni sull'errore. Visualizza anche un riepilogo dell'impatto del download per determinare se i download delle dipendenze influiscono negativamente sulla build.
  2. Scheda Output build: mostra le attività eseguite da Gradle sotto forma di albero, in cui ogni nodo rappresenta una fase di build o un gruppo di dipendenze delle attività. Se ricevi errori in fase di build o di compilazione, esamina la struttura ad albero e seleziona un elemento per leggere l'output dell'errore, come mostrato nella Figura 2.
    Figura 2. Controlla la scheda Output build per verificare la presenza di messaggi di errore.
  3. Scheda Analizzatore build: fornisce informazioni sull'analisi delle prestazioni della build. Per saperne di più, consulta Risolvere i problemi relativi alle prestazioni delle build con lo strumento di analisi delle build.
  4. Riavvio:esegue di nuovo l'ultima azione di build. Se hai eseguito l'ultima volta Crea > Imposta modulo selezionato, verrà creato il modulo attuale. Se hai eseguito per l'ultima volta Crea > Crea progetto, verranno generati file di build intermedi per tutti i moduli del progetto.
  5. Filtri: vengono esclusi gli avvisi, le attività o entrambi i casi completati correttamente. In questo modo è più facile individuare i problemi nell'output.

Se le tue varianti di build utilizzano le versioni di prodotto, Gradle richiama anche attività per creare le versioni. Per visualizzare l'elenco di tutte le attività di build disponibili, fai clic su Visualizza > Finestre degli strumenti > Gradle oppure fai clic su gradle nella barra della finestra degli strumenti.

Se si verifica un errore durante il processo di compilazione, Gradle potrebbe consigliare opzioni della riga di comando per aiutarti a risolvere il problema, come --stacktrace o --debug. Per utilizzare le opzioni della riga di comando con il processo di compilazione:

  1. Apri la finestra di dialogo Impostazioni o Preferenze:
    • Su Windows o Linux, seleziona File > Impostazioni dalla barra dei menu.
    • Su macOS, seleziona Android Studio > Preferenze dalla barra dei menu.
  2. Vai a Build, Execution, Deployment > Compilatore.
  3. Nel campo di testo accanto a Opzioni della riga di comando, inserisci le opzioni della riga di comando.
  4. Fai clic su OK per salvare e uscire.

Gradle applica queste opzioni della riga di comando la prossima volta che provi a creare la tua app.

Funzionalità avanzate per la creazione e l'esecuzione

Il modo predefinito per creare ed eseguire la tua app in Android Studio dovrebbe essere sufficiente per testare un'app semplice. Tuttavia, puoi utilizzare queste funzionalità di build ed esecuzione per casi d'uso più avanzati:

  • Per eseguire il deployment dell'app in modalità di debug, fai clic su Debug . L'esecuzione dell'app in modalità di debug ti consente di impostare punti di interruzione nel codice, esaminare le variabili e valutare le espressioni in fase di runtime ed eseguire strumenti di debug. Per scoprire di più, consulta Eseguire il debug dell'app.

  • Se hai un'app più grande e complessa, utilizza Applica modifiche anziché fare clic su Esegui . In questo modo risparmi tempo perché eviti di riavviare l'app ogni volta che vuoi eseguire il deployment di una modifica. Per ulteriori informazioni su Applicare le modifiche, consulta la sezione Eseguire il deployment in modo incrementale con Applica le modifiche.

  • Se utilizzi Jetpack Compose, Live Edit è una funzionalità sperimentale che ti consente di aggiornare componibili in tempo reale senza fare nuovamente clic su Esegui . In questo modo puoi concentrarti sulla scrittura del codice UI con interruzioni minime. Per ulteriori informazioni, consulta la sezione Modifica dal vivo (sperimentale).

  • Se hai un'app con più varianti o versioni di build, puoi scegliere la variante di build di cui eseguire il deployment utilizzando la finestra dello strumento Crea varianti. Per ulteriori informazioni sull'esecuzione di una variante di build specifica, consulta la sezione Modificare la variante di build.

  • Per ottimizzare le opzioni di installazione, avvio e test dell'app, puoi modificare la configurazione di esecuzione/debug. Per ulteriori informazioni sulla creazione di configurazioni di esecuzione/debug personalizzate, consulta la sezione Creare configurazioni di esecuzione/debug.

  • Ti consigliamo di utilizzare Android Studio per le tue esigenze di sviluppo, ma puoi anche eseguire il deployment dell'app su un dispositivo virtuale o fisico dalla riga di comando. Per maggiori informazioni, consulta Creare un'app dalla riga di comando.

Esegui il deployment in modo incrementale con Applica modifiche

In Android Studio 3.5 e versioni successive, la funzionalità Applica modifiche ti consente di inviare modifiche al codice e alle risorse dell'app in esecuzione senza riavviare l'app e, in alcuni casi, senza riavviare l'attività corrente. Questa flessibilità ti consente di controllare la quantità di app riavviata quando vuoi eseguire il deployment e testare piccole modifiche incrementali, mantenendo lo stato attuale del dispositivo.

Applica modifiche utilizza le funzionalità dell'implementazione JVMTI di Android supportate sui dispositivi con Android 8.0 (livello API 26) o versioni successive. Per scoprire di più su come funziona l'applicazione delle modifiche, vedi Android Studio Project Marble: applicare modifiche.

Requisiti

Le azioni Applica modifiche sono disponibili solo se soddisfi le seguenti condizioni:

  • Crea l'APK della tua app utilizzando una variante della build di debug.
  • Esegui il deployment della tua app su un emulatore o un dispositivo di destinazione che esegue Android 8.0 (livello API 26) o versioni successive.

Utilizza Applica modifiche

Utilizza le opzioni seguenti quando vuoi eseguire il deployment delle modifiche su un dispositivo compatibile:

Applica modifiche e riavvia attività Icona Applica modifiche e riavvia attività: tenta di applicare le modifiche al codice e alla risorsa riavviando l'attività, ma senza riavviare l'app. In genere, puoi utilizzare questa opzione quando hai modificato il codice nel corpo di un metodo o modificato una risorsa esistente.

Puoi eseguire questa azione anche premendo CTRL + ALT + F10 (CTRL + COMANDO + MAIUSC + R su macOS).

Applica modifiche al codice Icona Applica modifiche al codice : tenta di applicare solo le modifiche al codice senza riavviare nulla. In genere, puoi utilizzare questa opzione quando hai modificato il codice nel corpo di un metodo, ma non hai modificato alcuna risorsa. Se hai modificato sia il codice sia le risorse, utilizza invece Applica modifiche e riavvia attività.

Puoi eseguire questa azione anche premendo CTRL + F10 (CTRL + COMANDO + R su macOS).

Esegui : esegue il deployment di tutte le modifiche e riavvia l'app. Utilizza questa opzione quando le modifiche apportate non possono essere applicate utilizzando una delle opzioni Applica modifiche. Per scoprire di più sui tipi di modifiche che richiedono il riavvio di un'app, consulta la sezione Limiti dell'applicazione delle modifiche.

Abilita esecuzione di riserva per Applica modifiche

Quando fai clic su Applica modifiche e riavvia attività o Applica modifiche al codice, Android Studio crea un nuovo APK e determina se è possibile applicare le modifiche. Se non è possibile applicare le modifiche e l'applicazione delle modifiche non riesce, Android Studio ti chiede di eseguire Icona Esegui di nuovo l'app.

Se preferisci evitare che ti venga richiesto ogni volta che si verifica questa situazione, puoi configurare Android Studio in modo che riproduca automaticamente l'app quando non è possibile applicare le modifiche. Per attivare questo comportamento:

  1. Apri la finestra di dialogo Impostazioni o Preferenze:

    • Su Windows o Linux, seleziona File > Impostazioni dal menu.
    • Su macOS, seleziona Android Studio > Preferenze dal menu.
  2. Vai a Creazione, esecuzione, deployment > Deployment.

  3. Seleziona le caselle di controllo per abilitare l'esecuzione automatica di riserva per una o entrambe le azioni Applica modifiche.

  4. Fai clic su OK.

Modifiche dipendenti dalla piattaforma

Alcune funzionalità di Applica modifiche dipendono da versioni specifiche della piattaforma Android. Per applicare questo tipo di modifiche, è necessario eseguire il deployment dell'app su un dispositivo con quella versione di Android (o successiva). Ad esempio, l'aggiunta di un metodo richiede Android 11 o versioni successive.

Limitazioni dell'applicazione delle modifiche

La funzionalità Applica modifiche è progettata per velocizzare il processo di deployment dell'app. Tuttavia, presenta alcune limitazioni al momento dell'utilizzo.

Modifiche al codice che richiedono il riavvio dell'app

Alcune modifiche al codice e alle risorse, tra cui:

  • Aggiungere o rimuovere un campo
  • Rimozione di un metodo
  • Modifica delle firme del metodo
  • Modifica dei modificatori di metodi o classi
  • Modificare l'ereditarietà delle classi
  • Modifica dei valori nelle enumerazioni
  • Aggiunta o rimozione di una risorsa
  • Modifica del file manifest dell'app
  • Modifica delle librerie native (file SO)
Librerie e plug-in

Alcune librerie e plug-in apportano automaticamente modifiche ai file manifest dell'app o alle risorse a cui viene fatto riferimento nel manifest. Questi aggiornamenti automatici possono interferire con Applica modifiche nei seguenti modi:

  • Se una libreria o un plug-in apporta modifiche al file manifest della tua app, non puoi utilizzare Applica modifiche. Per vedere le modifiche, devi riavviare l'app.
  • Se una libreria o un plug-in apporta modifiche ai file di risorse della tua app, non puoi utilizzare Applica modifiche al codice Icona Applica modifiche al codice. Per visualizzare le modifiche, devi utilizzare Applica modifiche e riavvia attività Icona Applica modifiche e riavvia attività (o riavvia l'app).

Per evitare queste limitazioni, disattiva tutti gli aggiornamenti automatici per le varianti della build di debug.

Ad esempio, Firebase Crashlytics aggiorna le risorse dell'app con un ID build univoco durante ogni build, il che ti impedisce di utilizzare Applica modifiche al codice Icona Applica modifiche al codice e richiede di riavviare l'attività dell'app per visualizzare le modifiche. Disabilita questo comportamento per utilizzare Applica modifiche al codice insieme a Crashlytics con le tue build di debug.

Codice che fa riferimento direttamente ai contenuti in un APK installato

Se il codice fa riferimento direttamente ai contenuti dell'APK dell'app installato sul dispositivo, il codice potrebbe causare arresti anomali o comportamenti scorretti dopo aver fatto clic su Applica modifiche al codice Icona Applica modifiche al codice. Questo comportamento si verifica perché quando fai clic su Applica modifiche al codice, l'APK sottostante sul dispositivo viene sostituito durante l'installazione. In questi casi, puoi fare clic su Applica modifiche e riavvia attività Icona Applica modifiche e riavvia attività o Esegui Icona Esegui.

Se riscontri altri problemi durante l'utilizzo di Applica modifiche, segnala un bug.

Modifica live

Live Edit è una funzionalità sperimentale di Android Studio che ti consente di aggiornare in tempo reale i componibili negli emulatori e nei dispositivi fisici. Questa funzionalità riduce al minimo i trasferimenti di contesto tra la scrittura e la creazione dell'app, consentendoti di concentrarti sulla scrittura di codice più a lungo senza interruzioni.

Scopri di più su Live Edit

Modificare la variante della build

Per impostazione predefinita, Android Studio crea la versione di debug della tua app, che verrà utilizzata solo durante lo sviluppo, quando fai clic su Esegui Pulsante UI.

Per cambiare la variante di build utilizzata da Android Studio, procedi in uno dei seguenti modi:

  • Seleziona Build > Seleziona variante build nel menu.
  • Seleziona Visualizza > Finestre degli strumenti > Crea varianti nel menu.
  • Fai clic sulla scheda Genera varianti nella barra della finestra degli strumenti.

Per i progetti senza codice nativo/C++, il riquadro Varianti build ha due colonne: Modulo e Variante build attiva. Il valore Variante build attiva per il modulo determina quale variante di build l'IDE esegue il deployment sul dispositivo connesso ed è visibile nell'editor.

Figura 9. Il riquadro Crea varianti ha due colonne per i progetti che non hanno codice nativo/C++.

Per passare da una variante all'altra, fai clic sulla cella Variante build attiva per un modulo e scegli quella che ti interessa dall'elenco.

Per i progetti con codice nativo/C++, il riquadro Genera varianti ha tre colonne:

  • Modulo
  • Variante build attiva
  • ABI attiva

Il valore Variante build attiva per il modulo determina la variante di build che l'IDE esegue il deployment sul tuo dispositivo e che è visibile nell'editor. Per i moduli nativi, il valore ABI attiva determina l'ABI utilizzata dall'editor, ma non influisce sul deployment.

Figura 10. Il riquadro Genera varianti aggiunge la colonna ABI attiva per i progetti con codice nativo/C++.

Per modificare la variante build o l'ABI, fai clic sulla cella della colonna Variante build attiva o ABI attiva e scegli la variante o l'ABI desiderata dall'elenco. Dopo aver modificato la selezione, l'IDE sincronizza automaticamente il progetto. La modifica di una colonna per un'app o un modulo della libreria applica la modifica a tutte le righe dipendenti.

Per impostazione predefinita, i nuovi progetti sono configurati con due varianti di build: una variante di debug e una variante di release. Devi creare la variante della release per preparare l'app per la release pubblica. Per definire altre varianti della tua app con funzionalità o requisiti per i dispositivi diversi, puoi definire altre varianti della build.

Conflitti nella finestra di dialogo Varianti della build di Android Studio

Nella finestra di dialogo Genera varianti di Android Studio, potresti visualizzare messaggi di errore che indicano conflitti tra le varianti della build, ad esempio:

Finestra Variante di build che mostra gli errori di conflitto delle varianti

Questo errore non indica un problema di build con Gradle. Indica che l'IDE di Android Studio non può risolvere i simboli tra le varianti dei moduli selezionati.

Ad esempio, se hai un modulo M1 che dipende dalla variante v1 del modulo M2, ma per M2 è stata selezionata la variante v2 nell'IDE, nell'IDE ci sono simboli non risolti. Supponiamo che M1 dipenda da una classe disponibile solo in v1; quando è selezionato v2, la classe non è nota all'IDE. Di conseguenza non è in grado di risolvere il nome della classe e mostra errori nel codice del modulo M1.

Questi messaggi di errore vengono visualizzati perché l'IDE non può caricare il codice per più varianti contemporaneamente. In termini di build dell'app, tuttavia, la variante selezionata in questa finestra di dialogo non ha alcun effetto, perché Gradle crea la tua app con il codice sorgente specificato nelle formule di build di Gradle, non in base a ciò che è attualmente caricato nell'IDE.

Modificare la configurazione di esecuzione/debug

Quando esegui l'app per la prima volta, Android Studio utilizza una configurazione di esecuzione predefinita. La configurazione di esecuzione specifica se eseguire il deployment della tua app da un APK o un Android App Bundle, nonché come modulo da eseguire, pacchetto da implementare, attività per avviare, dispositivo di destinazione, impostazioni dell'emulatore, opzioni Logcat e altro ancora.

La configurazione predefinita di esecuzione/debug crea un APK, avvia l'attività predefinita del progetto e utilizza la finestra di dialogo Seleziona la destinazione del deployment per la selezione del dispositivo di destinazione. Se le impostazioni predefinite non sono adatte al tuo progetto o modulo, puoi personalizzare la configurazione di esecuzione/debug o crearne una nuova a livello di progetto, predefinito e modulo.

Per modificare una configurazione di esecuzione/debug, seleziona Esegui > Modifica configurazioni. Per ulteriori informazioni, consulta Creare e modificare le configurazioni di esecuzione/debug.