27 août 2012

Utiliser un smartphone pour debugger vos applications mobiles Android

Depuis le lancement de son système d'exploitation mobile et du kit de développement associé, une des priorités de Google était de fournir aux développeurs, un environnement de développement Android optimal. La dernière version du SDK Android le montre avec les performances de l'émulateur qui ont été grandement améliorés. Mais pour tout développeur rien ne vaut un appareil réel pour tester toutes les fonctionnalités de son application mobile  et profiter du matériel du téléphone (accéléromètre, GPS etc..).


Cessez donc de vous lamenter voici comment résoudre ce "petit" problème et surtout comment vous simplifier vos tests d'applications mobiles.

Configurer un smartphone pour le debug USB Android

Normalement tous les appareils sous le système d'exploitation Android proposent dans les options, d'activer un mode débuggage pour vous permettre de tester les applications que vous développez. Pour activer ce mode, rien de plus simple,
 Aller dans Paramètres -> Applications -> Développement
cocher la case Débogage USB et pour éviter d'avoir à déverrouiller systématiquement votre téléphone Android, cocher aussi l'option Resté activé.

Référez-vous à la capture ci-contre pour visualiser l'écran correspondant

Votre Smartphone Android est prêt à faire tourner vos applications. Encore faut-il que celui-ci soit reconnu par votre ordinateur. Voici donc pour les trois systèmes d'exploitation phares, la procédure à effectuer pour que votre smartphone soit reconnu.

 

 

 

Faire reconnaître son smartphone par l'ordinateur

Sans plus tarder, lançons nous dans la configuration de nos machines de développement. La procédure est différente, que l'on soit sous Windows, Mac OS ou une variante de linux comme Ubuntu. Il faudra suivre les instructions correspondants à votre système.

Installer les drivers Android pour Windows

L'installation des drivers de smartphones Android pour Windows est plutôt simple. Lancer l'Android SDK Manager via Eclipse :
Cliquer sur Windows -> Android SDK Manager  ou sur le petit bouton vert pour ceux qui ont l'habitude.

Après le lancement de la fenêtre correspondante, parcourir les dossiers présents jusqu'au dossier "tools",  cocher la case Google USB Driver puis cliquer sur Install Packages...



Branchez votre smartphone, celui-ci sera dorénavant automatiquement reconnu par votre ordinateur.

Configurer votre Mac pour Android

Pour les utilisateurs de MAC, la procédure est légèrement différente puisqu'il n'y a rien a faire, les smartphones étant automatiquement reconnu par Mac OS. (insérer un troll poilu à la fin de cette phrase.)

Ajouter des règles de détection de smartphone Android pour Linux  

Faire reconnaître son terminal Android par Linux est un peu plus "compliqué" mais si vous êtes sous Linux, vous avez peut-être déjà saisi une ligne de commande dans un terminal. Si ce n'est pas le cas, vous en aurez l'occasion dans quelques secondes.

En fait sous Linux tous les périphériques USB sont reconnus par le système mais ne sont pas forcément accessibles par celui-ci. Nous allons donc ajouter des règles de détection pour la majorité des Smartphones Android du marché, en commençant par le votre bien entendu.
Pour commencer, lancer un terminal et saisir la commande suivante:

sudo gedit /etc/udev/rules.d/51-android.rules

Votre mot de passe root vous sera demandé, saisir celui-ci et attendre l'ouverture du fichier texte de configuration.

Entrer la ligne suivante correspondant au téléphone

SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev", sauvegarder et fermer le fichier.

Détaillons un peu les informations saisies.

SUBSYSTEM=="usb": Indique au système que le périphérique est sur une prise USB.

ATTR{idVendor}=="0bb4": Le code 0bb4 correspond au code constructeur. C'est ce code que vous devrez modifier pour correspondre à votre téléphone.

Vous vous demandez sûrement comment trouver ce code? Deux options s'offrent à vous. Soit vous aimez les lignes de commandes, et vous n'avez qu'a saisir la commande lsusb dans un terminal.

Une liste de périphériques USB s'affiche dans le terminal. Repérer le périphérique qui correspond au téléphone,   Les quatre premiers caractères qui suivent l'ID de votre appareil sont ceux qui vous doivent être entrés comme code vendeur.

Ça m'a l'air assez confus tout ça. Mais vous pourrez vous référer à la capture ci-dessous.



Si cette procédure vous semble trop longue, vous pouvez aussi vous rendre sur le site Android Developpers et récupérer les codes qui sont gracieusement fournis par Google.

MODE="0666" Le mode spécifie les permissions de lecture et écriture sur le périphérique.

GROUP="plugdev": Spécifie le groupe utilisateur auquel appartient le périphérique.



A partir de là, il ne vous reste plus qu'a exécuter la commande sudo chmod a+r /etc/udev/rules.d/51-android.rules dans un terminal pour finaliser la configuration.


Votre Smartphone est enfin prêt et pourra être reconnu par tous les systèmes d'exploitations pour pouvoir déboguer vos applications sur un appareil physique.

Avant de lancer une application sur le terminal, nous allons rendre cette appli mobile debuggable.

Configurer votre application pour être debuggable 

En partant du principe que vous savez déjà comment créer un projet Android sous Eclipse, vous allez ouvrir le fichier AndroidManifest.xml et coller ce code android:debuggable="true" comme sur la capture et sauvegarder le tout.



C'est enfin terminé, votre ordinateur, votre smartphone et votre application Android sont prêts pour effectuer un debug. Dorénavant, quand votre téléphone sera connecté à l'ordinateur, celui-ci vous sera proposé comme machine de test en plus des émulateurs Android que vous aurez créée.