Android: gestire diversi emulatori


In questi giorni si è susseguito in rete il tamtam (ad esempio: link1, link2, link3…) relativo al rilascio di una immagine dell’emulatore di Android basata sulla prossima release Cupcake.

android15_info.png

Tra le novità più interessanti dell’imminente nuova release ci sono dei miglioramenti al motore grafico (le finestre hanno transizioni pressoché identiche a quelle dell’iPhone, i pulsanti hanno un effetto lucido molto gradevole), i live folder, la presenza della tastiera software, la localizzazione italiana (e non soo, ovviamente!) e altre che ora mi sfuggono. 🙂

android15_keyboard.png

La procedura di configurazione della nuova build descritta sui vari siti prevede il recupero del file

http://nullwire.com/sites/default/files/android_images_sdk1.5.zip

il cui contenuto (ramdisk.img, system.img e userdata.img) va a sovrascrivere gli omonimi file della cartella tools/lib dell’SDK di Android.

Sovrascrivere, però, pone un problema: non si ha più a disposizione la configurazione di sistema dell’SDK ufficiale, di fatto ancora indispensabile per chi sviluppa software da distribuire sull’Android Market (per assicurarsi la compatibilità con la stable version corrente del sistema operativo). La preview della release Cupcake, infatti, non è ancora matura e finché non sarà rilasciata in versione definitiva con relativo SDK è da considerarsi utile sono per sperimentazione.

L’ideale sarebbe poter disporre di due immagini dell’emulatore, una con i file della distribuzione ufficiale (1.0 r2) e una (o più) con le release di sviluppo (attualmente a 1.5).

Predisporre un ambiente con emulatori multipli è piuttosto semplice, occorre infatti:

  1. Scaricare il file contenente le immagini dell’emulatore ed estrarne il contenuto in una directory temporanea
  2. Copiare la cartella tools/lib/images dentro una nuova cartella allo stesso livello (ad esempio, tools/lib/cupcake_images)
  3. Sovrascrivere i file ramdisk.img, system.img e userdata.img della nuova cartella con quelli estratti dal file zip scaricato al punto 1

A questo punto, per avviare l’emulatore utilizzando una build diversa da quella di default è sufficiente aggiungere l’opzione system di esecuzione nel pannello configurazioni del progetto Android su Eclipse, specificando la directory da cui leggere i file immagine di sistema (nel mio caso, l’SDK è installato su Mac OS X nella directory /Users/gerdavax/tools/android-sdk-mac_x86-1.0_r2):

-system /ROOT_ANDROID_SDK/tools/lib/cupcake_images

emulator1.png

emulator2.png

L’emulatore ora partirà con i nuovi file immagine. Passando da una versione all’altra del sistema operativo può capitare che l’emulatore non parta più (alcune nuove impostazioni sono incompatibili con la versione precedente), per cui può rendersi necessaria la cancellazione dei dati utente (memorizzati nel file .android/SDK-1.0/userdata-qemu.img).

Per ora è sufficiente per sperimentare la nuova build, in attesa di avere il nuovo SDK ufficiale…

9 pensieri su “Android: gestire diversi emulatori

  1. furester

    Posso chiederti cosa hai usato per fare gli screenshot?è un po’ che sto cercando un’applicazione che faccia screenshot su Android ma non ho ancora trovato nulla .. grazie.

  2. gerdavax Autore articolo

    Ciao.
    Per fare gli snapshot sul device passo attraverso l’ambiente di sviluppo: perspective DDMS (quella del debugger), selezioni tra i device il telefono collegato via USB, nel menu’ a tendina accanto a STOP c’e’ l’utility SCREEN CAPTURE che salva l’immagine corrente sul display. Sull’emulatore non funziona (ma forse c’e’ qualche problema sulla mia macchina, non ho avuto occasione di indagare), cosi’ uso lo screen capture di Mac OS X e poi ritaglio la sezione che mi occorre. Quasi quasi do’ un’occhiata all’API per vedere come realizzare uno screen capture per Android 🙂
    Ciao!

  3. furester

    Grazie,
    quindi bisogna avere l’SDK installato e confiurato per fare gli screenshot, mi attiverò per questo .. sarebbe bello avere un programmino che salva direttamente sul cellulare le immagini, strano che non ci sia! Se guardi le API e fai il programmino e interessa un tester io mi offro!

  4. gerdavax Autore articolo

    Si, esatto, occorre l’SDK. Ho iniziato a guardare l’API, ma per ora non ho trovato l’aggancio giusto. Se trovo e scrivo codice, sarai il primo beta tester 🙂 Grazie!

  5. Andrea

    Magari andiamo off topic con l’ottimo articolo.. Ma pure io ho cercato come fare gli screen ad android.. Sembra che ( Per ora ) Si possa fare solamente via g1 rooted o il ddms dell’sdk..

    Ottimo articolo comunque 🙂

  6. gerdavax Autore articolo

    Grazie Andrea.
    Anche io ho letto in giro qualcosa del genere, ma non ho approfondito le modalità di acquisizione del display sulle build non ufficiali del sistema. Queste ultime, infatti, da una parte danno massima libertà (viva Linux, viva l’opensource!), ma d’altro canto limitano le possiiblità di utilizzo delle applicazioni ad un insieme ridotto di utenti (ovvero quelli che hanno sostituito il firmware ufficiale). Così come attendiamo con ansia la ricomparsa di bluez, speriamo che l’API standard metta a disposizione qualcosa per fare snapshot. 🙂

    Ciao,
    Ste.

  7. Gabriella

    ciao, ho letto con interesse il tuo post, ho appena acquistato un HTC Dream e volevo installare i due diversi emulatori cosi come scrivi tu, ho collegato il telefono al pc..ma non lo vedo…

    sarò imbranata io… mi sai aiutare ?

    grazie mille

    Gabri

  8. gerdavax Autore articolo

    Ciao.

    Io finora l’ho usato solo su Mac OS X e Linux. Credo che su Windows sia necessario installare i driver USB; appena connesso il terminale al PC dovrebbe chiederti proprio questi: li hai installati?

    Ciao,
    Ste.

  9. Pingback: Gestire diversi emulatori con diverse versioni di Android - Androidiani.com

I commenti sono chiusi.