42
Programmation Mobile Android Rabie JABALLAH: [email protected] Slim BENHAMMOUDA: [email protected]

01 programmation mobile - android - (introduction)

Embed Size (px)

Citation preview

Page 1: 01 programmation mobile - android - (introduction)

Programmation Mobile Android

Rabie JABALLAH: [email protected] BENHAMMOUDA: [email protected]

Page 2: 01 programmation mobile - android - (introduction)

Plan

1. Introduction a. Histoireb. Architecturec. Les Outils de développementd. Structure d’un projet Androide. Le manifestf. les permissions

g. les fichiers de ressources

Page 3: 01 programmation mobile - android - (introduction)

Plan (2)

2. Les Activités (Activity)3. Les Views et Layouts4. Les Fragments5. Stockage6. La programmation multithreads7. Utilisation des Web services

Page 4: 01 programmation mobile - android - (introduction)

Plan (3)

8. Les content providers et les bases de données9. Les Broadcast Receivers

10. Les Services11. Multimedia12. Les Notifications

Page 5: 01 programmation mobile - android - (introduction)

1. IntroductionUne application mobile est un logiciel développé pour être installé sur un appareil électronique mobile.

Page 6: 01 programmation mobile - android - (introduction)

Exemples OS mobiles

iOS :C’est le système d'exploitation mobile développé par Apple pour l'iPhone, l'iPod touch, l'iPad et l'Apple TV. Il est dérivé de OS X dont il partage les fondations.

Page 7: 01 programmation mobile - android - (introduction)

Exemples OS mobiles (2)

Android :C’est un système d'exploitation mobile pour smartphones, tablettes tactiles, PDA et terminaux mobiles. C'est un système open source basé sur le noyau Linux.

Page 8: 01 programmation mobile - android - (introduction)

Exemples OS mobiles (3)

Windows Phone :est un système d'exploitation mobile développé par Microsoft pour succéder à Windows Mobile, sa précédente plateforme logicielle qui a été renommée pour l'occasion en Windows Phone Classic

Page 9: 01 programmation mobile - android - (introduction)

Exemples OS mobiles (4)

Ubuntu Touch :Ubuntu Touch est une version d'Ubuntu destinée aux smartphones et aux tablettes.

Page 10: 01 programmation mobile - android - (introduction)

Exemples OS mobiles (5)

Autres :- FireFox OS- Blackberry OS - Tizen OS

Page 11: 01 programmation mobile - android - (introduction)

Avantages App mobile

- Une interface harmonieuse- Rapidité et instantanéité- Un outil de fidélisation- etc ...

Page 12: 01 programmation mobile - android - (introduction)

Native Vs Web appNative :

- Ergonomie conçue spécifiquement pour le terminal

- Intégrer toutes les fonctionnalités du téléphone

- ...

Web app :

- Coût de développement réduit

- Multi-plateformes- ...

Page 13: 01 programmation mobile - android - (introduction)

Application hybride

Application mobile hybride =

Native +

Web

Page 14: 01 programmation mobile - android - (introduction)

Contraintes de conception des AM

- Certains périphériques sont spécifiques aux Smartphones

- Les ressources des Smartphones sont limitées (Ram, puissance de calcul …)

- Le support des versions anciennes du OS

Page 15: 01 programmation mobile - android - (introduction)

A noter

Smartphone = - Communication ( Intégrer SMS … )- Mobilité ( Intégrer localisation … )- Utilisabilité ( Simple … )- Performance ( Compression image … )

Page 16: 01 programmation mobile - android - (introduction)

Android

Page 17: 01 programmation mobile - android - (introduction)

Système d’exploitation Open Source pour Smartphone, TV, Voitures, Montres …

Page 18: 01 programmation mobile - android - (introduction)

a. Histoire2005 : Android PME américaine créée en 2003 rachetée par Google2007 : Apple dévoilait l'iPhone2007 : La création de « Open Hanset Alliance »2008 : Le premier SDK stable : 1.22014 : Android 5

Page 19: 01 programmation mobile - android - (introduction)

Avantages : Open SourceAndroid est un projet open source ce qui permet aux constructeurs de créer leurs propres versions optimisées pour leurs produits

Page 20: 01 programmation mobile - android - (introduction)

Avantages : Facile à développer

- Langage : Java- Plusieurs API disponibles; Une API est un

ensemble de règles à suivre pour pouvoir dialoguer avec d'autres applications.

Page 21: 01 programmation mobile - android - (introduction)

Avantages : Flexible

- Android est portable, il s'adapte à beaucoup de cibles différentes: Les smartphones, les tablettes, la présence ou l'absence de clavier physique ou de trackball, différents processeurs…

- Android est personnalisable

Page 22: 01 programmation mobile - android - (introduction)

Désavantages : Mise à jour

les constructeurs n’assurent pas les mises à jour vers la dernière version de l’OS de tous leurs appareils (exemple: samsung galaxy S3: la dernière version disponible : Android 4.3)

Page 23: 01 programmation mobile - android - (introduction)

Désavantages : Malware

Plus que 95% de « mobile malware » sur Android.

Page 24: 01 programmation mobile - android - (introduction)

Désavantages : Defragmentation

Page 25: 01 programmation mobile - android - (introduction)

b. Architecture

Page 26: 01 programmation mobile - android - (introduction)

Linux kernel- Android est basé sur un kernel linux 2.6 mais ce n'est

pas linux. Il ne possède pas de système de fenêtrage natif (X window system), la glibc n'est pas supporté, Android utilise une libc customisé appelé Bionic libc.

- Enfin Android utilise un kernel avec différents patches pour la gestion de l'alimentation, le partage mémoire, etc. permettant une meilleure gestion de ces caractéristiques pour les appareils mobiles.

