DÉVELOPPEMENT D'APPLICATIONS MOBILESivmad.free.fr/M2PSIR/Cours-M2PSIR-Android-2016-1.pdf · 2016....

12
DÉVELOPPEMENT D'APPLICATIONS MOBILES Android Partie I Ivan MADJAROV - 2016

Transcript of DÉVELOPPEMENT D'APPLICATIONS MOBILESivmad.free.fr/M2PSIR/Cours-M2PSIR-Android-2016-1.pdf · 2016....

Page 1: DÉVELOPPEMENT D'APPLICATIONS MOBILESivmad.free.fr/M2PSIR/Cours-M2PSIR-Android-2016-1.pdf · 2016. 10. 20. · L'architecture du système Android • Androidest un système embarqué

DÉVELOPPEMENT D'APPLICATIONS MOBILES

AndroidPartie I

Ivan MADJAROV - 2016

Page 2: DÉVELOPPEMENT D'APPLICATIONS MOBILESivmad.free.fr/M2PSIR/Cours-M2PSIR-Android-2016-1.pdf · 2016. 10. 20. · L'architecture du système Android • Androidest un système embarqué

1. AndroidDéveloppement mobile Java sous Android

Développement d'applications mobiles IvMad, 2016 2

L'objectif principal de ce cours est de découvrir la programmation sousAndroid, sa plate-forme de développement et les spécificités du développementembarqué pour Smartphone et Tablette.

Page 3: DÉVELOPPEMENT D'APPLICATIONS MOBILESivmad.free.fr/M2PSIR/Cours-M2PSIR-Android-2016-1.pdf · 2016. 10. 20. · L'architecture du système Android • Androidest un système embarqué

L'architecture du système Android• Android est un système embarqué conçu pour appuyer les particularités

des Smartphones et des Tablettes.• IHM (GUI) tactile avec utilisation des widgets;• Gestion des modes: vibreur, sonnerie, silencieux, alarme;• Notification d'applications, e-mails, SMS, appels en instance, GPS;• Capteurs de gyroscope, gravité, accélération, baromètre, boussole;• Technologie de carte à puce (NFC), HF courte portée (RFID),• Téléphonie GSM et réseaux EDGE, 2G, 3G, 4G, etc...• Navigateur Internet, bibliothèque graphique (Open GL) et base de

données (SQLite), applications multimédias pour le son, la vidéo et lesdifférents formats image, intégration avec le dashboard d'une voiture;

• Connexion Bluetooth et WiFi;• Appareil Photo Numérique (APN) pour la prise de photos et vidéo.

Développement d'applications mobiles IvMad, 2016 3

Page 4: DÉVELOPPEMENT D'APPLICATIONS MOBILESivmad.free.fr/M2PSIR/Cours-M2PSIR-Android-2016-1.pdf · 2016. 10. 20. · L'architecture du système Android • Androidest un système embarqué

L'architecture du système Android• Android est un système embarqué open source (noyau Linux) pour les

appareils mobiles (Smartphone et Tablette)• Le SDK Android a tous

les outils nécessaires pour le développement d'applications Java:• Compilateur, • Débogueur, • Emulateur, • Machine virtuelle.

• Android est un SE créé par l'Open Handset Alliancedirigée par Google.

Développement d'applications mobiles IvMad, 2016 4

Page 5: DÉVELOPPEMENT D'APPLICATIONS MOBILESivmad.free.fr/M2PSIR/Cours-M2PSIR-Android-2016-1.pdf · 2016. 10. 20. · L'architecture du système Android • Androidest un système embarqué

Application Android• Android propose une interface de programmation Java avec sa propre

machine virtuelle DVM (Virtual Machine Dalvik).• L'interface fournit des outils pour la compilation, le débogage et un

simulateur de périphérique mobile est embarqué.• Android utilise une machine virtuelle spéciale. Son byte-code est

incompatible avec celui de Java standard (Oracle).• Un outil "dx" est proposé pour convertir un fichier Java classe dans le

format Android "dex" (Dalvik exécutable).• Une application Android est emballée dans un fichier .apk (Android

Package) par AAPT (Android Asset Packaging Tool)• Android Studio est l'IDE officiel pour le développement d'applications

mobiles pour Android. Il est basé sur l'éditeur IntelliJ IDEA.• Le plugin ADT (Android Development Tools) pour l'IDE Eclipse n'est plus

supporté par Google (depuis aout 2015)!

Développement d'applications mobiles IvMad, 2016 5

Page 6: DÉVELOPPEMENT D'APPLICATIONS MOBILESivmad.free.fr/M2PSIR/Cours-M2PSIR-Android-2016-1.pdf · 2016. 10. 20. · L'architecture du système Android • Androidest un système embarqué

