Dot.Blog

C#, XAML, Xamarin, UWP/Android/iOS

Xamarin Android Player : Simulateur Android Haute Performance

[new:30/10/2014]Xamarin n’arrête pas de m’épater, un dynamisme, une inventivité qu’on aimerait bien voir partout. L’une des dernières nouveautés, un simulateur Android haute performance gratuit à télécharger…

Simulateur Android

Le SDK Android est bien fait et propose déjà un simulateur permettant depuis Xamarin.Studio ou Visual Studio d’exécuter des applications fraichement compilées pour les tester.

C’est pratique, pas besoin de transférer sur un vrai smartphone pour voir qu’il y a un bug…

Le simulateur Android de Google est un excellent produit qui a la bonne idée de marcher sur PC, pas comme le simulateur Apple qui ne marche que sur un Mac (ça rime avec arnaque en effet). Le seul problème de ce simulateur est sa relative lenteur.

Heureusement il existe HAXM de Intel qui permet d’accélérer grandement les choses.

Sauf qu’il y a un petit “hic” : HAXM a besoin de VT-X les fonctions de virtualisation en gros qui sont offertes par le processeur sous le contrôle de l’UEFI (ex Bios). Cela ne serait en rien gênant si Microsoft n’avait pas eu l’idée saugrenue de créer un émulateur Windows Phone qui ne fonctionne qu’avec Hyper-V… En dehors d’un Windows 8 Pro et autres contraintes (ils ne veulent vraiment pas que des développeurs travaillent sur WP !) Et Hyper-V utilise les fonctions de virtualisation qu’il vampirise à son seul avantage.

Au final soit on développe pour Windows Phone et adieu le développement accéléré sous Android, soit on boote sans Hyper-V (j’ai publié une astuce pour cela regardez les archives) et là on peut jouir de HAXM mais on n’a plus du tout d’émulateur Windows Phone. Pas pratique quand on développe en cross-plateforme et qu’on doit passer d’une version WP à une version Android par exemple pour vérifier qu’une modification d’un ViewModel donne bien le même résultat partout. A noter qu’on a toujours l’émulateur Surface qui lui, bizarrement sait tourner sans Hyper-V. Quel pataquès ! Et dire que Microsoft parle beaucoup d’”unification”, de “convergence” mais que dans les faits ils font tout le contraire en explosant les combinaisons et les enquiquinements. Un jour peut-être ils finiront pas comprendre qu’il vaut mieux unifier dès le départ, ça économise temps et argent à tout le monde.

Bref avec Windows Phone et le coup de Hyper-V soit on passe son temps à rebooter entre un W8 avec Hyper-V et un autre sans, soit on se passe de l’accélération sous Android ou on se passe de Windows Phone. Une situation plus qu’inconfortable pour le développeur et couteuse par la perte de temps et de performance que cela occasionne pour celui qui l’emploie.

Quelle autre possibilité ?

Xamarin Android Player

imageSoyons francs Xamarin n’a pas trouvé le moyen de se passer de l’accélération matérielle ni même de couper Hyper-V lorsqu’il est activé, seul un reboot permet de changer son état (encore une idée de génie super pratique).

En revanche Xamarin a réécrit un émulateur Android plus rapide que celui de Google et parfaitement adapté au debug des applications Xamarin.Android.

Bien entendu cela tournera d’autant plus vite si Hyper-V est désactivé.

Mais même dans le cas où Hyper-V est actif l’émulateur Xamarin “Android Player” est plus performant que l’original de Google. De fait la perte de HAXM se fait moins sentir et le temps de chargement de l’émulateur par exemple est beaucoup moins long. Sa réactivité est aussi meilleure.

Ainsi, Xamarin Android Player arrive à point pour faciliter les choses, qu’on développe uniquement pour Android (et qu’on puisse utiliser toute l’accélération possible) ou qu’on développe en cross-plateforme avec Windows Phone et Hyper-V.

Une fois l’installateur téléchargé et exécuté il n’y a rien à faire de particulier en dehors de valider certains dialogues notamment ceux qui concernent l’installation de VirutalBox de Oracle. Car bien entendu il y a une feinte, Xamarin utilise cet excellent émulateur pour son Player. Vous allez me dire, s’ils avaient utilisé Hyper-V la solution serait parfaite pour ceux qui doivent switcher en plein développement entre de l’Android et du Windows Phone. Certes. Mais je suppose que développer un émulateur sous Hyper-V devait être beaucoup moins portable que pour VirtualBox qui lui tourne aussi sur Mac par exemple… (mais aussi sous Linux et Solaris).

