Navigation

Contactez-nous

Kitpages
17 rue de la Frise
38000 Grenoble
tel : 04 58 00 33 81

Par Philippe Le Van (twitter accountplv) Dernière mise à jour : 07 February 2013

PhoneGap et le SDK android en ligne de commande sous Linux

Introduction

Cette page fait partie du cycle "Dossier PhoneGap".

Nous montrons comment installer PhoneGap et le SDK android sur un Linux et comment créer une application hello world.

Pourquoi en ligne de commande ?

Entre un code HTML / JS commun à toutes les plateformes et le package spécifique déployé sur chaque plateforme, il y a pas mal d'étapes à suivre (voir la page "Dossier PhoneGap").

Faire tout en ligne de commande permet d'automatiser une bonne partie de ces étapes. Dans le cas du SDK android, ça permet aussi de s'affranchir de Eclipse, ce qui (à mon sens) simplifie le processus et permet de comprendre ce qu'on fait.

Installer le JDK 6 et ant

Java

# télécharger l'installateur
cd /usr/local/src
wget _le_fichier_bin_
chmod a+x jdk-6u21-linux-i586.bin
./jdk-6u21-linux-i586.bin

# déplacer dans /usr/local
mv jdk1.6.0_21 /usr/local
cd /usr/local

# créer un lien symbolique /usr/local/java
ln -s jdk1.6.0_21 java

Ant

# télécharger et décompresser l'archive binaire (la dernière version dispo)
cd /usr/local/src
wget http://apache.cict.fr//ant/binaries/apache-ant-1.8.1-bin.tar.gz
tar zxvf apache-ant-1.8.1-bin.tar.gz

# déplacer dans /usr/local
mv apache-ant-1.8.1 /usr/local/
cd /usr/local

# créer un lien symbolique indépendant de la version
ln -s apache-ant-1.8.1 ant

Configurer les variables d'environnement

# sous centos, vous pouvez éditer le fichier /etc/profile et
# ajouter (là où c'est pertinent) les lignes suivantes
# sinon ajouter les java/bin et ant/bin dans le $PATH
pathmunge /usr/local/java/bin
pathmunge /usr/local/ant/bin
export JAVA_HOME="/usr/local/java"

Installer le SDK Android (sans eclipse)

Télécharger le SDK

Télécharger l'archive dans à l'adresse : http://developer.android.com/sdk/index.html

Aller dans "DOWNLOAD FOR OTHER PLATFORMS" > "SDK tools only" et télécharger la version Linux qui vous convient.

# téléchager le SDK
wget http://dl.google.com/android/android-sdk_r21.0.1-linux.tgz

# décompresser l'archive
tar zxvf android-sdk_r21.0.1-linux.tgz

# aller dans le sdk
cd android-sdk-linux/

# télécharger la base de terminaux et pas mal de trucs...
tools/android update sdk --no-ui
# (soyez patient, c'est longuet...)

Configurer les variables d'environnement

# éditer votre /etc/profile et ajouter les lignes suivantes 
# afin de modifier votre $PATH
pathmunge /home/webadmin/eclipse/android-sdk-linux/tools
pathmunge /home/webadmin/eclipse/android-sdk-linux/platform-tools

Installer PhoneGap - Android

Télécharger le zip sur :

http://cordova.apache.org/#download

Puis suivre les opérations suivantes :

# décompresser l'archive
unzip cordova-2.3.0-src.zip
cd cordova-2.3.0
mkdir android
cd android
unzip ../cordova-android.zip

Créer une application de test

# tester la création d'une application cordova pour android
# ./create <project_folder_path> <package_name> <project_name>
# exemple :
cd _repertoire_de_cordova_/android/bin
./create /home/webadmin/eclipse/cordova-test/helloworld \
    com.kitpages.HelloWorld \
    KitpagesHelloWorld

Générer le package android ".apk"

# aller dans le répertoire de l'application
cd /home/webadmin/eclipse/cordova-test/helloworld

# lancer la compilation
ant debug

# le package généré est : bin/KitpagesHelloWorld-debug.apk

Simuler le package

Créer un terminal virtuel

Avant de lancer une simulation, il faut lancer un terminal virtuel. Cette opération peut se faire avec le programme "tools/android", dans le SDK android.

Vous trouverez plus d'options sur la page "Managing AVD from the command line".

Voyons quelques exemples d'utilisation de ce programme.

# afficher la liste des commandes
./android -help

# afficher la liste des terminaux virtuels
./android list avd

# obtenir l'aide sur la création d'AVD
./android create avd -help

# Créer un AVD
# name : nom du terminal virtuel
# target android-17 = c'est un android 4.2 - API Level 17
# skin: permet de sélectionner la résolution et quelques caractéristiques du téléphone
# abi : définit le processeur sur lequel tourne le terminal
# path : chemin dans lequel on enregistre le terminal virtuel
./android create avd \
    --name LinuxPhone \
    --target android-17 \
    --skin WVGA800 \
    --abi x86 \
    --path /home/webadmin/eclipse/_android/avd/LinuxPhone

On obtient le résultat suivant

Android 4.2 is a basic Android platform.
Do you wish to create a custom hardware profile [no]
Created AVD 'LinuxPhone' based on Android 4.2, Intel Atom (x86) processor,
with the following hardware config:
hw.lcd.density=240
vm.heapSize=48
hw.ramSize=512

Lancer l'émulateur

On lance l'émulateur en ligne de commandes avec le terminal virtuel qu'on vient de créer.

# dans le répertoire tools du SDK
./emulator -avd LinuxPhone

Installer le package .apk sur le terminal

Maintenant que l'émulateur est lancé, il faut installer notre application dessus.

Pour cela on utilise l'outil "adb" qui est dans sdk/plateform-tools.

# installer l'application
adb install _application_de_test_/bin/KitpagesHelloWorld-debug.apk

Lancer l'application

Pour lancer l'application, il faut utiliser le terminal dans l'émulateur et lancer le programme comme un utilisateur classique.

Conclusion

L'environnement de dev pour faire des applis mobiles avec des technos web est assez complexe, mais c'est une étape imposée.

Dans les tutos à venir nous allons voir :

  • Comment tester sur un vrai terminal
  • Comment faire quelques applications de base
  • Comment automatiser la génération des packages
  • Intégrer nouveaux terminaux dans le flux général (iOS, Win 8, FirefoxOS...)

N'hésitez pas à utiliser les commentaires pour compléter ce tutoriel.

Commentaires

Ajouter un commentaire
Excellent post. I was checking constantly this blog and I'm inspired!
Very helpful information particularly the ultimate section :
) I maintain such info a lot. I was seeking this certain information for 
a very long time. Thanks and good luck.
Re: oui, mais...
Pour l'exemple, ça clarifiait les choses de se fixer sur une plateforme, mais effectivement c'est adaptable sans problème sur mac et windows.

Effectivement pour iOS, c'est mac obligatoire, et je n'ai pas encore regardé comment on pouvait scripter xcode...
oui, mais...
une introduction sympathique à cette dernière version de Phonegap. Toutefois cette procédure est tout aussi valable sur Os X, sur Windows, le truc est légèrement plus contraignant...
par contre l'intégration de nouveaux terminaux Ios n'est possible que sur Mac...
Continuez !
Bonjour, pas grand chose à dire si ce n'est que ce genre d'information est très utile pour nous autres allergiques aux IDE qui voulons tout de même nous mettre au dev mobile. C'est bookmarké et j'y reviendrais. Bon courage pour les articles suivants !