SlideShare une entreprise Scribd logo
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

Contenu connexe

Tendances

Mise à niveau d’un système de gestion de clientèle (CRM)
Mise à niveau d’un système de gestion de clientèle (CRM)Mise à niveau d’un système de gestion de clientèle (CRM)
Mise à niveau d’un système de gestion de clientèle (CRM)
Nawres Farhat
 
Programmation sous Android
Programmation sous AndroidProgrammation sous Android
Programmation sous Android
Olivier Le Goaër
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
ENSET, Université Hassan II Casablanca
 
applications-reparties
applications-repartiesapplications-reparties
applications-reparties
mourad50
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
ENSET, Université Hassan II Casablanca
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
Heithem Abbes
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiers
Heithem Abbes
 
Ma présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site WebMa présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site Web
Harrathi Mohamed
 
Développement Android
Développement AndroidDéveloppement Android
Développement Android
Franck SIMON
 
Chp5 - Applications Android
Chp5 - Applications AndroidChp5 - Applications Android
Chp5 - Applications Android
Lilia Sfaxi
 
Tp1 - Eclipse
Tp1 - EclipseTp1 - Eclipse
Tp1 - Eclipse
Lilia Sfaxi
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence
Yassine Badri
 
Tp n 3 linux
Tp n 3 linuxTp n 3 linux
Tp n 3 linux
Amir Souissi
 
BigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans HadoopBigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans Hadoop
Lilia Sfaxi
 
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
MOHAMMED MOURADI
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
Lilia Sfaxi
 
Rapport PFE Application Web Mobiles belwafi bilel
Rapport PFE Application Web Mobiles belwafi bilelRapport PFE Application Web Mobiles belwafi bilel
Rapport PFE Application Web Mobiles belwafi bilel
Belwafi Bilel
 
Présentation Flutter
Présentation FlutterPrésentation Flutter
Présentation Flutter
Appstud
 
Stockage de données dans Android : Fichiers
Stockage de données dans Android : FichiersStockage de données dans Android : Fichiers
Stockage de données dans Android : Fichiers
Lilia Sfaxi
 
Introduction aux systèmes répartis
Introduction aux systèmes répartisIntroduction aux systèmes répartis
Introduction aux systèmes répartis
Heithem Abbes
 

Tendances (20)

Mise à niveau d’un système de gestion de clientèle (CRM)
Mise à niveau d’un système de gestion de clientèle (CRM)Mise à niveau d’un système de gestion de clientèle (CRM)
Mise à niveau d’un système de gestion de clientèle (CRM)
 
Programmation sous Android
Programmation sous AndroidProgrammation sous Android
Programmation sous Android
 
Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4Support developpement applications mobiles avec ionic v3 et v4
Support developpement applications mobiles avec ionic v3 et v4
 
applications-reparties
applications-repartiesapplications-reparties
applications-reparties
 
Support de cours Spring M.youssfi
Support de cours Spring  M.youssfiSupport de cours Spring  M.youssfi
Support de cours Spring M.youssfi
 
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
 
Architectures n-tiers
Architectures n-tiersArchitectures n-tiers
Architectures n-tiers
 
Ma présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site WebMa présentation PFE : Application Android & Site Web
Ma présentation PFE : Application Android & Site Web
 
Développement Android
Développement AndroidDéveloppement Android
Développement Android
 
Chp5 - Applications Android
Chp5 - Applications AndroidChp5 - Applications Android
Chp5 - Applications Android
 
Tp1 - Eclipse
Tp1 - EclipseTp1 - Eclipse
Tp1 - Eclipse
 
exercices business intelligence
exercices business intelligence exercices business intelligence
exercices business intelligence
 
Tp n 3 linux
Tp n 3 linuxTp n 3 linux
Tp n 3 linux
 
BigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans HadoopBigData_TP2: Design Patterns dans Hadoop
BigData_TP2: Design Patterns dans Hadoop
 
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
 
Tp2 - WS avec JAXRS
Tp2 - WS avec JAXRSTp2 - WS avec JAXRS
Tp2 - WS avec JAXRS
 
Rapport PFE Application Web Mobiles belwafi bilel
Rapport PFE Application Web Mobiles belwafi bilelRapport PFE Application Web Mobiles belwafi bilel
Rapport PFE Application Web Mobiles belwafi bilel
 
