Page 1 sur 45
Processing pour Android
Développer sur Android avec
Processing
1
Auteur : jerome.cantaloube@gmail.com
Page 2 sur 45
Processing pour Android
Processing permet de créer facilement ses propres applications sur
Android
2
Page 3 sur 45
Processing pour Android
SOMMAIRE :
1) Présentation de la plate-forme Android.
2) Présentation de l’outil de programmation Processing.
3) Configurer Processing et Android.
4) Initiation à Processing.
5) Créer ma première application.
L’objectif de ce cours est de fournir assez de matière et de motivation pour
susciter l’envie de continuer l’exploration de la plate-forme Android et du
langage de programmation Processing.
3
Page 4 sur 45
Processing pour Android
1. Présentation de la plate-forme Android :
Android est un système d’exploitation “open source” à destination des mobiles.
Il est basé sur Linux avec une interface de programmation Java.
La kit de développement (SDK) fourni est composé :
• d’un compilateur
• d’un debugger
• d’un émulateur.
Les applications (micro-logiciel) Android sont contenues dans des fichiers .apk (Android
Package)
Pour en savoir plus : http://www.tbray.org/ongoing/When/201x/2010/11/14/What-Android-Is
4
Page 5 sur 45
Processing pour Android
1.1. Architecture interne :
5
Applications de base non
modifiables par le
développeur Applications
configurables par le
développeur
Librairies utilisables par
le développeur
Gestion matérielle
(drivers)
Gestion des
applications
Page 6 sur 45
Processing pour Android
1.2. Dalvik Virtual Machine :
Dalvik est une machine virtuelle (VM)
Dalvik est conçue pour faciliter l'exécution simultanée de plusieurs applications.
Avec Dalvik, 1 processus = 1 VM :
• Ainsi on garanti l'isolation des processus entre eux et avec le système
• une activité ou un service plante ? un seul processus plante
• la VM plante ? un seul processus disparaît
Pour en savoir plus : http://www.youtube.com/watch?v=ptjedOZEXPM
6
Page 7 sur 45
Processing pour Android
1.4. Compatibilité matérielle :
Pour être compatible avec l’OS Android 2.1, l’appareil doit être équipé :
• Affichage (Minimum QVGA 240x320 avec orientation portrait et paysage)
• Clavier (virtuel) et écran tactile (pas nécessairement multitouche).
• Touches de navigation (Home, menu and retour)
• USB (USB-A) et WIFI (minimum 200Kbit/sec)
• Caméra, Accéléromètre (3-axes), Gyroscope (3-axes) et GPS
• Téléphone
• Mémoire et stockage (mini 92Mb pour le kernel, 150Mb non-volatile pour
les données utilisateurs)
• Stockage des applications (mini 2GB).
7
Page 8 sur 45
Processing pour Android
1.5. Les fabricants :
HTC, Samsung, Motorola, LG, Sony Ericsson...
Pour avoir la liste complète : http://www.androphones.com/all-android-phones.php
8
Page 9 sur 45
Processing pour Android
1.6. Android Market :
Android Market est un site web développé par Google à destination des
appareils Android.
Une application appelée "Market" est pré-installée sur
tous les appareils Android et permet aux
utilisateurs/développeurs de fournir ou de télécharger
des applications publiées par d’autres développeurs et
stockées sur Android Market.
9
Page 10 sur 45
Processing pour Android
2. Présentation de Processing :
Processing est environnement de programmation « open source » pour ceux
qui veulent créer des images, des animations et des interactions.
Initialement développé pour servir de portfolio informatique et enseigner les
principes de base de la programmation dans un contexte visuel, Processing
s'est développé pour devenir un véritable outil professionnel.
Aujourd'hui, des dizaines de milliers d'étudiants, des artistes, des designers,
des chercheurs et les amateurs utilisent Processing.
10
Page 11 sur 45
Processing pour Android
2.1. Processing c’est légé !
Un Environnement de Développement minimaliste
(appelé PDE), qui facilite la prise en main
Un langage de programmation proche du Java
11
Page 12 sur 45
Processing pour Android
2.2. Processing c’est facile !
Processing a été créé avec pour but de faire de la programmation accessible à
tous, pour créer des graphismes, des interactions.
12
Page 13 sur 45
Processing pour Android
2.3. Processing c’est flexible !
Processing peut traiter n’importe quel type d’information.
13
Page 14 sur 45
Processing pour Android
2.4. Processing c’est modulaire !
Processing c’est aussi pour le développement Web, hardware, ...
14
Page 16 sur 45
Processing pour Android
2.6. Librairies Processing
Plus de 100 librairies externes développées par la communauté :
16
Page 17 sur 45
Processing pour Android
3. Configuration de Processing et d’Android :
L'Android SDK (Software Development Kit) inclut un jeu complet d'outils :
• Debuger
• Bibliothèques
• Emulateur
• Documentations, exemples de codes et tutoriels.
Multiplateforme : Linux, MACOS, Windows.
Officiellement, l'environnement de développement intégré (IDE) est Eclipse
=> Processing est nettement plus facile à prendre en main qu’Eclipse
17
Page 18 sur 45
Processing pour Android
3.1 Installer Android SDK
Installer dans un premier temps le JDK (Java Development Kit) :
http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u3-download-1501626.html
Télécharger le Android SDK à partir site officiel.
Nous allons traité uniquement la version pour Windows.
Télécharger le fichier : installer_r16-windows.exe.
Pour plus d’informations :
http://developer.android.com/sdk/installing.html
18
Page 19 sur 45
Processing pour Android
Lancer l’Android SDK et télécharger
les modules suivants :
19
En fonction de votre
appareil Android
Installer aussi le module USB driver
(attention à liste des appareils supportés, voir détail :
http://developer.android.com/sdk/win-usb.html)
Télécharger, si besoin, le driver de votre appareil :
http://developer.android.com/sdk/oem-usb.html
Page 20 sur 45
Processing pour Android
Ajouter une variable d’environnement :
20
Sous Windows, clic droit sur Mon
Ordinateur (Mon poste de travail),et
sélectionner Propriétés.
Sur l'onglet avancé, appuyez sur le
bouton variable d'environnement.
Dans la boite de dialogue qui arrive ,
double-clic sur la variable système
Path.
Allez à la fin de la ligne, ajoutez un
point virgule " ; " suivi du chemin
complet du répertoire exemple :
C:\Android\android-sdk\tools" à la
variable système Path.
(conseil : rebooter Windows)
Page 21 sur 45
Processing pour Android
3.2 Configurer Android AVD
Andoid AVD (Android Virtual Device) est l’émulateur qui va nous servir par la suite à tester nos
programmes.
Lancer l’outil “Manage AVDs...”
21
Page 22 sur 45
Processing pour Android
Créer (New...) votre propre AVD en fonction de votre appareil puis lancer l’émulation (Start...)
22
Page 23 sur 45
Processing pour Android
23
Attention cela
prend quelques
minutes avant que
l’émulateur soit
complètement
lancé.
Page 24 sur 45
Processing pour Android
3.3 Installer Processing
A l’heure actuelle, la version de Processing qui prend en charge
Android est la 2.0b3 (http://processing.org/download/)
Une fois installé mettre Processing en mode Android :
24
Un message apparait pour créer
une variable d’environnement
ANDROID_SDK, cliquer sur oui
et indiquer l’emplacement du
fichier demandé
Page 26 sur 45
Processing pour Android
3.4 Tester l’émulateur Android
Nous allons réaliser notre premier programme (“sketch”) afin de tester l’émulateur.
Code de test :
void setup() {
size(240,320);
smooth();
noStroke();
fill(255);
rectMode(CENTER);
};
void draw() {
background(#FF9900);
rect(width/2, height/2, 50, 50);
};
26
Page 27 sur 45
Processing pour Android
27
Lancer l’émulation depuis Processing (Ctrl+R) (l’émulateur doit être lancé avant, voir diapo 23 )
Page 29 sur 45
Processing pour Android
3.5 Tester votre appareil Android
Après avoir installer le driver de votre appareil
Connecter votre appareil au port USB de votre PC
Paramétrer votre téléphone pour qu’il autorise le mode “débogage USB”
(Paramètres\Paramètres des applications\Développement\Débogage USB)
Puis exécuter le programme vers l’appareil : Ctrl+Maj+R
29
Page 31 sur 45
Processing pour Android
Les permissions :
Si vous voulez charger des données d'Internet, ou se connecter à un
serveurs, vous devrez autoriser la permission INTERNET pour votre
Sketch.
Si vous voulez utiliser des méthodes comme saveStrings () ou
createWriter, vous devrez permettre WRITE_EXTERNAL_STORAGE
pour que vous puissiez sauver des choses à la mémoire flash
incorporée.
Il existe des permissions pour accèder au téléphone, à la boussole, etc.
Pour en savoir plus :
http://developer.android.com/reference/android/Manifest.permission.html
31
Page 32 sur 45
Processing pour Android
4. Initiation à Processing:
Il existe de nombreux tutoriels sur le web :
• http://processing.org/learning
• http://www.ecole-art-aix.fr/rubrique81.html
• http://fr.flossmanuals.net/processing/ch043_processing-dans-lenseignement
• http://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.OUTILSProcessing
Dont certains dédié à l’utilisation d’Android :
• http://wiki.processing.org/w/Android
• http://forum.processing.org/android-processing
32
Page 33 sur 45
Processing pour Android
4.1 Dessiner en 2D et gérer les couleurs
33
fill() : remplissage
stroke() : contour
Background() : arrière plan
Page 38 sur 45
Processing pour Android
4.1 Dessiner en 2D et gérer les couleurs
38
fill() : couleur de remplissage
stroke() : contour
Page 39 sur 45
Processing pour Android
4.2 Animation et mouvement
setup()
Appelée une seule fois quand le programme
démarre. Utiliser pour initialiser l’environnement
de travail (taille de l’écran, couleur de l’arrière plan)
avant d’exécuter le draw().
Les variables déclarées dans le setup ne sont pas
accessible aux autres fonctions.
draw()
Appelée directement après setup(), cette fonction exécute en continue les lignes de codes
qu’elle contient tant que le programme n’est pas stopé ou que la fonction noLoop() est appelée.
39
Void setup() {
println(“Setup: démarrage");
}
Void draw() {
println("En cours");
}
Quand ce code est en cours d’exécution, les
messages suivants sont écrits dans la console:
Setup: démarrage
En cours
En cours
. . .
Page 41 sur 45
Processing pour Android
4.3 Média (images et polices de caractères)
41
mage(image, x, y)
image(image, x, y, c, d)
Image PImage: l’image à afficher
x float: coordonnée en x de l’image
y float: coordonnée en y de l’image
c float: largeur de l’image
d float: hauteur de l’image
Page 43 sur 45
Processing pour Android
4.4 Interaction (clavier et écran tactile)
mousePressed :
La fonction mousePressed détecte l’appui ou non sur le clic de la souris (ou de l’écran tactile).
Voir aussi :
mousePressed() http://processing.org/reference/mousePressed_.html
mouseReleased() http://processing.org/reference/mouseReleased_.html
mouseMoved() http://processing.org/reference/mouseMoved_.html
mouseDragged() http://processing.org/reference/mouseDragged_.html
mouseX http://processing.org/reference/mouseX.html
mouseY http://processing.org/reference/mouseY.html
keyPressed http://processing.org/reference/keyPressed.html
key http://processing.org/reference/key.html
43
Page 44 sur 45
Processing pour Android
4.5 Pour aller plus loin
Gestion du multitouche de votre Android via Processing :
http://code.google.com/p/android-multitouch-controller/
Gestion des capteurs et de la camera de votre Android via Processing :
http://code.google.com/p/ketai
APWidgets: librarie pour l’utilisation des widgets d’Android avec processing :
http://code.google.com/p/apwidgets
OscP5: librairie pour envoyer et recevoir des messages OSC (Open Sound Control)
http://www.sojamo.de/libraries/oscP5/index.html
44