{"id":540,"date":"2012-07-15T12:55:24","date_gmt":"2012-07-15T11:55:24","guid":{"rendered":"http:\/\/www.ludovicfavre.ch\/blog\/?p=540"},"modified":"2012-07-15T13:02:13","modified_gmt":"2012-07-15T12:02:13","slug":"android-sous-virtualbox-x86-pour-seviter-les-lenteurs-de-lemulateur-arm","status":"publish","type":"post","link":"https:\/\/www.ludovicfavre.ch\/blog\/2012\/07\/android-sous-virtualbox-x86-pour-seviter-les-lenteurs-de-lemulateur-arm\/","title":{"rendered":"Android sous VirtualBox x86, pour s&rsquo;\u00e9viter les lenteurs de l&rsquo;\u00e9mulateur ARM"},"content":{"rendered":"<p>Voulant tester \u00e0 nouveau le d\u00e9veloppement Android, j&rsquo;ai d\u00e9cid\u00e9 de ressortir le kit de d\u00e9veloppement install\u00e9 sur ma Gentoo.<\/p>\n<p>J&rsquo;ai remarqu\u00e9 qu&rsquo;IDEA proposait maintenant <a href=\"http:\/\/www.jetbrains.com\/idea\/features\/google_android.html\">un plugin pour le dev android gratuit dans l&rsquo;\u00e9dition comunity<\/a> et j&rsquo;ai donc profit\u00e9 de l&rsquo;occasion pour le t\u00e9l\u00e9charger en version 11 (ma licence full s&rsquo;arr\u00eatant \u00e0 la version 10&#8230;).<\/p>\n<p>Par contre, en voulant lancer l&rsquo;appli g\u00e9n\u00e9r\u00e9e sur l&rsquo;\u00e9mulateur, j&rsquo;ai constat\u00e9 que le CPU (du moins 1 coeur de CPU) \u00e9tait pris \u00e0 100% et que l&rsquo;\u00e9mulateur \u00e9tait plut\u00f4t inutilisable (2-3 secondes de r\u00e9ponse pour chaque action telle qu&rsquo;un click, un caract\u00e8re entr\u00e9&#8230;). Que \u00e7a soit en utilisant l&rsquo;image ARM ou la x86, le probl\u00e8me persiste.<\/p>\n<p><a href=\"http:\/\/www.ludovicfavre.ch\/blog\/2012\/07\/android-sous-virtualbox-x86-pour-seviter-les-lenteurs-de-lemulateur-arm\/topemulator\/\" rel=\"attachment wp-att-547\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-547\" title=\"Utilisation CPU par l'\u00e9mulateur Android ARM\" src=\"http:\/\/www.ludovicfavre.ch\/blog\/wp-content\/uploads\/2012\/07\/topEmulator-1024x202.png\" alt=\"Utilisation CPU par l'\u00e9mulateur Android ARM\" width=\"640\" height=\"126\" srcset=\"https:\/\/www.ludovicfavre.ch\/blog\/wp-content\/uploads\/2012\/07\/topEmulator-1024x202.png 1024w, https:\/\/www.ludovicfavre.ch\/blog\/wp-content\/uploads\/2012\/07\/topEmulator-300x59.png 300w, https:\/\/www.ludovicfavre.ch\/blog\/wp-content\/uploads\/2012\/07\/topEmulator.png 1105w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a>Les explication fournies sur le <a href=\"http:\/\/code.google.com\/p\/android\/issues\/detail?id=18589\">tracker d&rsquo;issue Android <\/a>permettent de gagner un peu en rapidit\u00e9 mais chez moi, l&rsquo;\u00e9mulateur met facilement 5 minutes \u00e0 ce lancer et reste toujours tr\u00e8s peu utilisable, m\u00eame avec ces astuces.<\/p>\n<p>En cherchant un peu, je suis tomb\u00e9 sur un projet permettant de faire fonctionner correctement Android avec une architecture x86 et proposant surtout des <a href=\"http:\/\/www.buildroid.org\/blog\/?page_id=121\">images VirtualBox: Buildroid<\/a>.<br \/>\n<!--more--><br \/>\nAutant dire que \u00e7a change de l&rsquo;\u00e9mulateur fourni dans le SDK android. C&rsquo;est nettement plus utilisable du point de vue fluidit\u00e9. Voici comment se passe l&rsquo;installation (VirtualBox doit \u00eatre install\u00e9 et configur\u00e9):<\/p>\n<ol>\n<li>T\u00e9l\u00e9charger une image VirtualBox sur\u00a0<a href=\"http:\/\/www.buildroid.org\/blog\/?page_id=121\">http:\/\/www.buildroid.org\/blog\/?page_id=121<\/a>. J&rsquo;ai choisi la version 4.0.3p (phone).<\/li>\n<li>L&rsquo;importer depuis VirtualBox (<strong>File -&gt; Import Appliance<\/strong>)<\/li>\n<li>Une fois l&rsquo;image import\u00e9e, il faut configurer le r\u00e9seau afin de pouvoir se connecter sur la VM et d\u00e9ployer ses applications. Cliquer sur <strong>Settings -&gt; Network -&gt; Advanced -&gt; Port forwarding<\/strong> et choisir un port a rediriger de votre machine vers le port \u00ab\u00a0dev\/debug\u00a0\u00bb (5555 par d\u00e9faut) de la VM Android<a href=\"http:\/\/www.ludovicfavre.ch\/blog\/2012\/07\/android-sous-virtualbox-x86-pour-seviter-les-lenteurs-de-lemulateur-arm\/confvmandroid\/\" rel=\"attachment wp-att-549\"><img loading=\"lazy\" decoding=\"async\" title=\"Configuration de la VM VirtualBox pour Android x86\" src=\"http:\/\/www.ludovicfavre.ch\/blog\/wp-content\/uploads\/2012\/07\/confVMAndroid-1024x576.png\" alt=\"Configuration de la VM VirtualBox pour Android x86\" width=\"640\" height=\"360\" \/><\/a><\/li>\n<li>Vous pouvez maintenant lancer la VM en clickant sur \u00ab\u00a0<strong>Start<\/strong>\u00a0\u00bb dans VirtualBox.<\/li>\n<li>Apr\u00e8s quelques secondes d\u00e9j\u00e0 la VM est d\u00e9marr\u00e9 et est d\u00e9j\u00e0 beaucoup plus fluide. L&rsquo;utilisation CPU (toujours 1 coeur), est \u00e0 environs 3-5% quand on ne fait rien sur la VM, \u00e7a change des 100% !<\/li>\n<\/ol>\n<p><a href=\"http:\/\/www.ludovicfavre.ch\/blog\/2012\/07\/android-sous-virtualbox-x86-pour-seviter-les-lenteurs-de-lemulateur-arm\/vmandroid\/\" rel=\"attachment wp-att-552\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-552\" title=\"Emulateur Android sous VirtualBox\" src=\"http:\/\/www.ludovicfavre.ch\/blog\/wp-content\/uploads\/2012\/07\/vmAndroid-1024x700.png\" alt=\"Emulateur Android sous VirtualBox\" width=\"640\" height=\"437\" srcset=\"https:\/\/www.ludovicfavre.ch\/blog\/wp-content\/uploads\/2012\/07\/vmAndroid-1024x700.png 1024w, https:\/\/www.ludovicfavre.ch\/blog\/wp-content\/uploads\/2012\/07\/vmAndroid-300x205.png 300w, https:\/\/www.ludovicfavre.ch\/blog\/wp-content\/uploads\/2012\/07\/vmAndroid.png 1300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/p>\n<p>Nous avons maintenant une VM fonctionelle, voici comment l&rsquo;utiliser depuis intelliJ.<\/p>\n<ol>\n<li>Cr\u00e9ez votre projet en utilisant l&rsquo;utilitaire propos\u00e9 par le plugin<\/li>\n<li>Dans la configuration Run\/Debug, choisir \u00ab\u00a0<strong>Show chooser dialog<\/strong>\u00ab\u00a0<a href=\"http:\/\/www.ludovicfavre.ch\/blog\/2012\/07\/android-sous-virtualbox-x86-pour-seviter-les-lenteurs-de-lemulateur-arm\/confrunmodule\/\" rel=\"attachment wp-att-557\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-557\" title=\"Configuration lancement Android intelliJ\" src=\"http:\/\/www.ludovicfavre.ch\/blog\/wp-content\/uploads\/2012\/07\/confRunModule.png\" alt=\"Configuration lancement Android intelliJ\" width=\"824\" height=\"657\" srcset=\"https:\/\/www.ludovicfavre.ch\/blog\/wp-content\/uploads\/2012\/07\/confRunModule.png 824w, https:\/\/www.ludovicfavre.ch\/blog\/wp-content\/uploads\/2012\/07\/confRunModule-300x239.png 300w\" sizes=\"auto, (max-width: 824px) 100vw, 824px\" \/><\/a><\/li>\n<li>Connecter adb (depuis un terminal) :\u00a0<code class=\"codecolorer bash default\"><span class=\"bash\">adb connect localhost<\/span><\/code><\/li>\n<li>Lancer l&rsquo;application depuis intelliJ et choisir la connection propos\u00e9e<a href=\"http:\/\/www.ludovicfavre.ch\/blog\/2012\/07\/android-sous-virtualbox-x86-pour-seviter-les-lenteurs-de-lemulateur-arm\/confdevice\/\" rel=\"attachment wp-att-558\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-558\" title=\"Choix de l'\u00e9mulateur depuis intelliJ\" src=\"http:\/\/www.ludovicfavre.ch\/blog\/wp-content\/uploads\/2012\/07\/confDevice.png\" alt=\"Choix de l'\u00e9mulateur depuis intelliJ\" width=\"474\" height=\"362\" srcset=\"https:\/\/www.ludovicfavre.ch\/blog\/wp-content\/uploads\/2012\/07\/confDevice.png 474w, https:\/\/www.ludovicfavre.ch\/blog\/wp-content\/uploads\/2012\/07\/confDevice-300x229.png 300w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" \/><\/a><\/li>\n<li>Voil\u00e0, votre application devrait \u00eatre deploy\u00e9e sur la machine virtuelle VirtualBox.<a href=\"http:\/\/www.ludovicfavre.ch\/blog\/2012\/07\/android-sous-virtualbox-x86-pour-seviter-les-lenteurs-de-lemulateur-arm\/myappvbox\/\" rel=\"attachment wp-att-559\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-559\" title=\"Application Android sous VirtualBox\" src=\"http:\/\/www.ludovicfavre.ch\/blog\/wp-content\/uploads\/2012\/07\/myAppVBox.png\" alt=\"Application Android sous VirtualBox\" width=\"480\" height=\"849\" srcset=\"https:\/\/www.ludovicfavre.ch\/blog\/wp-content\/uploads\/2012\/07\/myAppVBox.png 480w, https:\/\/www.ludovicfavre.ch\/blog\/wp-content\/uploads\/2012\/07\/myAppVBox-169x300.png 169w\" sizes=\"auto, (max-width: 480px) 100vw, 480px\" \/><\/a><\/li>\n<\/ol>\n<p>Pour des configurations avanc\u00e9es de la VM, vous pouvez jeter un oeil sur\u00a0<a href=\"http:\/\/keyable.blogspot.ch\/2012\/06\/setup-hardware-opengl-for-linux-android.html\">http:\/\/keyable.blogspot.ch\/2012\/06\/setup-hardware-opengl-for-linux-android.html<\/a>\u00a0(Opengl).<\/p>\n<p>Les contr\u00f4les de base sur la VM:<\/p>\n<ul>\n<li>Retour : Esc<\/li>\n<li>Eteindre le t\u00e9l\u00e9phone : End<\/li>\n<li>Bouton home du t\u00e9l\u00e9phone : Home<\/li>\n<\/ul>\n<p>Petite pr\u00e9cision tout de m\u00eame: la plupart des applications devraient fonctionner sans probl\u00e8me dans l&rsquo;\u00e9mulateur. Par contre, d\u00e8s qu&rsquo;il s&rsquo;agit d&rsquo;utiliser les senseurs, micros ou acc\u00e9l\u00e9ration hardware, il se peut fortement que l&rsquo;application ne fonctionne pas. Pour ce genre d&rsquo;application, un smartphone \u00ab\u00a0de dev\u00a0\u00bb reste la meilleure option.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voulant tester \u00e0 nouveau le d\u00e9veloppement Android, j&rsquo;ai d\u00e9cid\u00e9 de ressortir le kit de d\u00e9veloppement install\u00e9 sur ma Gentoo. J&rsquo;ai remarqu\u00e9 qu&rsquo;IDEA proposait maintenant un plugin pour le dev android gratuit dans l&rsquo;\u00e9dition comunity et j&rsquo;ai donc profit\u00e9 de l&rsquo;occasion &hellip; <a href=\"https:\/\/www.ludovicfavre.ch\/blog\/2012\/07\/android-sous-virtualbox-x86-pour-seviter-les-lenteurs-de-lemulateur-arm\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[67,68,74],"tags":[25,7,57,58,35,65,56],"class_list":["post-540","post","type-post","status-publish","format-standard","hentry","category-android","category-gentoo","category-java","tag-android","tag-gentoo","tag-ics","tag-intellij","tag-java","tag-linux","tag-virtualbox"],"_links":{"self":[{"href":"https:\/\/www.ludovicfavre.ch\/blog\/wp-json\/wp\/v2\/posts\/540","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ludovicfavre.ch\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ludovicfavre.ch\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ludovicfavre.ch\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ludovicfavre.ch\/blog\/wp-json\/wp\/v2\/comments?post=540"}],"version-history":[{"count":24,"href":"https:\/\/www.ludovicfavre.ch\/blog\/wp-json\/wp\/v2\/posts\/540\/revisions"}],"predecessor-version":[{"id":570,"href":"https:\/\/www.ludovicfavre.ch\/blog\/wp-json\/wp\/v2\/posts\/540\/revisions\/570"}],"wp:attachment":[{"href":"https:\/\/www.ludovicfavre.ch\/blog\/wp-json\/wp\/v2\/media?parent=540"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ludovicfavre.ch\/blog\/wp-json\/wp\/v2\/categories?post=540"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ludovicfavre.ch\/blog\/wp-json\/wp\/v2\/tags?post=540"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}