Présentation Flutter
Présentation FlutterPrésentation Flutter
Présentation Flutter
 
Stockage de données dans Android : Fichiers
Stockage de données dans Android : FichiersStockage de données dans Android : Fichiers
Stockage de données dans Android : Fichiers
 
Introduction aux systèmes répartis
Introduction aux systèmes répartisIntroduction aux systèmes répartis
Introduction aux systèmes répartis
 

En vedette

Andcx formation-android-avance-creation-d-applications-complexes
Andcx formation-android-avance-creation-d-applications-complexesAndcx formation-android-avance-creation-d-applications-complexes
Andcx formation-android-avance-creation-d-applications-complexes
CERTyou Formation
 
Conférence "Architecture Android" du 19 Mars 2013 par Mathias Seguy fondateur...
Conférence "Architecture Android" du 19 Mars 2013 par Mathias Seguy fondateur...Conférence "Architecture Android" du 19 Mars 2013 par Mathias Seguy fondateur...
Conférence "Architecture Android" du 19 Mars 2013 par Mathias Seguy fondateur...
Mathias Seguy
 
Codes malveillants
Codes malveillantsCodes malveillants
Codes malveillants
Christophe Casalegno
 
Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015
Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015
Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015
Loïc Knuchel
 
Traitement numérique des images - Projet Android "Virtual Pong" - Présentation
Traitement numérique des images - Projet Android "Virtual Pong" - PrésentationTraitement numérique des images - Projet Android "Virtual Pong" - Présentation
Traitement numérique des images - Projet Android "Virtual Pong" - Présentation
Valentin Thirion
 
Angular 4 - ngfor -- Français
Angular 4  - ngfor -- FrançaisAngular 4  - ngfor -- Français
Angular 4 - ngfor -- Français
VERTIKA
 
Meet up paris 13 of jun 2017
Meet up paris 13 of jun 2017Meet up paris 13 of jun 2017
Meet up paris 13 of jun 2017
Jasmine Conseil
 
Devoxx 2015, ionic chat
Devoxx 2015, ionic chatDevoxx 2015, ionic chat
Devoxx 2015, ionic chat
Loïc Knuchel
 
Android 6 marshmallow
Android 6 marshmallowAndroid 6 marshmallow
Android 6 marshmallow
Guillermo Lima
 
Programmation Android - 00 - Présentation
Programmation Android - 00 - PrésentationProgrammation Android - 00 - Présentation
Programmation Android - 00 - Présentation
Yann Caron
 
04 programmation mobile - android - (db, receivers, services...)
04 programmation mobile - android - (db, receivers, services...)04 programmation mobile - android - (db, receivers, services...)
04 programmation mobile - android - (db, receivers, services...)
TECOS
 
Mta
MtaMta
Mta
TECOS
 
Angular 4 - creer composants -- français
Angular 4  - creer composants -- françaisAngular 4  - creer composants -- français
Angular 4 - creer composants -- français
VERTIKA
 
Support de la formation Android 5 , Avancé
Support de la formation Android 5 , Avancé Support de la formation Android 5 , Avancé
Support de la formation Android 5 , Avancé
Alphorm
 
Algea - 04 - conclusion
Algea - 04 - conclusionAlgea - 04 - conclusion
Algea - 04 - conclusion
Yann Caron
 
Introduction gestion de projet
Introduction gestion de projetIntroduction gestion de projet
Introduction gestion de projet
Mohamed Amine BOURHIL
 
Mobilization 2017: Don't lose your users because of endless quality issues
Mobilization 2017: Don't lose your users because of endless quality issuesMobilization 2017: Don't lose your users because of endless quality issues
Mobilization 2017: Don't lose your users because of endless quality issues
Olivier Destrebecq
 
1cours virologie généralités (1)
1cours virologie généralités (1)1cours virologie généralités (1)
1cours virologie généralités (1)
imlen gan
 
Radio cognitive et intelligence artificielle
Radio cognitive et intelligence artificielleRadio cognitive et intelligence artificielle
Radio cognitive et intelligence artificielle
benouini rachid
 

En vedette (20)

Andcx formation-android-avance-creation-d-applications-complexes
Andcx formation-android-avance-creation-d-applications-complexesAndcx formation-android-avance-creation-d-applications-complexes
Andcx formation-android-avance-creation-d-applications-complexes
 
