Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

Utiliser les émulateurs B2G

Cet article est un guide succinct qui décrit les choses à savoir si vous décidez d'utiliser les émulateurs Boot to Gecko. Il ne prétend pas à être un guide de l'utilisateur complet ; il vous présente seulement quelques petits trucs à savoir que vous ne pourriez peut-être pas découvrir par vous-même.

Ce guide part du principe que vous avez déjà compiler un des émulateurs. Si ce n'est pas le cas, vous pouvez vous référer à la page Compiler et installer Firefox OS !

À propos des émulateurs B2G

Il existe deux émulateurs B2G. Le premier est un émulateur ARM qui est compilé lorsque l'on configure config.sh avec le champ "emulator". Même si c'est plus lent que d'utiliser directement un processeur x86, c'est tout de même une représentation plus stable et plus précise du fonctinnement d'un terminal réel. Utiliser le champ "emulator-x86" lorsque l'on lance config.sh permet d'utiliser l'émulateur x86.

Note : Depuis quelques mois la Team Automation a arrêté d'utiliser l'émulateur x86 à cause de problèmes de stabilité. Il y a donc de grandes chances que cela ne marche pas du tout avec l'émulateur x86. Utilisez l'emulateur ARM à moins d'avoir une bonne raison de faire autrement.

Une fois que vous avez sélectionné, configuré et compilé un émulateur, le reste marche de la même façon donc le reste de ce guide est commun pour les deux.

Note : Sur Mac OS X, l'émulateur BG nécessite un processeur Core 2 Duo ou plus récent, c'est-à-dire un système compatible avec Mac OS X 10.7 "Lion." Vous n'avez pas besoin d'utiliser Lion, juste d'être compatible avec.

Démarrer l'émulateur

Pour démarrer l'émulateur B2G, tapez la commande suivante :

./run-emulator.sh

Cela va prendre en charge toutes les étapes du démarrage. Maintenant attendez pendant que l'émulateur démarre et que Boot to Gecko démarre dessus. Cela peut prendre plusieurs minutes, donc soyez patient.

Quand l'émulateur ne marche pas

Parfois l'émulateur ne réussi pas à démarrer. Voici quelques astuces pour résoudre les problèmes.

Utilisez-vous une VM ?

VirtualBox et Parallels ont un support de l'accélération graphique problématique qui peut causer l'échec du démarrage de l'émulateur, quelque chose à propos d'un terminal OpenGL. L'émulateur commence à démarrer, et redémarre en boucle ou démarre mais n'affiche rien sur l'écran. Il n'y a malheureusement pas de solutions (il y a un moyen détourné pour VirtualBox). Vous devez utiliser VMWare Player (Freeware), Workstation ou Fusion. Pour VirtualBox, n'installez pas les Guest Addons ou ne désactivez pas le module vboxvideo.

Assurez-vous que le serveur adb est lancé

Cela arrive lorsque le serveur adb qui prend en charge l'interaction avec l'émulateur soit n'est pas lancé, soit a mal fonctionné. Dans ce cas vous pourrez voir le message d'erreur suivant dans le terminal où vous avez lancé l'émulateur : 

emulator: control console listening on port 5554, ADB on port 5555
emulator: can't connect to ADB server: Connection refused

Note : Si vous utilisez l'adb compilé par le processus de compilation de B2G (ce qui est probablement le cas), il est situé dans le dossier $B2G/out/host/<platform>/bin. Sur Mac, c'est le dossier $B2G/out/host/darwin-x86/bin, par exemple.

Regardez si adb est lancé avec : 

ps aux | grep adb

S'il y est tuez-le avec la commande suivante parce qu'il ne marche sans doute pas correctement.

adb kill-server

S'il ne l'est pas faites ceci :

adb start-server

Ensuite tentez de relancer l'émulateur. S'il ne marche toujours pas allez sur #b2g sur irc.mozilla.org pour de l'aide (en anglais).

Effacer les options de configuration

Parfois, des options de configurations obsolètes de l'émulateur peuvent causer un mauvais comportement. Vous pouvez supprimer la Base de Données IndexedDB pour résoudre le problème, comme ceci :

  1.  Assurez-vous que le service adb est démarré, comme décrit ici.
  2. Démarrez l'émulateur.
  3. Dans le terminal sur l'ordinateur hôte, allez à la racine du code de B2G pour votre émulateur et tapez : out/host/<platform>/bin/adb -e shell ; sur Mac ce serait out/host/darwin-x86/bin/adb -e shell.

  4. Maintenant que vous êtes dans le shell adb, vous pouvez exécuter des commandes shell sur votre émulateur. Maintenant stoppez B2G sur l'émulateur : stop b2g.

  5. Supprimez la Base de Données IndexedDB : rm -rf /data/local/indexedDB.

  6. Redémarrez B2G sur l'émulateur : start b2g.

 Espérons que vous vous retrouverez avec l'interface de Gaia et tout ira bien.

