⌛ Cet article a maintenant 10 ans et 10 mois. Or, les techniques et outils qui y sont présentés ont certainement évolué, de même que l’état de l’art sur le sujet. N’hésitez pas à nous contacter pour bénéficier de notre expertise au goût du jour !
Configurez votre Android Emulator pour qu’il soit rapide !
Si vous développez pour iOS et Android, vous avez très certainement utilisé l’iPhone Simulator et l’Android Emulator. A première vue, il n’y a pas de problème frappant avec l’iPhone Simulator, alors que l’emulateur de l’OS de Google est lent… très lent… extremement lent ! Tellement lent qu’il en devient difficile de l’utiliser pour faire du debug, et si vous utilisez Appcelerator Titanium, vous allez préférer tester un maximum sur iOS, et ne lancer Android que lorsque vous ne pouvez pas faire autrement.
Il faut savoir que l’Android Emulator est basé sur QEMU (the Quick EMUlator) qui émule un processeur ARM sur votre ordinateur qui a (très certainement) un processeur x86. Inutile d’expliquer pourquoi émuler un processeur par un logiciel n’est pas la meilleure idée si vous voulez avoir quelque chose de réactif, et utilisable. De plus, l’emulateur doit s’occuper des nombreuses autres fonctionnalités matérielles. Cela fait énormément de calcul, ajoutez à cela le fait que les smartphones d’aujourd’hui sont puissants, et vous obtenez un émulateur très lent !
Section intitulée super-donc-je-ne-peux-rien-y-faireSuper, donc je ne peux rien y faire ?
Bien sûr que si ! La première chose à faire et de lancer votre Android SDK Manager, pour cela, allez dans le répertoire d’installation du SDK Android et lancez la commande suivante :
$ ./tools/android
Vous remarquerez qu’il y’a une ligne “Intel x86 Atom System Image” disponible pour les versions 4.2.2, 4.1.2, 4.0.3 et 2.3.3 d’Android. Sélectionnez les versions que vous souhaitez tester et installez les.
Si vous descendez en bas de cet écran, vous allez voir un répertoire “Extras”, ouvrez-le et sélectionnez “Intel x86 emulator accelerator (HAXM)” afin de le télécharger.
Vous devez installer ce driver en vous rendant dans le sous-répertoire extras/intel/Hardware_Accelerated_Execution_Manager/
du dossier du SDK. Lancez simplement IntelHAXM.dmg
.
Maintenant que tout est installé, vous devez configurer vos appareils (“devices”). Utilisez le menu Tools > Android Virtual Device Manager (AVD Manager). Vous voyez la liste de tous vos appareils, créez-en un nouveau. En sélectionnant une version cible qui possède une image x86, vous allez pouvoir modifier le champ CPU/ABI pour choisir “Intel Atom (x86)”. Cette configuration, avec le driver HAXM très facilement installé précédemment, vous permettra d’avoir un émulateur beaucoup plus rapide. Mais nous pouvons aller encore plus loin ! Éditez votre appareil, et dans la partie “Emulation options”, cochez la case “Use GPU Host”, l’émulateur utilisera ainsi le GPU de votre machine au lieu d’en émuler un.
Ok, notre appareil est maintenant prêt ! Il n’y a plus qu’à tester.
$ ./tools/emulator -avd Test_for_fast_emulator -wipe-data -no-boot-anim -cpu-delay 0
$ ./platform-tools/adb install ../Test/build/android/bin/app.apk
YEAHYYY ! C’est rapide !
Section intitulée j-utilise-titanium-studio-comment-je-peux-faireJ’utilise Titanium Studio, comment je peux faire ?
Si vous utilisez Titanium Studio, vous pouvez également le configurer pour que l’Android Emulator utilise une image x86.
Cliquez sur “Run Configurations”, et sélectionnez le projet sur lequel vous travaillez, choisissez une version d’Android avec le label “x86”.
Lancez l’émulateur, il devrait être déjà plus rapide, mais pas aussi rapide que celui créé via AVD Manager, tout simplement parce que nous n’avons pas dit à l’émulateur d’utiliser le GPU de notre machine. Lancez l’AVD Manager, et vous pouvez voir un nouvel appareil utilisant l’image x86. Editez-le.
Vous pouvez voir une section “Hardware”, cliquez sur New, sélectionnez la propriété “GPU Emulation”, et modifiez sa valeur en “yes”. Sauvegardez et redémarrez votre émulateur, et le voila rapide et tout à fait utilisable !
Protips©: Dans cette partie, vous pouvez également ajouter la propriété “Keyboard support” et mettre sa valeur à “yes” pour pouvoir utiliser votre clavier pour remplir un champ de formulaire par exemple.
Section intitulée attentionAttention…
N’oubliez pas ! Vous devez tester votre application sur plusieurs smartphones pour vous assurez qu’elle fonctionne sur différentes résolutions, différents matériels. Et rappelez-vous que les smartphones ont moins de batterie, moins de bande passante, … que votre ordinateur.
Commentaires et discussions
Speed up your Android Emulator!
If you develop applications for iOS and Android, you probably have used the iPhone Simulator and the Android Emulator. There is no real issue with the iPhone simulator, but Google one is very, very, very slow. It is so painful to debug with it that if you develop on Appcelerator’s…
Nos articles sur le même sujet
Ces clients ont profité de notre expertise
Dans le cadre du renouveau de sa stratégie digitale, Orpi France a fait appel à JoliCode afin de diriger la refonte du site Web orpi.com et l’intégration de nombreux nouveaux services. Pour effectuer cette migration, nous nous sommes appuyés sur une architecture en microservices à l’aide de PHP, Symfony, RabbitMQ, Elasticsearch et Docker.
Discourse est un logiciel libre pour forum de discussions très puissant, sur lequel Mix with the Masters s’appuie pour créer et animer sa communauté. Nous avons appliqué une forte customisation du logiciel sur plusieurs aspects : thème graphique complet en accord avec la charte graphique du site ; plugin dédiés pour afficher un paywall ; implémentation…
Nous avons également effectué en quelques semaines la refonte de l’application mobile de Dromadaire, à l’aide de la plateforme Appcelerator Titanium et du framework Alloy. Dialoguant avec les APIs REST développées par les équipes internes de Dromadaire, cette application internationalisée est disponible à la fois sur iOS et Android, et permet d’effectuer…