Une fois l’ensemble installé, cela va assez vite, il suffit de lancer l’application Android Player. Elle propose un premier écran qui permet de choisir un image à lancer ainsi que la liste des images disponibles en téléchargement. Pour l’instant il existe deux images, des Nexus 4 avec deux API Android différentes, une plus ancienne et plus consensuelle et une plus récente.

Une fois les images téléchargées, elles s’installent dans VirtualBox automatiquement, c’est vraiment bien fait tout est automatique.

Ne reste plus qu’à exécuter l’une des images comme on le voit dans la capture écran ci-dessus.

C’est beau, c’est rapide, c’est du pur Android Nexus, du bon boulot qui va simplifier le nôtre !

Des fonctions bien utiles

imageBien entendu l’émulateur possède une side bar qui offre de nombreuses options bien pratique pour tester une application. On retrouve (comme on le voit sur la capture verticale à gauche) le contrôle du volume sonore, la possibilité de prendre une capture écran, les touches habituelles de Android (retour arrière, menu, commutateur de tâches).

Inévitablement on trouve aussi un bouton pour effectuer une rotation de la device afin de tester les layouts dans toutes les positions.

Le bouton des réglages donne accès aux informations de l’émulateur ainsi qu’à des onglets permettant de jouer sur l’état de la batterie (virtuelle) ou sur la position GPS.

Bref on dispose d’un ensemble tout à fait performant, ayant un look propre et une efficacité très satisfaisante.

La vitesse d’exécution même avec hyper-V donc sans accélération supplémentaire (VirtualBox le signal au lancement d’une image d’ailleurs) est vraiment bonne. Internet fonctionne rapidement, en tout cas pas moins vite que sur une vraie Device et c’est plutôt bien. Tester à la vitesse de l’éclair ce qui sera plus lent en réalité rend le développeur plus paresseux et il ne pense pas toujours à améliorer les performances. Avec une exécution proche de la réalité le développeur est le premier pénalisé s’il n’optimise pas son code et porte à cet aspect, généralement, plus d’attention ! C’est toujours plus enquiquinant quand on est le premier concerné, forcément.

Petit détail qui a son importance, le clavier du PC fonctionne parfaitement pour faire des saisie dans les applications. Ce n’est pas forcément le cas de tous les émulateurs, je ne citerai personne par charité… La preview reconnait le clavier Azerty mais semble avoir plus de mal avec les symboles mais pas avec les flèches avant et arrière ce qui est très pratique là encore dans les saisies, je suppose que cela sera réglé dans la finale (sinon il reste bien entendu le clavier virtuel Android).

image

En mode paysage, l’affichage de la version mobile de Dot.Blog fonctionne très correctement et assez vite. Cet émulateur est vraiment bien fait.

En bricolant la position GPS j’ai réussi à le planter mais attention : c’est une Preview Release ! Elle a l’air tout à fait opérationnel et très fiable mais ce n’est pas une finale.

Où ?

Le programme se télécharge depuis le site de Xamarin depuis sa page dédiée qui vous en dira encore plus long que cette brève introduction. C’est ici : http://goo.gl/DVVoyi 

Conclusion

J’admire vraiment le dynamise de Xamarin et sa capacité à innover en permanence et tout azimut. Il y a un réel potentiel créatif dans cette entreprise fondée par le créateur de Mono.

Xamarin vient de passer des accords avec IBM pour accélérer l’adoption de Android en entreprise notamment en se mariant facilement avec les équipements d’IBM. C’est une excellente nouvelle d’autant que Apple avait déjà conclu des accords similaires avec IBM.

J’aime Xamarin, j’aime leur état d’esprit conquérant, il se dégage de cette boite un vent nouveau, un parfum de winner qui donne envie de bosser, de faire des choses. Franchement ça change d’autres ambiances plombées qu’on peut connaitre ailleurs.

C’est peut-être ça le secret du succès, avoir la patate, tout donner, et surtout : coller aux besoins des développeurs au lieu de se perdre dans des solutions dont personne ne veut. Un bel exemple à suivre en tout cas, et des super produits que je vous conseille chaudement si vous n’êtes pas encore passé au cross-plateforme !

blog comments powered by Disqus