Un emulatore per Android, detto anche AVD (Android Virtual Device), è uno strumento che fa parte del pacchetto SDK e che può tornare molto utile durante le fasi di sviluppo delle nostre applicazioni non solo per evitare di effettuare i test, soprattutto nelle fasi embrionali dello sviluppo, direttamente sul dispositivo fisico ma anche per poter verificare l'aspetto grafico del nostro lavoro su dispositivi con diverse risoluzioni, dagli svariati smartphone ai tablet.
Ho già spiegato velocemente come creare un AVD nel mio articolo riferito all'errore "An error occurred while emulating/deploying the android project", ripercorrerò tuttavia i passi principali per arrivare alla creazione di un emulatore Android soffermandomi sulla spiegazione dei campi richiesti per ottimizzare la creazione del dispositivo virtuale a seconda delle proprie esigenze.
Se utilizziamo Eclipse è possibile aprire il gestore degli AVD dalla barra dei menù ed in particolare da:
Window > Android Virtual Device (AVD) Manager
In alternativa dalla linea di comando digitando semplicemente android (supponendo che l'SDK sia stato installato a dovere), come in Fig. 1, si aprirà l'Android SDK Manager:
Fig. 1 - Android - Aprire l'SDK Manager dalla linea di comando
Dopodichè dalla finestra che si aprirà dovrà essere cliccata la voce del menù "Tools" e successivamente "Manage AVDs...", Fig. 2:
Fig. 2 - Android - Aprire l'AVD Manager dall'SDK Manager
Si aprirà così, allo stesso modo come da Eclipse, la finestra per la gestione degli AVD, Fig. 3:
Fig. 3 - Android Virtual Device (AVD) Manager
Nell'immagine di cui sopra è già presente un emulatore con le impostazioni utili per poter eseguire un'applicazione ibrida creata con Cordova ma a tutti gli effetti un'app Android.
Potete creare quanti emulatori volete tramite il bottone "Create..."; gli altri bottoni sono autoesplicativi: Start... per lanciare l'emulatore, Edit... per modificare i dettagli dell'emulatore selezionato, ecc...
Vediamo nel dettaglio come configurare un emulatore Android ed in particolare cosa significano i parametri richiesti. Per semplicità mostro le impostazioni di quello che ho già salvato dove ci sono già le opzioni selezionate, Fig .4:
Fig. 4 - Parametri di esempio di un Android Virtual Device (AVD)
AVD Name: non è altro che il nome con il quale vogliamo contrassegnare il nostro emulatore, servirà per identificarlo e distinguerlo da altri AVD che abbiamo creato. Può essere buona norma assegnare come nome ad esempio il tipo di dispositivo (tablet, Galaxy S mini, Galaxy S5, ecc...) o la sua risoluzione (320x480, 1024x600, ecc...). Può essere composto da caratteri alfanumerici con lettere maiuscole e minuscole, il punto, il trattino e l'underscore (non può contenere spazi o altri simboli).
Device: Il tipo di dispositivo con tanto di dimensione in pollici e risoluzione. La lista di questi elementi viene prelevata dalla sezione accessibile tramite il tab "Device Definition" dove è possibile creare altre tipologie di dispositivi per poi emularle. In tutti i casi quelli già presenti di default sono più che sufficienti per l'emulazione della maggior parte dei dispositivi più comuni.
Target: E' il livello di minimo di API dipendente dalla versione di Android del dispositivo. Un valore basso di target può garantire la disponibilità dell'app ad essere installata su un numero maggiore di dispositivi ma è anche probabile che siano state utilizzate delle funzionalità nell'applicazione sviluppata che non ne permettono il corretto funzionamento su dispositivi più obsoleti o non aggiornati.
CPU/ABI: Indica il tipo di CPU che dovrà supportare l'emulatore. Nella maggior parte dei casi, dipende dalle versioni del dispositivo, c'è una scelta obbligata che è anche la più comune ed utilizzata ovvero ARM (armeabi) o ARM (armeabi-v7a) ma ci possono essere anche altre possibilità di scelta come Intel Atom (x86) o MIPS (mips).
Keyboard: Se spuntato mostra nell'emulatore il tastierino fisico. Consiglio di lasciare il segno di spunta per una più facile gestione del dispositivo in caso sia di inserimento dati ma anche per tornare alla home o per il tasto back, ecc...
Skin: Parametro non troppo vincolante, serve per dare una parvenza personalizzata al dispositivo, solitamente lascio l'impostazione a "No Skin".
Front Camera: Presenza o meno della fotocamera frontale (è possibile emularla o catturare immagini direttamente dalla webcam collegata al PC). Il campo potrebbe non essere selezionabile, dipende se sul tipo di dispositivo scelto è supportata.
Back Camera: Presenza o meno della fotocamera sul lato posteriore del dispositivo (è possibile emularla o catturare immagini direttamente dalla webcam collegata al PC). Il campo potrebbe non essere selezionabile, dipende se sul tipo di dispositivo scelto è supportata.
Memory Options: Sono le caratteristiche della memoria e dipendono dal tipo di dispositivo scelto pertanto consiglio di lasciare sia per la RAM che per VM Heap, che è una memoria dinamica allocata messa a disposizione per far girare le applicazioni, quelle fornite di default.
Internal Storage: E' la dimensione della memoria interna del dispositivo.
SD Card: E' la memoria esterna, la famosa schedina di memoria da inserire nell'apposito alloggio. Ricordo che 1 GiB corrisponde a 1024 MiB.
Emulation Options: Altre opzioni dell'emulatore quali, Snapshot e Use Host GPU, descritte di seguito (queste due opzioni non possono essere utilizzate simultaneamente).
Snapshot: La sua funzione è quella di accelerare l'avvio dell'emulatore salvando un'istantanea della sua RAM dopo che è stato avviato e il ripristinandola negli usi successivi, evitando di dover eseguire il lento processo di avvio ogni volta che si lancia l'emulatore.
Use Host GPU: Questa opzione serve per sfruttare l'implementazione OpenGL del computer all'interno del sistema emulato, ovvero se un'app utilizza OpenGL per operazioni grafiche il lavoro viene effettuato dal GPU del PC e poi 'inviato' all'emulatore evitando invece di emulare una GPU direttamente dall'AVD, garantendo così un notevole risparmio di tempo, considerato anche che nelle versioni di Android superiori o uguali alla 4 la maggior parte delle view e canvas per il disegno utilizzano OpenGL anche in app non prettamente grafiche.
Override the existing AVD with the same name: Semplicemente è attivato ce si inserisce un AVD Name uguale ad un AVD già salvato e se spuntato sovrascrive l'AVD precedente al momento del salvataggio.
Cliccando infine sul bottone "OK" l'AVD verrà creato, la schermata della configurazione sparirà ed il nuovo emulatore sarà presente nella lista pronto per essere utilizzato.
Nel caso in cui il bottone "OK" non dovesse essere cliccabile significa che l'inserimento dei parametri di configurazione è parziale o scorretto, i messaggi di errore compaiono in basso a sinistra nella finestra di configurazione e sono contrassegnati con una X rossa o con il simbolo di pericolo (triangolo giallo con punto esclamativo). Non mi soffermo sugli errori dato che sono comprensibili e di facile risoluzione e compaiono quando alcune impostazioni non sono state scelte o il nome dell'AVD non è stato inserito o alcuni valori sono al di sotto o eccedono da quelli utilizzabili.
Nessuno ha ancora commentato questo articolo, fallo tu per primo!
Scrivi un Commento