AIR Mobile – Application Pokémon (18) – Tester l'application sur Android
On a à présent une bonne version de notre application Pokémon, avec une vue liste, une vue de détail et la possibilité de naviguer entre les évolutions d'un certain Pokémon.
Il est venu le temps de tester notre application sur un vrai smartphone/tablette. En effet, cela peut nous permettre de détecter des erreurs dues à la taille de l'écran, à la résolution, au changement d'orientation, …
Pour commencer, on va tester sur un portable Android. Tout d'abord parce que c'est de loin le plus simple et parce que j'ai un Galaxy S sous la main
.
Création d'un certificat .p12 pour Android
La principale raison pour laquelle la publication Android est simple, c'est que vous n'avez pas à créer N certificats en 48 étapes pour 8 types de développement. Vous créez un certificat vous-même au format .p12, directement dans Flash Builder et vous pouvez l'utiliser aussi bien pour le développement que pour la production. Vous verrez que c'est le jour et la nuit par rapport à d'autres plate-forme, notamment iOS qui est bien plus complexe à mettre en oeuvre.
Rendez-vous dans les propriétés du projet (clic droit > Properties) puis dans Flex Build Packaging > Google Android:
Cliquez sur Create… puis entrez un publisher name et un password. Choisissez ensuite où sauvegarder ce fichier. Je vous conseille de le mettre dans votre application, dans un dossier "cert" par exemple et de ne pas le perdre.
C'est tout ce qu'il vous faudra comme certificat pour Android
Connexion d'un device Android par USB
Pour pouvoir effectuer le déploiement directement sur un mobile Android, il faut que celui-ci soit reconnu. Et pour qu'il soit reconnu, la plupart du temps il vous faudra installer les drivers "ADB interface". Testez quand même la ligne de commande d'après pour voir s'il y a besoin des drivers ou pas.
Ceux-ci peuvent être trouvés assez facilement sur le net, souvent sur le site du constructeur. Par exemple, pour un HTC Desire, les drivers sont là:
http://www.flex-tutorial.fr/2010/08/04/air-android-drivers-usb-pour-htc-desire-adb-interface/
Sinon, Flash Builder intègre certains des drivers dans :
C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.5\utilities\drivers\android
Donnez ce chemin quand Windows vous demande où sont vos drivers, cela peut fonctionner!
Pour tester si votre appareil est bien reconnu, ouvrez un invite de commande et naviguez vers:
C:\Program Files (x86)\Adobe\Adobe Flash Builder 4.5\sdks\4.5.1\lib\android\bin
Puis tapez "adb devices". Si vous avez réussi votre coup, vous aurez un numéro de série qui va s'afficher:
Lancement depuis Flash Builder
Une fois que votre device est bien détecté, rendez-vous dans Flash Builder. Sélectionnez votre projet puis Run > Run Configurations… Sélectionnez "Google Android" comme "Target Platform" puis "On Device":
Cliquez ensuite sur Run pour lancer l'application sur votre appareil Android. Idem pour Debug, rendez-vous dans Debug > Debug Configuration et suivez le même cheminement.
Si votre Debug n'arrive jamais à se connecter, pensez à ajouter Flash Builder aux exceptions de votre pare-feu.
Flash Builder 4 Burrito – Lancer son application directement sur device
Flash Builder 4 "Burrito" amène pas mal de facilités pour le développement d'applications mobile, notamment au niveau du build et du déploiement. Il est possible, en utilisant les nouvelles "Run Configurations" de lancer son application directement sur son mobile.
Démonstration avec mon nouveau Samsung Galaxy S qui est passé en Android 2.2 depuis quelques jours.
Préparer son Android à recevoir le debug
Avant de pouvoir lancer votre application en debug sur votre device, vous devrez configurer votre téléphone:
- Rendez-vous sur l'écran d'accueil et appuyez sur Menu > Settings > Application > Développement
- Débranchez votre câble USB s'il était branché
- Activez "Debogage USB"
- Rebranchez votre câble USB
Sous Windows, vous devrez peut-être installer des drivers comme ceux-ci pour le HTC Desire: http://www.flex-tutorial.fr/2010/08/04/air-android-drivers-usb-pour-htc-desire-adb-interface/
Windows vous dira peut-être qu'il a réussi à installer le driver mais celui-ci n'est pas suffisant pour faire du debug, il vous faut le "Android USB device driver".
Vérifier que son portable est bien détecté
Maintenant que vous avez fait les manipulations, on va s'assurer que votre portable est bien reconnu. Pour cela, on va utiliser l'outil adb faisant partie du SDK Android. Si vous avez déjà téléchargé le SDK Android, vous trouverez cet outil dans le dossier "bin" du SDK. Sinon, vous pouvez utiliser celui qui est intégré avec Flash Builder Burrito. Le mien se trouvait à l'emplacement suivant : C:\Program Files (x86)\Adobe\Adobe Flash Builder Burrito\eclipse\plugins\com.adobe.flexide.multiplatform.android_4.5.0.287807\resources\android_sdk\win\tools
Ouvrez un invite de commande (cmd) et rendez vous dans ce dossier puis tapez "adb devices". Votre device devrait s'afficher:
Trouver son identifiant matériel
Rendez-vous dans le Gestionnaire de périphériques Windows > Appareils Mobile. Votre mobile devrait être listé, clic droit > propriétés:
Rendez-vous dans l'onglet Détails puis dans le menu déroulant, sélectionnez "Numéros d'identification du matériel". Copiez (par click droit) celui qui ressemble à "USB\VID_0BB4&PID_0C02&MI_01":
Ajouter son portable à la liste des devices détectées
Il faut ensuite ajouter une entrée dans le fichier "android_winusb.inf qui se trouve dans C:\Program Files (x86)\Adobe\Adobe Flash Builder Burrito\utilities\drivers\android. Ouvrez ce fichier avec un éditeur de texte.
Vous y trouverez des lignes du type:
[Google.NTx86] ; HTC Dream %CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C02&MI_01
Copiez / collez ces lignes et remplacez par les infos de votre device, par exemple:
; SAMSUNG GALAXY S %CompositeAdbInterface% = USB_Install, USB\VID_0BB4&PID_0C02&MI_01
Lancer une application sur Galaxy S depuis Flash Builder Burrito
Pour cela, on va lancer une Run Configuration sur un projet de type "Mobile". Sélectionnez votre projet puis cliquez sur le menu déroulant à côté de l'icône Run:
Vous pouvez soit utiliser une configuration "Mobile" existante, soit en dupliquer une pour avoir à la fois le launcher Desktop et le launcher Device. Sélectionnez ensuite On Device. Vous pouvez maintenant lancer la Run Configuration, en cliquant sur Run.
Si votre mobile n'est pas reconnu, fermez Flash Builder 4, puis faites un "adb devices" pour lancer le daemon adb (voir plus haut).
Si vous avez lancé la configuration "Run", votre application devrait se lancer sur votre mobile. Si vous avez lancé la configuration debug, votre mobile va vous demander l'adresse IP de votre PC (il faut être sur le même réseau Wifi)
AIR pour Android – Drivers USB pour HTC Desire (ADB Interface)
Si vous souhaitez faire du développement Android avec votre HTC Desire, vous devrez connecter celui-ci à votre PC grâce au câble USB. Pour que l'outil "adb", qui fait partie du SDK Android, puisse détecter votre téléphone, il faut que les drivers USB de celui-ci soient installés. Grâce à "adb", vous pourrez transférer et installer les applications natives APK directement sur votre téléphone.
Lorsque vous allez brancher votre téléphone, il sera reconnu comme un nouveau périphérique et depuis le Gestionnaire de périphériques Windows, vous pourrez mettre à jour ses drivers. Avec mon HTC Magic, il m'avait suffit de pointer vers le répertoire "android-sdk-windows\usb_driver".
Mais une fois que j'ai branché mon HTC Desire, celui-ci n'était pas reconnu comme device par ADB. Il fallait donc que j'installe encore une fois les drivers USB.
Ceux-ci sont assez difficiles à trouver, c'est pourquoi je les met à disposition sur mon blog en téléchargement (download direct):
Télécharger les drivers USB ADB Interface pour HTC Desire sous Android
Dézipper cette archive et faîtes pointer la recherche de périphériques Windows sur ce répertoire. Votre HTC Desire sera ensuite correctement reconnu par ADB.
AIR pour Android – Créer une application Air pour Android (apk), le guide de A à Z
Air arrive sur Android, c'est officiel pour la version Froyo (2.2). Les chanceux qui ont un Nexus One peuvent déjà en profiter. Ceux qui ont un HTC (Desire, Legend, par exemple) sont encore au jour auquel j'écris cet article, en version Eclair (2.1) mais HTC a annoncé une release au 3e trimestre. En attendant, pas besoin de rester les bras croisés, vous pouvez commencer à développer dès maintenant.
Récupération du Adobe Air SDK 2.5
Pour compiler des applications Android natives (.APK), il vous faut la version 2.5 du SDK Adobe Air. Aujourd'hui, cette version ne peut être trouvée qu'en pre-release, aucune version release (production) n'est encore sortie.
La participation au programme de pre-release est gratuite. Pour cela, allez vous enregistrer à cette adresse:
Adobe® AIR® – Android Developer Prerelease
Bizarrement, ils n'ont pas utilisé les comptes Adobe, c'est dommage il va vous falloir remplir le formulaire
. Une fois enregistré, vous pourrez vous logger sur le site de pre-release d'Air 2.5:
A noter que dans mon cas, il a fallu quelques temps avant que je puisse me logger. Si cela ne fonctionne pas, attendez un peu
Allez ensuite dans la section "Download Software" du menu de gauche. Vous y trouverez les derniers builds du SDK Air et du Runtime Air pour Android:
Quand vous suivrez ce tutorial, il y aura peut-être de nouveaux Build. Prenez bien le dernier.
Vous allez arriver sur une page de téléchargement avec plusieurs items:
Si vous avez un portable supportant Froyo, vous pouvez normalement télécharger Adobe Air depuis le Market de votre téléphone. Si comme moi, vous avez un vieil Android, prenez l'apk destiné à l'émulateur (Air 2.5 Runtime – Emulator).
A noter qu'en premier lieu, Air était disponible pour Eclair (Android 2.1). Si vous voulez utiliser Adobe Air sur Eclair, télécharger un build antérieur au 6 Avril 2010. Les versions suivantes sont uniquement maintenues pour Froyo.
Personnellement, je suis sous Windows mais téléchargez ensuite le Air 2.5 SDK correspondant à votre OS.
Pour les détails d'installation et les derniers Changelog, allez dans la section Documentation et consultez les derniers documents.
Installation du SDK Air 2.5 sur un SDK Flex existant
Maintenant que vous avez téléchargé le SDK Air 2.5, il vous faut l'installer pour pouvoir l'utiliser. Le plus simple est de suivre la procédure décrite dans le document Developing_AIR_Apps_for_Android.pdf que vous trouverez dans le section Documentation. Pour ceux qui n'ont pas envie, voici la démarche.
- Si vous avez Flash Builder d'ouvert, fermez-le pendant la procédure.
- On va maintenant remplacer le SDK existant pour intégrer celui d'Air 2.5. Il est donc fortement conseillé de faire une sauvegarde de votre framework avant cette opération.
- Windows: C:\Program Files\Adobe\Adobe Flash Builder 4\sdks\3.5.0
- Mac OS: /Applications/Adobe Flash Builder 4/sdks/3.5.0
- Dézippez l'archive que vous avez téléchargé plus haut (AIR25_win_sdk_XXXXXX.zip ou AIR25_mac_sdk_XXXXXX.tbz2)
- Copiez tous les fichiers de l'archive, dans le répertoire du SDK Flex et remplacez les fichiers quand il est nécessaire
- Sous Mac, dans un terminal, rendez vous dans le dossier racine du SDK Flex puis lancez la commande:
- tar jxvf AIR25_mac_sdk_XXXXXX.tbz2
- Si vous avez des problèmes de droits, lancez le tout en administrateur:
- sudo tar jxvf AIR25_mac_sdk_XXXXXX.tbz2
L'installation du SDK Air 2.5 est terminée
Préparation de l'émulateur Froyo
On va maintenant faire l'installation de l'émulateur Froyo pour pouvoir tester son application. Bien sûr, si vous avez un portable équipé de Froyo, sautez cette étape.
L'émulateur faire partie du SDK Android que vous pouvez télécharger à cette adresse:
Dézippez l'archive que vous venez de télécharger et copier là sur votre disque (F:\android-sdk-windows dans mon cas). Lancez SDK Setup.exe si vous êtes sous Windows ou rendez-vous dans le répertoire "tools" et lancez "Android" sous Mac. Quelques fenêtres DOS plus tard, on va vous proposer de télécharger la dernière version du SDK en date (2.2, ici):
Choisissez Accept All puis Install. C'est plutôt long, peut-être que vous n'avez pas besoin de tout télécharger. Mais bon, vous pouvez passer à la partie suivante pendant le temps de téléchargement si vous le souhaitez
.
Une fois le tout installé, rendez-vous dans Virtual Devices puis cliquez sur "New…":
Entrez un nom genre "Emulator" et choisissez comme Target, Android 2.2:
Vous pouvez ajouter du hardware émulé si vous le souhaitez puis cliquez sur Create AVD. Plus vous mettez de RAM allouée, plus le temps de création sera long.
OpenPlug: Déploiement d'une application sur un portable Android (sous Windows XP et 7)
Tout d'abord, je vais réviser un peu mon avis sur OpenPlug d'hier. Il faut en fait s'y intéresser un peu plus et apprendre à s'en servir, j'ai sûrement fait une review un peu rapide
. Après avoir regardé dans les grandes lignes, les autres "framework" permettant de créer des applications mobiles natives multi-plateforme (pas sur un base Flex, mais sur une base HTML/JS/CSS), je me suis aperçu qu'il existait 3 grandes options:
- Appcelerator: Cela semble mature, avec un bon packaging, un très beau site internet, sous licence MIT. Compatible seulement avec Android et iPhone
- PhoneGap: Moins impressionnant, sous licence MIT, sens le projet qui va couler. Compatible avec Android, iPhone et BlackBerry
- Rhomobile: L'alternative commerciale. Supporte iPhone, BlackBerry, Windows Mobile, Symbian, Android. Avec en bonus, des outils de synchronisation et autres (payants).
Bref, du bon et du moins bon et il reste que je n'ai pas envie de faire du JavaScript en attendant Flex Slider ou FP 10.1 sur Android. OpenPlug mérite donc que je m'y intéresse de plus près, ce que je vais faire.
Déploiement d'une application Android
On revient à ce tutorial qui va vous expliquer en détail comment déployer une application Android (.APK) sur votre téléphone. C'est ce que j'ai du faire pour pouvoir transférer l'application générée par OpenPlug vers mon HTC Magic G2. Comme je l'ai fait à cheval entre mon taff (Windows XP) et chez moi (Windows 7 64 bits), vous aurez même la résolution de quelques problèmes qui n'arrivent que sur certains OS.
Vu que j'ai passé quelques heures à chercher le pourquoi du comment sur de nombreux forums / docs, je pense que cela va vous sauver du temps si vous tentez de faire la même chose.
Création de l'application Android avec Elips
Pour créer votre première application avec Elips (OpenPlug), inscrivez-vous sur leur site, allez dans la section développeur et téléchargez l'installeur. L'installation se passe très normalement, rien à expliquer à ce niveau là. Ensuite, suivez le tutorial pour le développement d'une application sous Windows Mobile (arrêtez-vous avant le déploiement du .cab quand même).
Avant de pouvoir compiler votre application en natif (.apk), il va vous falloir une clé développeur Android (obligatoire pour la compilation). C'est un peu comme les certificats que l'on génère pour les applications Air, vous pouvez en créer un pour vos besoins de développement.
Génération d'une clé Android privée (keystore)
Pour générer votre clé, vous allez avoir besoin d'un utilitaire nommée "keytool". Celui-ci se trouve dans le SDK Android que vous pouvez télécharger ici:
Voici ensuite les grandes étapes à suivre:
- Télécharger le SDK Android
- Dézipper dans un répertoire (à la racine du C: par exemple)
- Ajouter une variable au PATH (variables d'environnement Windows): (C:\android-sdk-windows\tools)

- OK, OK, Appliquer, on ferme tout
- Ouvrir un invité de commande (Démarrer > Exécuter > cmd)
- Taper "keytool", une liste de commande devrait apparaitre. Si oui, l'installation et la configuration du SDK Android sont OK, sinon revenir en arrière.

- Générer un clé . Pour cela, voici les arguments essentiels de la commande:
- -keystore: Nom de votre fichier .keystore qui va contenir votre clé
- -alias: Nom par lequel vous allez référencer votre fichier
Vous aurez donc quelque chose comme:
keytool -genkey -v -keystore flextut-key.keystore -alias flextut -keyalg RSA -validity 10000
- Le mot de passe de votre clé vous sera demandé. Choisissez un mot de passe difficile (plus de 6 caractère obligatoirement). Pour la suite, le mot de passe sera "flextutorial"

- Tapez deux fois le mot de passe souhaité (il ne sera pas affiché à l'écran par sécurité, tapez sur Entrée pour valider)
- D'autres informations vous seront demandées pour compléter l'opération (nom / prénom, organisation, location, …)
- Quand on vous demandera de confirmer ces dernières instructions, tapez "oui"
- Appuyez sur Entrée quand on vous redemandera votre mot de passe
- La console devrait normalement indiquer [Stockage de flextut-key.keystore]

Votre clé (un fichier .keystore) sera conservée dans votre répertoire utilisateur (C:\Users\fab par exemple sous Windows 7). Vous en avez fini avec la génération de la clé.
Compilation de votre application Flex pour Android
Grâce à votre clé (fichier .keystore), vous pouvez maintenant créer tranquillement vos application pour Android. Pour la compilation, vous pouvez suivre le tutorial d'OpenPlug. C'est assez simple, il faut aller dans les propriétés du projet, dans Elips3 > Targeted Devices. Sélectionnez "Generic Android" et cliquez sur "Edit By Platform". Dans la fenêtre qui s'ouvre, remplissez les 4 paramètres concernant la clé que vous avez généré (son chemin, son alias, son mot de passe (deux fois)):

Vous pouvez ensuite lancer le packaging. Si tout se passe bien, vous devriez avoir un fichier .apk. Pour l'emplacement de ce fichier, regardez ce qui est écrit dans la console, elle vous indique le chemin.


















