Creare Android Virtual Device da terminale

Tempo di lettura: 5 minuti

Nell’articolo Creare sistema ad-hoc per analizzare applicazioni Android avevo introdotto l’analisi di applicazioni sfruttando le immagini messe a disposizione da Google per la creazione di macchine virtuali Android. Purtroppo hanno deciso bene di deprecare la creazione di dispositivi virtuali via interfaccia grafica, per cui questo articolo è incentrato solamente sulla creazione degli stessi dispositivi tramite terminale.

Per quanto riguarda l’installazione di Android Studio, il procedimento è identico: basta collegarsi alla pagina di download e scaricare la versione adatta alle proprie esigenze.

Creazione del dispositivo virtuale

Il software da utilizzare è avdmanager, posizionato (solitamente) nella cartella Android

Per identificare che sistemi sono disponibili basta digitare

./avdmanager list targets

Available Android targets:==============] 100% Fetch remote repository... 
----------
id: 1 or "android-24"
 Name: Android API 24
 Type: Platform
 API level: 24
 Revision: 2
----------
.....

Mentre per quanto riguarda i dispositivi

./avdmanager list devices
id: 0 or "tv_1080p"
    Name: Android TV (1080p)
    OEM : Google
    Tag : android-tv
---------
id: 1 or "tv_720p"
    Name: Android TV (720p)
    OEM : Google
    Tag : android-tv
.....
...
..
.

Una volta scelto il sistema e il dispositivo che si vuole utilizzare, il comando è

./avdmanager create avd -k "system-images;android-23:;google_apis;x86" -n Prova -d "Nexus 7"

dove:

  • -k: il parametro più importante, dove si sceglie il tipo di sistema da utilizzare
  • -n: il nome che avrà il dispositivo virtuale
  • -d: dispositivo da virtualizzare

Per verificare che il comando sia andato a buon fine,

./avdmanager list avd
    Name: Prova
  Device: Nexus 7 (Google)
    Path: /home/mrtouch/.android/avd/Prova.avd
  Target: Google APIs (Google Inc.)
          Based on: Android 6.0 (Marshmallow) Tag/ABI: google_apis/x86

Esecuzione del dispositivo virtuale

Per eseguirlo serve un software presente nella cartella tools, emulator.

L’esecuzione è abbastanza semplice

./emulator -avd NomeAVD

A me hanno dato dei problemi delle librerie, quindi la mia esecuzione finale è diventata

LD_PRELOAD='/usr/lib/x86_64-linux-gnu/libstdc++.so.6' ~/Android/Sdk/tools/emulator -netspeed full -avd Prova -skin 2720x2480

Il dispostivo cosi facendo è avviato e funziona perfettamente, dove:

  1. -skin è la risoluzione utilizzata;
  2. -netspeed è la velocità di upload/download di rete.
Dispositivo Android Virtuale
Dispositivo Android Virtuale

Esistono altre decine di opzioni, consiglio di leggere attentamente la pagina dedicata per chi avesse particolari esigenze di emulazione.