Eseguire il debug nell'emulatore Android

Questa guida contiene informazioni su come avviare un dispositivo virtuale nell'emulatore Android per eseguire il debug e il test dell'app.

L'emulatore Android (installato con il carico di lavoro Sviluppo di applicazioni per dispositivi mobili con .NET) può essere eseguito in diverse configurazioni per simulare dispositivi Android differenti. Ognuna di queste configurazioni viene creata come dispositivo virtuale. In questa guida viene illustrato come avviare l'emulatore da Visual Studio ed eseguire l'app in un dispositivo virtuale. Per informazioni sulla configurazione dell'emulatore Android e la creazione di nuovi dispositivi virtuali, vedere Configurazione dell'emulatore Android.

Uso di un dispositivo virtuale preconfigurato

Visual Studio include dispositivi virtuali preconfigurati che vengono visualizzati nel menu a discesa dei dispositivi. Nello screenshot di Visual Studio 2017 seguente, ad esempio, sono disponibili diversi dispositivi virtuali preconfigurati:

  • VisualStudio_android-23_arm_phone

  • VisualStudio_android-23_arm_tablet

  • VisualStudio_android-23_x86_phone

  • VisualStudio_android-23_x86_tablet

Virtual devices

In genere, si seleziona il dispositivo virtuale VisualStudio_android-23_x86_phone per testare ed eseguire il debug di un'app per telefoni. Se uno di questi dispositivi virtuali preconfigurati soddisfa i requisiti (ad esempio, corrisponde al livello API di destinazione dell'app), passare ad Avvio dell'emulatore per iniziare l'esecuzione dell'app nell'emulatore. Se non si ha ancora familiarità con i livelli API di Android, vedere Understanding Android API Levels (Informazioni sui livelli API di Android).

Se il progetto Xamarin.Android usa un livello di framework di destinazione non compatibile con i dispositivi virtuali disponibili, nel menu a discesa vengono elencati i dispositivi virtuali inutilizzabili in Dispositivi non supportati. Ad esempio, per il progetto seguente è impostato il framework di destinazione Android 7.1 Nougat (API 25), non compatibile con i dispositivi virtuali Android 6.0 elencati in questo esempio:

Incompatible virtual device

È possibile fare clic su Cambia destinazione minima di Android per modificare la versione minima di Android del progetto in modo che corrisponda al livello API dei dispositivi virtuali disponibili. In alternativa, è possibile usare Android Device Manager per creare nuovi dispositivi virtuali che supportano il livello API di destinazione. Prima di poter configurare i dispositivi virtuali per un nuovo livello API, è necessario installare le immagini di sistema corrispondenti per tale livello API (vedere Configurazione di Android SDK per Xamarin.Android).

Modifica di dispositivi virtuali

Per modificare i dispositivi virtuali (o crearne di nuovi), occorre usare Android Device Manager.

Avvio dell'emulatore

Nella parte superiore di Visual Studio è disponibile un menu a discesa che consente di selezionare la modalità Debug o Versione. Se si sceglie la modalità Debug, il debugger viene collegato al processo dell'applicazione in esecuzione all'interno dell'emulatore dopo l'avvio dell'app. Se si sceglie la modalità Versione, il debugger viene disabilitato (tuttavia, è comunque possibile eseguire l'app e usare le istruzioni di registrazione per il debug). Dopo aver scelto un dispositivo virtuale dal menu a discesa dei dispositivi, selezionare la modalità Debug o Versione e quindi fare clic sul pulsante Esegui per eseguire l'applicazione:

Dopo l'avvio dell'emulatore, Xamarin.Android distribuirà l'app nell'emulatore. L'emulatore esegue l'app con l'immagine del dispositivo virtuale configurato. Di seguito è visualizzato uno screenshot di esempio dell'emulatore Android. In questo esempio l'emulatore esegue un'app vuota chiamata MyApp:

Emulator running a blank app

L'emulatore può essere lasciato in esecuzione: non è necessario arrestarlo e attenderne il riavvio ogni volta che si avvia l'app. Alla prima esecuzione di un'app Xamarin.Android nell'emulatore, viene installato il runtime condiviso di Xamarin.Android per il livello API di destinazione, seguito dall'applicazione. L'installazione del runtime può richiedere un po' di tempo. L'installazione del runtime avviene solo quando la prima app Xamarin.Android viene distribuita nell'emulatore. Le distribuzioni successive sono più veloci perché solo l'app viene copiata nell'emulatore.

Avvio rapido

Le versioni più recenti dell'emulatore Android includono una funzionalità denominata Avvio rapido che avvia l'emulatore in pochi secondi. Quando si chiude l'emulatore, viene eseguito uno snapshot dello stato del dispositivo virtuale, in modo che possa essere rapidamente ripristinato da tale stato quando viene riavviato. Per accedere a questa funzionalità, è necessario disporre di:

  • Emulatore Android 27.0.2 o versione successiva
  • Android SDK Tools 26.1.1 o versione successiva

Quando sono installate le versioni dell'emulatore e di SDK Tools elencate in precedenza, la funzionalità di avvio rapido è abilitata per impostazione predefinita.

Il primo avvio a freddo del dispositivo virtuale viene eseguito senza un miglioramento della velocità poiché non è stato ancora creato uno snapshot:

Cold Boot screenshot

Quando si esce dall'emulatore, la funzionalità di avvio rapido salva lo stato dell'emulatore in uno snapshot:

Saving state on shutdown

Gli avvii successivi del dispositivo virtuale sono molto più veloci perché l'emulatore ripristina semplicemente lo stato in cui è stato chiuso l'emulatore.

Loading state on restart

Risoluzione dei problemi

Per suggerimenti e soluzioni alternative per i problemi comuni dell'emulatore, vedere Risoluzione dei problemi di configurazione dell'emulatore.

Riepilogo

In questa guida è stato descritto il processo di configurazione dell'emulatore Android per eseguire e testare le app Xamarin.Android. Sono state illustrate le procedure per avviare l'emulatore usando dispositivi virtuali preconfigurati e per distribuire un'applicazione nell'emulatore da Visual Studio.

Per altre informazioni sull'uso dell'emulatore Android, vedere gli argomenti seguenti per sviluppatori Android: