Programmation Mobile
Android
Rabie JABALLAH: jaballahrabie@gmail.com
Slim BENHAMMOUDA: slim.benhammouda@gmail.com
Plan
1. Introduction
a. Histoire
b. Architecture
c. Les Outils de développement
d. Structure d’un projet Android
e. Le manifest
f. les permissions
g. les fichiers de ressources
Plan (2)
2. Les Activités (Activity)
3. Les Views et Layouts
4. Les Fragments
5. Stockage
6. La programmation multithreads
7. Utilisation des Web services
Plan (3)
8. Les content providers et les bases de données
9. Les Broadcast Receivers
10. Les Services
11. Multimedia
12. Les Notifications
1. Introduction
Une application mobile est un logiciel développé
pour être installé sur un appareil électronique
mobile.
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.
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.
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
Exemples OS mobiles (4)
Ubuntu Touch :
Ubuntu Touch est une
version d'Ubuntu destinée
aux smartphones et aux
tablettes.
Exemples OS mobiles (5)
Autres :
- FireFox OS
- Blackberry OS
- Tizen OS
Avantages App mobile
- Une interface harmonieuse
- Rapidité et instantanéité
- Un outil de fidélisation
- etc ...
Native Vs Web app
Native :
- 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
- ...
Application hybride
Application mobile hybride
=
Native
+
Web
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
A noter
Smartphone =
- Communication ( Intégrer SMS … )
- Mobilité ( Intégrer localisation … )
- Utilisabilité ( Simple … )
- Performance ( Compression image … )
Android
Système d’exploitation Open Source pour
Smartphone, TV, Voitures, Montres …
a. Histoire
2005 : Android PME américaine créée en 2003 rachetée
par Google
2007 : Apple dévoilait l'iPhone
2007 : La création de « Open Hanset Alliance »
2008 : Le premier SDK stable : 1.2
2014 : Android 5
Avantages : Open Source
Android est un projet open source ce qui permet aux
constructeurs de créer leurs propres versions optimisées
pour leurs produits
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.
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
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)
Désavantages : Malware
Plus que 95% de « mobile malware » sur
Android.
Désavantages : Defragmentation
b. Architecture
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.
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.
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.
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
c. Les Outils de développement
Les 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
Android 5 !
Eclipse -- > Android Studio
Ant -- > Gradle
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
d. Structure d’un projet Android (2)
Android studio “project view”
d. Structure d’un projet Android (3)
Android studio “android view”
e. Manifest .xml
Le 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...)
e. Manifest .xml (2)
Les composants majeurs d’une application Android sont:
- Activity
- Service
- Content provider
- Broadcast Receiver
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)
f. Les permissions
Certaines opérations sont réalisables à condition d’en obtenir la
permission
Ces 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...).
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>
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)...
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
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

01 programmation mobile - android - (introduction)

  • 1.
    Programmation Mobile Android Rabie JABALLAH:jaballahrabie@gmail.com Slim BENHAMMOUDA: slim.benhammouda@gmail.com
  • 2.
    Plan 1. Introduction a. Histoire b.Architecture c. Les Outils de développement d. Structure d’un projet Android e. Le manifest f. les permissions g. les fichiers de ressources
  • 3.
    Plan (2) 2. LesActivités (Activity) 3. Les Views et Layouts 4. Les Fragments 5. Stockage 6. La programmation multithreads 7. Utilisation des Web services
  • 4.
    Plan (3) 8. Lescontent providers et les bases de données 9. Les Broadcast Receivers 10. Les Services 11. Multimedia 12. Les Notifications
  • 5.
    1. Introduction Une applicationmobile est un logiciel développé pour être installé sur un appareil électronique mobile.
  • 6.
    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.
  • 7.
    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.
  • 8.
    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
  • 9.
    Exemples OS mobiles(4) Ubuntu Touch : Ubuntu Touch est une version d'Ubuntu destinée aux smartphones et aux tablettes.
  • 10.
    Exemples OS mobiles(5) Autres : - FireFox OS - Blackberry OS - Tizen OS
  • 11.
    Avantages App mobile -Une interface harmonieuse - Rapidité et instantanéité - Un outil de fidélisation - etc ...
  • 12.
    Native Vs Webapp Native : - 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 - ...
  • 13.
  • 14.
    Contraintes de conceptiondes 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
  • 15.
    A noter Smartphone = -Communication ( Intégrer SMS … ) - Mobilité ( Intégrer localisation … ) - Utilisabilité ( Simple … ) - Performance ( Compression image … )
  • 16.
  • 17.
    Système d’exploitation OpenSource pour Smartphone, TV, Voitures, Montres …
  • 18.
    a. Histoire 2005 :Android PME américaine créée en 2003 rachetée par Google 2007 : Apple dévoilait l'iPhone 2007 : La création de « Open Hanset Alliance » 2008 : Le premier SDK stable : 1.2 2014 : Android 5
  • 19.
    Avantages : OpenSource Android est un projet open source ce qui permet aux constructeurs de créer leurs propres versions optimisées pour leurs produits
  • 20.
    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.
  • 21.
    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
  • 22.
    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)
  • 23.
    Désavantages : Malware Plusque 95% de « mobile malware » sur Android.
  • 24.
  • 25.
  • 26.
    Linux kernel - Androidest 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.
  • 27.
    Libraries - Le navigateurweb 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.
  • 28.
    Android Runtime - Dalvikest 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.
  • 29.
    Application framework - Androidintroduit 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
  • 30.
    c. Les Outilsde développement Les 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
  • 31.
    Android 5 ! Eclipse-- > Android Studio Ant -- > Gradle
  • 32.
    d. Structure d’unprojet 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
  • 33.
    d. Structure d’unprojet Android (2) Android studio “project view”
  • 34.
    d. Structure d’unprojet Android (3) Android studio “android view”
  • 35.
    e. Manifest .xml Lefichier 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...)
  • 36.
    e. Manifest .xml(2) Les composants majeurs d’une application Android sont: - Activity - Service - Content provider - Broadcast Receiver
  • 37.
    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)
  • 38.
    f. Les permissions Certainesopérations sont réalisables à condition d’en obtenir la permission Ces 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...).
  • 39.
    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>
  • 40.
    g. Les fichiersde 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)...
  • 41.
    g. Les fichiersde 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
  • 42.
    Liens utiles: ● Guideofficiel: 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