Émulateur Android sur MacOS depuis un Windows dans Parallels

Dans un article précédent j’avais fait référence à un article de James Montemagno expliquant comment utiliser Xamarin Android Player sur MacOS depuis Windows dans Parallels.

L’intérêt de cette configuration est d’offrir les meilleures performances avec l’émulateur Android lorsque l’on développe pour Xamarin Android depuis Visual Studio.

Xamarin Android Player était très intéressant dans la mesure où les émulateurs Android précédents étaient assez peu performants mais cet avantage s’est étiolé avec le temps et Xamarin a donc pris la décision d’arrêter son développement.

Il est maintenant conseillé d’utiliser les émulateurs Android officiels qui outre de bien meilleurs performances qu’auparavant offrent les Google Play Services intégrés dans la plupart des configurations !

Nous allons donc voir, comment à partir de ce qui a déjà été écrit auparavant, utiliser les émulateurs Android depuis notre machine virtuelle Windows.

Préparation de MacOS

Installer le Xamarin Android

Lorsque vous installez Xamarin Studio sur votre Mac, tout le nécessaire pour installer les émulateurs est présent dans le SDK Android. C’est également le cas lorsque vous installez Android Studio. Attention cependant aux chemins d’installation du SDK Android peuvent être différent entre Xamarin Studio et Android Studio.

Liste émulateur Android

Installer Intel HAXM

Intel Hardware Accelerated Execution Manager est un rapidement un outil permettant d’accélérer les performances de manière conséquente les émulateurs Android utilisant un CPU x86. C’est donc un indispensable !

https://software.intel.com/en-us/android/articles/intel-hardware-accelerated-execution-manager

Je vous invite également à lire la documentation d’installation en cas de besoin.

Configurer votre émulateur

Il existe de nombreuses documentations dans le SDK

Dans sa dernière version, il est plus simple de créer les émulateurs avec Android Studio qu’avec Xamarin Studio alors n’hésitez pas à passer par Android Studio si vous l’avez sur votre Mac.

Je vous conseille très fortement d’utiliser les images fonctionnant en x86 pour bénéficier de performances correctes.

Configuration émulateur Android

Ajout du PATH vers les tools Android

Par soucis de simplicité je vous invite aussi fortement à ajouter le chemin vers votre SDK android dans votre terminal bash sur MacOS.

Dans un terminal exécuter les commandes suivantes à la racine de votre utilisateur :
touch .bash_profile
open .bash_profile

Ajouter la ligne correspondant à votre SDK Android en tête du fichier export PATH=$PATH=:/Users/John/Library/Android/sdk/tools

Enregistrer le fichier et fermez terminal

Configurer le partage SSH

Si vous faîtes du développement iOS depuis Visual Studio cette partie est normalement déjà faîte suite aux instructions fournies par Xamarin. Néanmoins en cas de doute, il suffit d’aller dans les paramètres systèmes et dans la partie « Partage », d’ajouter votre utilisateur à la liste des utilisateurs autorisés.

Network Sharing

L’hôte MacOS est maintenant prêt !

Préparation de la machine Windows

Pour la suite de ce billet, je part du principe que Visual Studio et Xamarin Android sont correctement installés sur Windows.

Plink

Plink est l’outil qui va nous permettre de créer un tunnel SSH entre Windows et MacOS. C’est ce tunnel qui sera utilisé par Windows pour communiquer avec le serveur ADB tournant sur le Mac.

Téléchargez-le sur le site de Putty.

Positionnez cet executable dans un dossier de votre choix.

Création des scripts

Afin de simplifier tout le reste du processus de connection nous allons créer deux scripts à héberger dans le même dossier que Plink dont voici le code source.

Windows Folder SSH

connect-to-mac.cmd

@echo off
"C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe" kill-server
plink -L 5554:localhost:5554 -L 5555:localhost:5555 -m mac-script.sh -l MyUserName -pw MyPassword 10.211.55.2

mac-script.sh

#!/bin/sh
/Users/John/Library/Developer/Xamarin/android-sdk-macosx/platform-tools/adb kill-server
read -p "Press any key to terminate SSH tunnel" anykey

Veillez à bien remplacer MyUserName et MyPassword par votre couple login/mot de passe utilisé sur le Mac par l’utilisateur que vous avez partagés précédemment.

Pensez également a modifier l’adresse ip utilisée dans le script par l’adresse ip de l’hôte Mac vu depuis votre machine virtuelle Windows. Vous pouvez trouver cette information dans votre Mac dans les paramètres systèmes.

Enfin, assurez-vous que les path vers les SDK Android sont corrects.

Network Config

La machine virtuelle Windows est maintenant prête !

Développons !

Maintenant que tout est prêt il va falloir faire les choses dans l’ordre.

Sur MacOS

Tout d’abord lançons l’émulateur Android. Pour celà on peux utiliser terminal et maintenant entrer la commande suivante :

emulator -avd AvdName

Le paramètre AvdName correspond au nom de votre AVD tel que vous l’avez choisi (voir captures au début de l’article).

Sur Windows

Lancez Visual Studio et exécutez le Script connect-to-mac.cmd

VisualStudio Avd

Si toutes les étapes précédentes ont été réalisés avec succès et que votre projet Xamarin actuel est un projet Xamarin Android vous pouvez maintenant voir dans votre Visual Studio l’émulateur du Mac apparaître.

 

 

Sources

Cet article se base sur les techniques montrés dans ces deux articles :

 

http://chrisriesgo.com/android-emulator-debugging-from-parallels-to-os-x/

https://msdn.microsoft.com/en-us/library/dn913137(v=vs.120).aspx

Pas de commentaire

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *