Android sous VirtualBox x86, pour s’éviter les lenteurs de l’émulateur ARM

Voulant tester à nouveau le développement Android, j’ai décidé de ressortir le kit de développement installé sur ma Gentoo.

J’ai remarqué qu’IDEA proposait maintenant un plugin pour le dev android gratuit dans l’édition comunity et j’ai donc profité de l’occasion pour le télécharger en version 11 (ma licence full s’arrêtant à la version 10…).

Par contre, en voulant lancer l’appli générée sur l’émulateur, j’ai constaté que le CPU (du moins 1 coeur de CPU) était pris à 100% et que l’émulateur était plutôt inutilisable (2-3 secondes de réponse pour chaque action telle qu’un click, un caractère entré…). Que ça soit en utilisant l’image ARM ou la x86, le problème persiste.

Utilisation CPU par l'émulateur Android ARMLes explication fournies sur le tracker d’issue Android permettent de gagner un peu en rapidité mais chez moi, l’émulateur met facilement 5 minutes à ce lancer et reste toujours très peu utilisable, même avec ces astuces.

En cherchant un peu, je suis tombé sur un projet permettant de faire fonctionner correctement Android avec une architecture x86 et proposant surtout des images VirtualBox: Buildroid.

Autant dire que ça change de l’émulateur fourni dans le SDK android. C’est nettement plus utilisable du point de vue fluidité. Voici comment se passe l’installation (VirtualBox doit être installé et configuré):

  1. Télécharger une image VirtualBox sur http://www.buildroid.org/blog/?page_id=121. J’ai choisi la version 4.0.3p (phone).
  2. L’importer depuis VirtualBox (File -> Import Appliance)
  3. Une fois l’image importée, il faut configurer le réseau afin de pouvoir se connecter sur la VM et déployer ses applications. Cliquer sur Settings -> Network -> Advanced -> Port forwarding et choisir un port a rediriger de votre machine vers le port « dev/debug » (5555 par défaut) de la VM AndroidConfiguration de la VM VirtualBox pour Android x86
  4. Vous pouvez maintenant lancer la VM en clickant sur « Start » dans VirtualBox.
  5. Après quelques secondes déjà la VM est démarré et est déjà beaucoup plus fluide. L’utilisation CPU (toujours 1 coeur), est à environs 3-5% quand on ne fait rien sur la VM, ça change des 100% !

Emulateur Android sous VirtualBox

Nous avons maintenant une VM fonctionelle, voici comment l’utiliser depuis intelliJ.

  1. Créez votre projet en utilisant l’utilitaire proposé par le plugin
  2. Dans la configuration Run/Debug, choisir « Show chooser dialog« Configuration lancement Android intelliJ
  3. Connecter adb (depuis un terminal) : 
    1
    adb connect localhost
  4. Lancer l’application depuis intelliJ et choisir la connection proposéeChoix de l'émulateur depuis intelliJ
  5. Voilà, votre application devrait être deployée sur la machine virtuelle VirtualBox.Application Android sous VirtualBox

Pour des configurations avancées de la VM, vous pouvez jeter un oeil sur http://keyable.blogspot.ch/2012/06/setup-hardware-opengl-for-linux-android.html (Opengl).

Les contrôles de base sur la VM:

  • Retour : Esc
  • Eteindre le téléphone : End
  • Bouton home du téléphone : Home

Petite précision tout de même: la plupart des applications devraient fonctionner sans problème dans l’émulateur. Par contre, dès qu’il s’agit d’utiliser les senseurs, micros ou accélération hardware, il se peut fortement que l’application ne fonctionne pas. Pour ce genre d’application, un smartphone « de dev » reste la meilleure option.

About Ludovic

Ingénieur en informatique dipl. EPFL
Cette entrée a été postée dans la catégorie Android, Gentoo, Java et taggée , , , , , , . Ajouter le permalink aux favoris.

Comments are closed.