Application Android• L'ADT effectue automatiquement la conversion d'une classe "dex" en

.apk au cours du déploiement.• Android supporte le graphisme 2-D et 3-D avec OpenGL library.• Le stockage de données dans une BD est pris en charge par SQLite.• SQLite est une Open Source Database intégrée dans le système Android.• SQLite supporte les fonctionnalités standards pour une BDR telles que

SQL syntaxe, la gestion des transactions et "prepared statements".• Une application Android s'exécute dans son propre processus et sous

son propre nom d'utilisateur qui est généré automatiquement au coursde son déploiement.• L'application Android est isolée des autres applications en cours et ne

peut pas facilement affecter leur sécurité.

Développement d'applications mobiles IvMad, 2016 6

Page 7: DÉVELOPPEMENT D'APPLICATIONS MOBILESivmad.free.fr/M2PSIR/Cours-M2PSIR-Android-2016-1.pdf · 2016. 10. 20. · L'architecture du système Android • Androidest un système embarqué

L'architecture du système Android• Le GUI d'Android est un système mono-thread, événementiel avec une

bibliothèque à composants extensibles organisée autour du modèleModel-View-Controller (MVC).• Model: représente les données et le conteneur de données: base de données,

images, sons, etc.• View: c'est la partie de l'application chargée de rendre l'affichage, l'envoi de l'audio

aux haut-parleurs, générant un retour tactile.• Controller: c'est la partie qui répond à des actions externes: le clavier, l'écran tactile,

les appels entrants.

Développement d'applications mobiles IvMad, 2016 7

Page 8: DÉVELOPPEMENT D'APPLICATIONS MOBILESivmad.free.fr/M2PSIR/Cours-M2PSIR-Android-2016-1.pdf · 2016. 10. 20. · L'architecture du système Android • Androidest un système embarqué

Le développement Android• Android dispose d'un SDK basé sur le langage Java.• Le SDK d'Android est disponible pour les plateformes Linux, Mac et

Windows à l'adresse : • http://code.google.com/android/download.html

• Pour développer avec l'IDE Android studio il faut télécharger et installer l'environnement integré de développement à partir de l'adresse:• https://developer.android.com/studio/index.html

• Le développement pour Android est possible aussi sans un IDEparticulier en se servant des commandes du SDK d'Android avec Antpour la compilation et la gestion du simulateur. A consulter:• http://ydisanto.developpez.com/tutoriels/android/debuter/

Développement d'applications mobiles IvMad, 2016 8

Page 9: DÉVELOPPEMENT D'APPLICATIONS MOBILESivmad.free.fr/M2PSIR/Cours-M2PSIR-Android-2016-1.pdf · 2016. 10. 20. · L'architecture du système Android • Androidest un système embarqué

Le développement Android• La chaine de production Java Android

Développement d'applications mobiles IvMad, 2016 9

Page 10: DÉVELOPPEMENT D'APPLICATIONS MOBILESivmad.free.fr/M2PSIR/Cours-M2PSIR-Android-2016-1.pdf · 2016. 10. 20. · L'architecture du système Android • Androidest un système embarqué

Le système Android• La dépendance de l'activité Android et la chaîne d'exécution

Développement d'applications mobiles IvMad, 2016 10

Page 11: DÉVELOPPEMENT D'APPLICATIONS MOBILESivmad.free.fr/M2PSIR/Cours-M2PSIR-Android-2016-1.pdf · 2016. 10. 20. · L'architecture du système Android • Androidest un système embarqué

Java2SE (Oracle) et Java Dalvik (Google)Développement d'applications mobiles IvMad, 2016 11

Page 12: DÉVELOPPEMENT D'APPLICATIONS MOBILESivmad.free.fr/M2PSIR/Cours-M2PSIR-Android-2016-1.pdf · 2016. 10. 20. · L'architecture du système Android • Androidest un système embarqué

L'application Android• Une application Android en général est composée d'éléments

identifiables qui se séquencent différemment en fonction des objectifs:1. Interface graphique : la partie visuelle de l'application, elle sert de

support pour les interactions de l'utilisateur.2. Traitement d'un événement : Les interactions de l'utilisateur avec le

GUI déclenche des événements qui sont gérés par les écouteursd'événements (Listener)

3. Opération de fond (Intent) : Des opérations (service, activité) de fondpeuvent échanger des messages par la technique des Intents.

4. Connexion TCP ou Bluetooth : connexion à un réseau Wi-Fi ou à unautre Smartphone.

5. Traitement asynchrone: AsyncTask permet de réaliser des tâches demanière asynchrone, à la manière de la classe Thread.

Développement d'applications mobiles IvMad, 2016 12