Comment avoir un émulateur Android performant?

Bonjour,

Si vous avez déjà essayé de créer une application sans avoir de machine android physique, vous avez certainement dû éprouver quelques frustrations face à la lenteur de l’émulateur android proposé de base avec le SDK Android.
Si c’est vrai pour faire du développement sur Android 2.x, ça l’est encore plus sur tablette.
L’émulateur HoneyComb est inutilisable, ça rame énormément même avec un corei7, et 8Go de RAM…

En fait le problème c’est que l’émulateur reproduit le comportement d’un processeur ARM, or les PC ont des architectures X86. Sur Apple il n’y a pas de problème car l’iPhone et l’iMac possèdent la même architecture, donc pas besoin de reproduire le comportement du processeur puisque que c’est le même. On parle dans ce cas de simulateur et non plus d’émulateur.
Définition et comparaison wikipédia ici : http://fr.wikipedia.org/wiki/%C3%89mulation.

Heureusement il existe un portage d’android, vers des architectures X86.

Ainsi il est possible d’installer android directement sur un PC avec des archi X86. Sur le site ont retrouve les versions d’android 2.3, 3.0 et même 4.0 en développement.
Chacune de ces versions est déclinée en plusieurs types d’archi : eeepc, AMD brazos, asus laptop, tega v2.

Le but pour nous, c’est d’avoir l’équivalent d’un émulateur HoneyComb, on va donc installer une de ces versions sur une machine virtuelle. On utilisera VirtualBox :
https://www.virtualbox.org/wiki/Downloads

Voilà donc comment procéder pour installer une machine virtuelle qui tourne sous android.

1. Installer VirtualBox

2. Créer une machine virtuelle :

On lui configurera 1Go de RAM, un disque dur (2ou 3 Go devraient suffire), une mémoire video de 8mo(c’est la valeur par défaut), et une carte réseau de type PCnet-FAST III avec un accès par pont.

3. Je vous conseille, si vous pouvez, d’utiliser 2 souris

(dont une dédiée à la machine virtuelle). En effet j’ai l’impression que la gestion de la souris et moins bien gérée que pour les autres systèmes…
Dans l’onglet USB, ajoutez un filtre depuis un périphérique et ajoutez-lui une des 2 souris.

4. Ajouter l’iso que vous avez télécharger depuis le site Android-X86,

dans le lecteur CD de la machine virtuelle.
https://www.virtualbox.org/wiki/Downloads
Je vous conseille de prendre la version eeepc. Dans mon cas pour avoir un HoneyComb, j’ai pris la version : android-x86-3.2-RC2-eeepc.iso

5. Démarrer la machine,

lancer l’installation et suivre les étapes.

Personnellement j’ai formaté le disque en deux partitions, comme sur la plupart des téléphones. Et j’ai créé une carte SD virtuelle comme proposé par l’outil à la dernière étape.

6. A la fin de l’installation, avant de redémarrer, pensez à éjecter l’ISO du lecteur CD.

7. Vous remarquerez que le système démarre rapidement et qu’il est super fluide

. Il est même plus fluide que sur n’importe quelle tablette !!!

8. Il faudra configurer le réseau manuellement.

Pour cela faire un ALT+F1, pour afficher un terminal avec une console.
Récupérer l’adresse IP de votre DNS, à l’aide de la commande

ipconfig /all

sur une commande DOS sous windows.
Vérifiez que vous avez bien une interface eth0 à l’aide de la commande

# netcfg

Si ce n’est pas le cas, alors, il y a un problème dans la configuration de la carte réseau de votre machine virtuelle.

Ensuite taper ces trois commandes (en remplaçant YOUR_DNS_SERVER_IP):

# netcfg eth0 up
# dhcpcd
# setprop net.dns1 YOUR_DNS_SERVER_IP

La combinaison de touche ALT+F7 permet de retrouver l’interface graphique. Et l’accès Internet devrait fonctionner.

Les limitations:

On a quand même quelques contraintes avec cet émulateur.
Certaines ne sont pas très gênantes : on a un clavier qwerty.
D’autres le sont plus : on ne peut pas simuler la rotation de l’écran, c’est vraiment gênant surtout quand on connaît le système de destruction, re-construction d’une activity.
Sans la gestion de l’orientation, on a pas de moyen facile de tester si on a bien géré le cycle de vie…
Et entre autres, on ne peut pas simuler un GPS, ni des appels téléphoniques.

On voit bien que même avec cette solution, il est quand même préférable d’utiliser un appareil physique.

Et si Google nous proposait un simulateur android x86, ce ne serait pas une bonne idée ? … Si c’était le cas, ce serat sûrement mieux intégré qu’une VirtualBox, et on n’aurait pas nécessairement besoin d’une tablette par développeur pour faire des applications HoneyComb ou IceCreamSandwitch.
En plus, rappelez-vous, quand on créé un device Android Virtuelle (AVD), depuis le SDK Tool, Google a prévu un champ pour choisir l’architecture. Ce champ s’appelle CPU/ABI mais on a toujours qu’un seul choix possible…
On peut espérer que Google nous dira « Coming Soon ! » car Intel monte un prototype de smartphone androidX86 en partenariat avec Google…

http://www.01net.com/editorial/551324/intel-montre-un-prototype-de-smartphone-android-x86-sous-medfield/

http://www.frandroid.com/actualites-generales/88941_lg-presentera-au-ces-le-premier-smartphone-android-avec-un-processeur-intel/