Accélérez votre émulateur Android

Depuis la sortie du SDK Android rev17, il est possible d'utiliser l'émulateur Android tout en tirant partie des capacités de virtualisation des processeurs actuels.

Les performances sont alors sans commune mesure avec celles d'une émulation pure, voici un exemple vous montrant la lecture d'une vidéo Youtube directement depuis un AVD (Android Virtual Device) x86.

Pour profiter de ces améliorations, commencez par lancer le Android SDK Manager :



Choisissez une image x86 à installer, pour l'instant la seule disponible officiellement est celle proposée par Intel pour Android 2.3.3, mais une image pour Android ICS 4.0 sera bientôt disponible.


7.PNG

Associée à celle-ci, choisissez le driver Intel HAXM (Intel Hardware Accelerated Execution Manager).

Une fois ces éléments installés, vous devez finir l'installation du driver HAXM manuellement, en lançant :
<sdk>/extras/intel/Hardware_Accelerated_Execution_Manager/IntelHAXM.exe sous Windows
<sdk>/extras/intel/Hardware_Accelerated_Execution_Manager/IntelHAXM.dmg sous Mac

sous Linux, il vous suffit d'installer qemu-kvm et d'ajouter les options : -qemu -m 512 -enable-kvm

Une fois ceci fait, créez un nouvel android virtual device, en utilisant Android AVD Manager :



Après la création de votre AVD x86, n'oubliez pas de le sélectionner dans les propriétés de votre projet pour qu'il soit utilisé au lancement de celui-ci :

18.PNG

Et voilà ! Au lancement de votre projet dans l'AVD, vous devriez obtenir ce message dans la console :
[2012-03-23 15:11:40 - Emulator] HAX is working and emulator runs in fast virt mode

Si ce n'est pas le cas, et que les performances ne sont pas au rendez-vous, vérifiez que le driver HAXM est bien installé, et que les options de virtualisation (VT-x pour les processeurs Intel) sont bien activées dans le bios de votre ordinateur.

Si vous utilisez le NDK Android, il vous suffit dans la plupart des cas d'ajouter l'architecture x86 à vos options de compilation, en créant ou éditant le fichier jni/Application.mk pour y ajouter la cible x86 :

Il est aussi possible de spécifier plus simplement APP_ABI := all 


Ceci vous permettra par ailleurs de rendre disponible votre application pour les prochains appareils Android qui utiliseront des processeurs Intel x86.

Si vous utilisez des fonctionnalités particulières d'arm comme les instructions SIMD Neon, ou certaine structures mémoires dont l'alignement est fait différement sous x86, vous pourrez par contre avoir à modifier une partie de votre code pour le rendre compatible.

Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.

Commentaires

Portrait de Benjamin R.

Merci pour cet émulateur, les performances sont vraiment impressionnantes !