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:
- -skin è la risoluzione utilizzata;
- -netspeed è la velocità di upload/download di rete.

Dispositivo Android Virtuale
Esistono altre decine di opzioni, consiglio di leggere attentamente la pagina dedicata per chi avesse particolari esigenze di emulazione.
Se ti è piaciuto l'articolo condividi, dona, spargi il verbo! HackTips