Conférence "Architecture Android" du 19 Mars 2013 par Mathias Seguy fondateur...
Conférence "Architecture Android" du 19 Mars 2013 par Mathias Seguy fondateur...Conférence "Architecture Android" du 19 Mars 2013 par Mathias Seguy fondateur...
Conférence "Architecture Android" du 19 Mars 2013 par Mathias Seguy fondateur...
 
Codes malveillants
Codes malveillantsCodes malveillants
Codes malveillants
 
Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015
Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015
Le développement mobile hybride sort du bois, Ch'ti JUG le 15-04-2015
 
Traitement numérique des images - Projet Android "Virtual Pong" - Présentation
Traitement numérique des images - Projet Android "Virtual Pong" - PrésentationTraitement numérique des images - Projet Android "Virtual Pong" - Présentation
Traitement numérique des images - Projet Android "Virtual Pong" - Présentation
 
Angular 4 - ngfor -- Français
Angular 4  - ngfor -- FrançaisAngular 4  - ngfor -- Français
Angular 4 - ngfor -- Français
 
Meet up paris 13 of jun 2017
Meet up paris 13 of jun 2017Meet up paris 13 of jun 2017
Meet up paris 13 of jun 2017
 
Devoxx 2015, ionic chat
Devoxx 2015, ionic chatDevoxx 2015, ionic chat
Devoxx 2015, ionic chat
 
Android 6 marshmallow
Android 6 marshmallowAndroid 6 marshmallow
Android 6 marshmallow
 
Programmation Android - 00 - Présentation
Programmation Android - 00 - PrésentationProgrammation Android - 00 - Présentation
Programmation Android - 00 - Présentation
 
04 programmation mobile - android - (db, receivers, services...)
04 programmation mobile - android - (db, receivers, services...)04 programmation mobile - android - (db, receivers, services...)
04 programmation mobile - android - (db, receivers, services...)
 
Mta
MtaMta
Mta
 
Montage video
Montage videoMontage video
Montage video
 
Angular 4 - creer composants -- français
Angular 4  - creer composants -- françaisAngular 4  - creer composants -- français
Angular 4 - creer composants -- français
 
Support de la formation Android 5 , Avancé
Support de la formation Android 5 , Avancé Support de la formation Android 5 , Avancé
Support de la formation Android 5 , Avancé
 
Algea - 04 - conclusion
Algea - 04 - conclusionAlgea - 04 - conclusion
Algea - 04 - conclusion
 
Introduction gestion de projet
Introduction gestion de projetIntroduction gestion de projet
Introduction gestion de projet
 
Mobilization 2017: Don't lose your users because of endless quality issues
Mobilization 2017: Don't lose your users because of endless quality issuesMobilization 2017: Don't lose your users because of endless quality issues
Mobilization 2017: Don't lose your users because of endless quality issues
 
1cours virologie généralités (1)
1cours virologie généralités (1)1cours virologie généralités (1)
1cours virologie généralités (1)
 
Radio cognitive et intelligence artificielle
Radio cognitive et intelligence artificielleRadio cognitive et intelligence artificielle
Radio cognitive et intelligence artificielle
 

Similaire à 01 programmation mobile - android - (introduction)

Chapitre 1 android
Chapitre 1 androidChapitre 1 android
introAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfintroAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdf
RihabBENLAMINE
 
Ch1. Développement mobile
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobile
Haifa Chorfi
 
Chapitre1+2_35793cfca4b5d005659df01473b886fb.pdf
Chapitre1+2_35793cfca4b5d005659df01473b886fb.pdfChapitre1+2_35793cfca4b5d005659df01473b886fb.pdf
Chapitre1+2_35793cfca4b5d005659df01473b886fb.pdf
yahialinus
 
Cours android
Cours androidCours android
Cours android
Ad Hafsa
 
cours-android.pdf
cours-android.pdfcours-android.pdf
cours-android.pdf
med_univ78
 
1-android.pdf
1-android.pdf1-android.pdf
1-android.pdf
FethiBenYahia1
 
Android introvf
Android introvfAndroid introvf
Android introvf
Anne-Marie Pinna-Dery
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contact
Jasmine Conseil
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contact
Jasmine Conseil
 
Hello droid
Hello droidHello droid
Hello droid
Wiki Info Systeme
 
