Programmation Android I. Introduction 1 / 57
Plan 1 Introduction 2 La plate-forme Android 3 Programmation Android 4 Hello World 2 / 57
Introduction Application mobile wikipédia Caractéristiques Cible : appareil électronique mobile (smartphone, tablette, etc.) Contexte logiciel : non connecté : agenda, baladeur, console,... localisé : navigation GPS, travaux géolocalisés (e.g. photographie) connecté : tout Internet... avec un contexte mobile! Contexte matériel : ressources plus faibles : CPU / RAM / DD / ROM la consommation des ressources doit être minimale GUI adaptée 4 / 57
Introduction Principaux OS Principaux OS Android (Google) : Linux BlackBerry OS, QNX : Unix ios (Apple) noyau hybride XNU : Mach(libre) + BSD (Unix) Ubuntu Touch (Canonical) : Linux Windows Phone, Windows 8 (Microsoft) Tizen (Linux Foundation), supporté par Samsung / Intel Firefox OS (Mozilla Corporation) : Linux Arrêtés : HP webos (Linux), Symbian_OS (Nokia), etc. 5 / 57
La plate-forme Android Android Origine Initialement un OS pour appareil photo Acheté par Google en 2005 7 / 57
La plate-forme Android Android Versions 1.1 2009 (HTC Dream) 1.5 Cupcake 1.6 Donut 2009 2.0 Eclair 2009 (html 5) 2.2 Froyo 2.3 Gingerbread 2010 3.0 Honeycomb 2011 (dédiée tablettes et TV) 4.0 Ice cream sandwich 2011 Jelly Bean 4.1, 4.2 (2012), 4.3 (2013) 4.4 KitKat 2013 5.0 Lolipop octobre 2014 8 / 57
La plate-forme Android Diffusion Google I/O, juin 2014 9 / 57
La plate-forme Android Architecture globale 10 / 57
La plate-forme Android Libraries Librairies C/C++ libres Surface Manager : affichage 2D/3D Media Framework : codecs basés sur librairie OpenCORE SQLite : moteur de base de données relationelle OpenGL ES : implémentation OpenGL pour l embarqué FreeType : rendu bitmap de polices vectorielles WebKit : moteur de rendu de pages Web SGL : moteur graphique 2D SSL : communications réseaux sécurisées libc : dérivé de la librairie C (BSD) pour l embarqué (Bionic libc) 11 / 57
La plate-forme Android Architecture : Android Runtime 12 / 57
La plate-forme Android La machine virtuelle Dalvik 13 / 57
La plate-forme Android Architecture : Application Framework 14 / 57
La plate-forme Android Application framework 1/2 Modules Activity Manager : cycle de vie et navigation entre applications Window Manager : gestion GUI Content Providers : gestion de données View System : gestion des composants graphiques et des événements utilisateurs liés Notification Manager : gestion du système de notifications 15 / 57
La plate-forme Android Application framework 2/2 Modules Package Manager : accès aux API tierces installées Telephony Manager : accès aux services téléhoniques Resource Manager : accès aux ressources de l appareil Location Manager : accès aux fonctions de localisation XMMP Manager (Extensible Messaging and Presence Protocol) : messagerie instanée, échange de données entre applications 16 / 57
Programmation Android Prérequis Créer une application Android : Connaissances Techniques Android (runtime + framework) POO + Java Outils logiciels Java Runtime Environment (JRE) pour exécuter les outils Android Android SDK téléchargement Android Virtual Device Manager (AVD), contenu dans le Android SDK un éditeur de texte 18 / 57
Programmation Android Android SDK : téléchargement décompression SDK_PATH lancement du SDK manager : SDK_PATH/tools/android 19 / 57
Programmation Android Le SDK Manager : tools 20 / 57
Programmation Android Le SDK Manager : Android APIs 21 / 57
Programmation Android Le SDK Manager : Extras 22 / 57
Programmation Android SDK_PATH/ après téléchargement (plusieurs Go) 23 / 57
Programmation Android Android Virtual Device Manager (AVD) Lancement AVD : SDK_PATH/tools/android avd 24 / 57
Programmation Android Outils requis Application Android, en pratique on utilise un IDE : 2 solutions : Eclipse avec le plugin ADT : Android Studio (nouveau) : téléchargement http://developer.android.com/sdk 25 / 57
Création d un projet avec Eclipse File New Android Application Project 27 / 57
Paramétrage 28 / 57
Paramétrage : Icon plus d information 29 / 57
Paramétrage : Blank Activity (hello world) 30 / 57
Paramétrage 31 / 57
Résultat 32 / 57
Création d un projet en ligne de commande android list targets 33 / 57
Dans un terminal 34 / 57
Contenu du projet Dossiers src/ : sources Java, notamment la classe qui lance l activité libs/ : librairies nécessaires (android) bin/ : destination de la compilation res/ : les ressources de l applciation drawable-(h)(m)(l)dpi/ images dans différentes résolutions layout/ GUI design général values/ valeurs des variables menu/ définition des menus gen/ : répertoire géré automatiquement (id ressources) 35 / 57
./AndroidManifest.xml : description 36 / 57
Éditeur pour les fichiers manifest 37 / 57
/res/layout/activity_main.xml : disposition GUI 38 / 57
Éditeur pour activity_main.xml 39 / 57
/res/menu/main.xml : définition d un menu 40 / 57
Éditeur de menu 41 / 57
strings.xml : valeurs des variables 42 / 57
Éditeur de variables 43 / 57
/src/... /MainActivity.java : activité 44 / 57
/gen/... /R.java : définition d identifiants 45 / 57
Exécution sur un vrai dispositif Mise en place du dispositif pour le développement connexion usb : drivers windows configuration linux sous linux, la commande lsusb liste les connexions usb plus d information activation USB debugging sur le dispositif : Settings > Developer options à partir de Android 4.2 : Settings > About phone (7 tappes successives). 46 / 57
Exécution du projet sous Eclipse 47 / 57
Exécution en ligne de commande Compilation OK Déploiement : 48 / 57
Exécution sur un émulateur : outil AVD Dans un terminal : $ android avd 49 / 57
Définition déjà présentes 50 / 57
Création d une AVD en ligne de commande 51 / 57
Start 52 / 57
Sous Eclipse : 53 / 57
Exécution en ligne de commande : Idem Compilation OK Déploiement : 54 / 57
Une fois déployée 55 / 57
Résultat 56 / 57
Résumé global Résumé global La technologie Android : Noyau Linux Programmation Java Programmation Android des outils pour le développement : SDK manager / AVD / un IDE. une structure de projet standardisée (manifest, src, res, etc.) des dispositifs pour le déploiement (virtuels et réels) Ce cours reprend largement les tutoriaux en ligne proposés par Google : Android developers 57 / 57