Page 27: 01 programmation mobile - android - (introduction)

Libraries- Le navigateur web présent dans Android est basé sur le

moteur de rendu sous licence BSD WebKit.- La librairie Media Framework est basée sur OpenCore

de PacketVideo. Elle permet le support des standards audio/vidéo/images.

- OpenGL ES (Open Graphics Library for Embedded System) pour la conception d'applications générant des images 3D dérivée de la spécification OpenGL, sous une forme adaptée aux plateformes mobiles ou embarquées.

Page 28: 01 programmation mobile - android - (introduction)

Android Runtime- Dalvik est la machine virtuelle logiciel open-source - Avec android 5, Dalvik est remplacée par ART- Les libraries Core est l’ensemble des bibliothèques

développées par Java. Le langage Java founit avec Android reprend en grande partie l'API JSE 1.5. Il y a des choses qui ont été mis de coté car cela n'avait pas de sens pour Android ( comme les imprimantes, swing, etc.) et d'autres par ce que des APIs spécifiques sont requises pour Android.

Page 29: 01 programmation mobile - android - (introduction)

Application framework- Android introduit la notion de services. Un service est

une application qui n'a aucune interaction avec l'utilisateur et qui tourne en arrière plan pendant un temps indéfini.

- Les services cœurs de la plateforme (Core Plateform Services) fournissent des services essentiels au fonctionnement de la plateforme

- Les services matériels (Hardware Services) founissent un accès vers les API matérielles de bas niveau

Page 30: 01 programmation mobile - android - (introduction)

c. Les Outils de développementLes principaux outils utilisés pour le développement sur la plateforme- SDK (Software Development Kit)

- ensemble d’api- émulateurs- outils de packaging- outils de debugging

- IDE (Integrated development environment) comme Eclipse + ADT ou bien Android Studio

Page 31: 01 programmation mobile - android - (introduction)

Android 5 !

Eclipse -- > Android StudioAnt -- > Gradle

Page 32: 01 programmation mobile - android - (introduction)

d. Structure d’un projet Android

- Au passage à Android Studio, la structure d’un projet android est devenue similaire à celle d’un projet maven

- pour mieux afficher la structure du projet, dans android studio, on peut changer la vue vers la vue “Project”

- Il est préférable d’utiliser la vue “Android” qui cache les fichiers et les dossiers qui ne sont pas important pour le projet

Page 33: 01 programmation mobile - android - (introduction)

d. Structure d’un projet Android (2)

Android studio “project view”

Page 34: 01 programmation mobile - android - (introduction)

d. Structure d’un projet Android (3)

Android studio “android view”

Page 35: 01 programmation mobile - android - (introduction)

e. Manifest .xmlLe fichier AndroidManifest.xml déclare l'ensemble des éléments de l'application. C’est un fichier indispensable à chaque application qui décrit entre autres:- le point d’entrée de l’application;- quels composants constituent ce programme- les permissions nécessaires à l’exécution du

programme (accès à Internet, accès à l’appareil photo...)

Page 36: 01 programmation mobile - android - (introduction)

e. Manifest .xml (2)Les composants majeurs d’une application Android sont:

- Activity- Service- Content provider- Broadcast Receiver

Page 37: 01 programmation mobile - android - (introduction)

e. Manifest .xml (3)- Un intent est une description abstraite d’une opération à

réaliser- il sert à lancer une activité ou un service, ou notifier un

receiver- Un intent filter est une description structurée des

valeurs d’un intent. Il permet de filtrer les opérations selon - une action (action)- une catégorie (category)- une donnée (data)

Page 38: 01 programmation mobile - android - (introduction)

f. Les permissionsCertaines opérations sont réalisables à condition d’en obtenir la permissionCes actions sont de plusieurs formes :- opérations pouvant entraîner un sur-coût (connexion,

échange de données, envoi de SMS par exemple) ; - utilisation de données personnelles (accès aux contacts, aux

comptes Google...) ;- accès au matériel du téléphone (prise de clichés,

récupération de la position GPS...).

Page 39: 01 programmation mobile - android - (introduction)

f. Les permissions (2)- Pour obtenir une permission spécifique, il faut la renseigner

dans le fichier Manifest.xml via la balise <uses-permission> sous le container <manifest>

- On peut aussi spécifier des permissions qui devraient être demandées par des applications tierces pour pouvoir utiliser des composants de notre application (Activity, content provider, Service), ceci est possible via la balise <permission>

Page 40: 01 programmation mobile - android - (introduction)

g. Les fichiers de ressources- Dans le dossier “res”, on met tous les fichiers qui constituent

la partie “vue” de l’application- les images selon la densité de l’écran (dossiers

“drawable”)- les layout- les menus- les valeurs: chaînes de caractères internationalisées,

couleurs, entiers, tableaux de chaînes de caractères, les styles, les dimensions (tailles de polices de texte ou dimensions appliquées aux différentes vues)...

Page 41: 01 programmation mobile - android - (introduction)

g. Les fichiers de ressources (2)- On peut spécifier les fichiers à utiliser par l’application au

runtime selon - la densité de l’écran du device qui fait tourner l’application- la langue sélectionnée- l’orientation du device- la taille du device

- Ceci se fait en ajoutant des termes spécifiques aux noms des dossiers des ressoures:

- exemple: values-mdpi: sur un téléphone dont l’écran est de résolution hdpi (240 dpi), prendre les ressources dans ce dossier au lieux de celle par défaut

Page 42: 01 programmation mobile - android - (introduction)

Liens utiles:● Guide officiel: http://developer.android.com/guide/index.html

● Le manifest:http://developer.android.com/guide/topics/manifest/manifest-intro.html

● Créer des applications supportant plusieurs résolutions et tailles d’écrans

http://developer.android.com/guide/practices/screens_support.html