Environnement Android.pdf
Environnement Android.pdfEnvironnement Android.pdf
Environnement Android.pdf
RihabBENLAMINE
 
chapitre-1-introduction-plateforme-android (2).pdf
chapitre-1-introduction-plateforme-android (2).pdfchapitre-1-introduction-plateforme-android (2).pdf
chapitre-1-introduction-plateforme-android (2).pdf
olfaharrabi2
 
android.pdf
android.pdfandroid.pdf
android.pdf
med_univ78
 
Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016
Hadina RIMTIC
 
Chapitre 1-introduction-plateforme-android
Chapitre 1-introduction-plateforme-androidChapitre 1-introduction-plateforme-android
Chapitre 1-introduction-plateforme-android
Salah Gharbi
 

Similaire à 01 programmation mobile - android - (introduction) (20)

Chapitre 1 android
Chapitre 1 androidChapitre 1 android
Chapitre 1 android
 
introAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfintroAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdf
 
Intro Android
Intro AndroidIntro Android
Intro Android
 
Ch1. Développement mobile
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobile
 
Chapitre1+2_35793cfca4b5d005659df01473b886fb.pdf
Chapitre1+2_35793cfca4b5d005659df01473b886fb.pdfChapitre1+2_35793cfca4b5d005659df01473b886fb.pdf
Chapitre1+2_35793cfca4b5d005659df01473b886fb.pdf
 
Cours android
Cours androidCours android
Cours android
 
Chapitre 4 sem
Chapitre 4 semChapitre 4 sem
Chapitre 4 sem
 
cours-android.pdf
cours-android.pdfcours-android.pdf
cours-android.pdf
 
1-android.pdf
1-android.pdf1-android.pdf
1-android.pdf
 
Android introvf
Android introvfAndroid introvf
Android introvf
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contact
 
Android Studio, premier contact
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contact
 
Hello droid
Hello droidHello droid
Hello droid
 
Environnement Android.pdf
Environnement Android.pdfEnvironnement Android.pdf
Environnement Android.pdf
 
Développement Sous Android
Développement Sous AndroidDéveloppement Sous Android
Développement Sous Android
 
Cours 1 Android
Cours 1 AndroidCours 1 Android
Cours 1 Android
 
chapitre-1-introduction-plateforme-android (2).pdf
chapitre-1-introduction-plateforme-android (2).pdfchapitre-1-introduction-plateforme-android (2).pdf
chapitre-1-introduction-plateforme-android (2).pdf
 
android.pdf
android.pdfandroid.pdf
android.pdf
 
Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016Android workshop - Bootcamp du Mauriapp Challenge 2016
Android workshop - Bootcamp du Mauriapp Challenge 2016
 
Chapitre 1-introduction-plateforme-android
Chapitre 1-introduction-plateforme-androidChapitre 1-introduction-plateforme-android
Chapitre 1-introduction-plateforme-android
 

Plus de TECOS

Bouhamed vuejs-meetup-tecos
Bouhamed vuejs-meetup-tecosBouhamed vuejs-meetup-tecos
Bouhamed vuejs-meetup-tecos
TECOS
 
D3 js-last
D3 js-lastD3 js-last
D3 js-last
TECOS
 
Summer internship
Summer internshipSummer internship
Summer internship
TECOS
 
Mohamed bouhamed - ccna2
Mohamed bouhamed  - ccna2Mohamed bouhamed  - ccna2
Mohamed bouhamed - ccna2
TECOS
 
Mohamed bouhamed - ccna1
Mohamed bouhamed  -  ccna1Mohamed bouhamed  -  ccna1
Mohamed bouhamed - ccna1
TECOS
 
Mobile certified
Mobile certifiedMobile certified
Mobile certified
TECOS
 
Analytics certified
Analytics certifiedAnalytics certified
Analytics certified
TECOS
 
Ad words certified
Ad words certifiedAd words certified
Ad words certified
TECOS
 
Télémétrie d’openstack
Télémétrie d’openstackTélémétrie d’openstack
Télémétrie d’openstack
TECOS
 
cloudu certification
cloudu certificationcloudu certification
cloudu certification
TECOS
 
Internship report
Internship reportInternship report
Internship report
TECOS
 
Gsm presntation
Gsm presntationGsm presntation
Gsm presntation
TECOS
 
Td gsm iit
Td gsm iitTd gsm iit
Td gsm iit
TECOS
 