Si l'émulateur démarre mais que l'écran est noir avant ou après le splash screen "mozilla technology"

Si cela arrive, c'est peut-être un bogue de pilotes sur la machine qui fait tourner l'émulateur. Cela a été observé sur le pilote Linux open source nouveau. La solution la plus simple est de changer le pilote sur la machine. Dans le cas du pilote nouveau, cela peut-être d'installer un pilote propriétaire ("additionnel" dans Ubuntu) à la place. Dans le cas de chipsets graphiques embarqués Intel graphics, le pilote Linux open source par défaut peut causer une erreur de l'émulateur de type 'eglMakeCurrent failed' dont la source semble le fait qu'il supporte une version d'OpenGL plus faible que la version 2.0 nécessaire pour l'émulation du GPU. La solution consiste à désactiver le GPU en éditant le script run-emulator.sh (l'émulateur sera plus lent).

Configurer l'émulateur

Il y a plusieurs options que vous pouvez changer pour que l'émulateur ressemble au terminal que vous voulez émuler. Cette section vous fournit des informations de base sur la façon de faire. Vous pouvez modifier la configuration de l'émulateur en éditant le script run-emulator.sh. Ou, idéalement, une copie. Seulement une partie des paramètres les plus utiles seront abordés ici. Vous pourrez aller sur le site de quemu pour obtenir des détails sur les autres.

Astuce : Créez une copie de run-emulator.sh pour chaque terminal que vous voulez émuler. Cela permet d'utiliser plusieurs configurations différentes facilement.

Changer de skins

Par défaut, l'émulateur démarre en mode HVGA, half-VGA mode, soit 320x480 pixels. Cela est spécifié par le paramètre -skin donné à l'émulateur lorsqu'il démarre. Vous pouvez passer à un mode d'affichage différent en éditant le script run-emulator.sh (ou, idéalement, une copie). Les skins fournis sont :

  • HVGA (320x480)
  • QVGA (240x320)
  • WQVGA (240x400)
  • WQVGA432 (240x432)
  • WSVGA (1024x600)
  • WVGA800 (480x800)
  • WVGA854 (480x854)
  • WXGA720 (1280x720)
  • WXGA800 (1280x800)

 Les skins sont situés dans le dossier $B2G/development/tools/emulator/skins. Un skin est plutôt simple, si vous regardez, il sont simplement des dossiers avec des fichiers PNG pour les objets de l'interface et un fichier texte nommé layout qui décrit l'agencement de l'interface et de l'écran. Il est plutôt simple de créer vos propres skins si besoin.

Changer la taille de la mémoire

Une autre option que vous pouvez ou devez configurer est la taille de la mémoire de l'émulateur. Par défaut elle est de 512 Mo, mais si le terminal que vous émulez à plus ou moins de mémoire, il est important que vous mettiez la bonne quantité de mémoire pour vous assurer que votre application tournera dans le terminal de base sur lequel vous voulez travailler. Pour cela, changez la valeur du paramètre -memory à la taille dont vous avez besoin en mégaoctets. En plus de 512 Mo par défaut, 256 Mo et 1024 Mo seront celles que vous utiliserez le plus probablement pour tester.

Pour changer la quantité de stockage émulé (c'est-à-dire, l'espace de stockage pour les données locales, comme la mémoire flash sur les téléphones moblies ou le disque dur d'un ordinateur), changez la valeur du paramètre -partition-size Par défaut il est de 512 Mo, mais vous pouvez spécifier n'importe quelle taille en mégaoctets pour simuler le type de terminal pour lequel vous devez tester.

Connexion réseau

Si pour certaines raisons vous ne pouvez pas connecter l'émulateur à internet, vous pouvez lancer la commande suivante depuis votre terminal :

adb shell setprop net.dns1 10.0.2.3

Si vous utilisez emulator-jb ou emulator-kk, la commande pour paramètrer le serveur DNS est différente :

adb shell ndc resolver setdefaultif eth0
adb shell ndc resolver setifdns eth0 10.0.0.0 10.0.2.3
 
 

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : jwhitlock, Goofy, lecorsedegironde, PetiPandaRou
 Dernière mise à jour par : jwhitlock,