Complément réseaux informatiques
Complément réseaux informatiquesComplément réseaux informatiques
Complément réseaux informatiques
TECOS
 
Cours réseauxs gsm
Cours réseauxs gsmCours réseauxs gsm
Cours réseauxs gsm
TECOS
 
Cours sécurité 2_asr
Cours sécurité 2_asrCours sécurité 2_asr
Cours sécurité 2_asr
TECOS
 
chapitre 1
chapitre 1chapitre 1
chapitre 1
TECOS
 
Serveur web iit_asr_p2i
Serveur web iit_asr_p2iServeur web iit_asr_p2i
Serveur web iit_asr_p2i
TECOS
 
Examen
Examen Examen
Examen
TECOS
 
03 programmation mobile - android - (stockage, multithreads, web services)
03 programmation mobile - android - (stockage, multithreads, web services)03 programmation mobile - android - (stockage, multithreads, web services)
03 programmation mobile - android - (stockage, multithreads, web services)
TECOS
 

Plus de TECOS (20)

Bouhamed vuejs-meetup-tecos
Bouhamed vuejs-meetup-tecosBouhamed vuejs-meetup-tecos
Bouhamed vuejs-meetup-tecos
 
D3 js-last
D3 js-lastD3 js-last
D3 js-last
 
Summer internship
Summer internshipSummer internship
Summer internship
 
Mohamed bouhamed - ccna2
Mohamed bouhamed  - ccna2Mohamed bouhamed  - ccna2
Mohamed bouhamed - ccna2
 
Mohamed bouhamed - ccna1
Mohamed bouhamed  -  ccna1Mohamed bouhamed  -  ccna1
Mohamed bouhamed - ccna1
 
Mobile certified
Mobile certifiedMobile certified
Mobile certified
 
Analytics certified
Analytics certifiedAnalytics certified
Analytics certified
 
Ad words certified
Ad words certifiedAd words certified
Ad words certified
 
Télémétrie d’openstack
Télémétrie d’openstackTélémétrie d’openstack
Télémétrie d’openstack
 
cloudu certification
cloudu certificationcloudu certification
cloudu certification
 
Internship report
Internship reportInternship report
Internship report
 
Gsm presntation
Gsm presntationGsm presntation
Gsm presntation
 
Td gsm iit
Td gsm iitTd gsm iit
Td gsm iit
 
Complément réseaux informatiques
Complément réseaux informatiquesComplément réseaux informatiques
Complément réseaux informatiques
 
Cours réseauxs gsm
Cours réseauxs gsmCours réseauxs gsm
Cours réseauxs gsm
 
Cours sécurité 2_asr
Cours sécurité 2_asrCours sécurité 2_asr
Cours sécurité 2_asr
 
chapitre 1
chapitre 1chapitre 1
chapitre 1
 
Serveur web iit_asr_p2i
Serveur web iit_asr_p2iServeur web iit_asr_p2i
Serveur web iit_asr_p2i
 
Examen
Examen Examen
Examen
 
03 programmation mobile - android - (stockage, multithreads, web services)
03 programmation mobile - android - (stockage, multithreads, web services)03 programmation mobile - android - (stockage, multithreads, web services)
03 programmation mobile - android - (stockage, multithreads, web services)
 

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. Les Activité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. Les content providers et les bases de données 9. Les Broadcast Receivers 10. Les Services 11. Multimedia 12. Les Notifications
  • 5. 1. Introduction Une application mobile 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 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 - ...
  • 13. Application hybride Application mobile hybride = Native + Web
  • 14. 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
  • 15. A noter Smartphone = - Communication ( Intégrer SMS … ) - Mobilité ( Intégrer localisation … ) - Utilisabilité ( Simple … ) - Performance ( Compression image … )
  • 17. Système d’exploitation Open Source 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 : Open Source 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 Plus que 95% de « mobile malware » sur Android.
  • 26. 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.
  • 27. 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.
  • 28. 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.
  • 29. 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
  • 30. 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
  • 31. Android 5 ! Eclipse -- > Android Studio Ant -- > Gradle
  • 32. 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
  • 33. d. Structure d’un projet Android (2) Android studio “project view”
  • 34. d. Structure d’un projet Android (3) Android studio “android view”
  • 35. 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...)
  • 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 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...).
  • 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 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)...
  • 41. 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
  • 42. 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