0% ont trouvé ce document utile (0 vote)
154 vues8 pages

Cours Android FSR Ch1

Transféré par

ziad.shop12
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
154 vues8 pages

Cours Android FSR Ch1

Transféré par

ziad.shop12
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

24/10/2022

Introduction

QUESTIONS
DÉVELOPPEMENT POUR MOBILES
(ANDROID)  COMMENT PROGRAMMER UN APPAREIL MOBILE?

 QUEL LANGAGE DE PROGRAMMATION UTILISER?


Chapitre 1 :
Prise en main  QUEL SYSTÈME D'EXPLOITATION CHOISIR?

Dr. KHALIFI Hamid


[email protected]
DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID

Introduction Introduction
CONTRAINTES
DE PLUS EN PLUS D’ÉQUIPEMENTS
 M ÉM O I R E (FA I B LE M ÉM O I R E R A M DI SPO NI B LE)
 CPU (PR O CESSEU R ET CO NSO M M AT I O N DES R ESSO U R CES)
 FA I B LE DÉB I T ET DI SCO NT I NU I T É DES R ÉSEAU X
 B AT T ER I E ET CO NSO M M AT I O N D’ ÉNER GI E
 FR A GM ENTAT I O N DES SY ST ÈM ES D’ EXPLO I TAT I O N ET M AT ÉR I ELLE
 I M PO R TA NT T EM PS D’A CCÈS (EN ÉCR I T U R E) SU R DI SQU E
 CYCLE DE VI E SPÉCI FI QU E DES A PPLI CAT I O NS
 CO NCEPT I O N PA R T I CU LI ÈR E DES I H M (T Y PE D’ É CR A N, M O DE
PO R T R A I T O U PAY SA GE, T EXT E DE PET I T ES PO LI CES, FA I B LE
R ÉSO LU T I O N DE TO U CH É DE LA DA LLE TA CT I LE ( ~2 5 PI XELS), …

DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID

Introduction Introduction
CONCURRENTS DE CE MARCHÉ C’EST QUOI ?
 A PPLE AVEC IO S (A NCIENNEM ENT IPH O NE O S)  A NDR OI D EST U N SY ST ÈM E D'E XPLO I TAT I O N O PEN SO U R CE
O R I ENT É DI SPO SI T I F M O B I LES (SM A R T PH O NES , TA B LET T ES, T V. . . ).
 GO O GLE AVEC A NDR O ID (LA NCÉ EN JU IN 2007)
 DI SPO NI B I LI T É DU CO DE .
 R I M (R E SEA R CH IN M OTIO N) AVEC B LA CK B ER RY O S  I M PO R TA NT E CO M M U NAU T É D’ U T I LI SAT E U RS.
 M ICR O SO FT AVEC WINDOWS PH O NE  I L S’A GI T DO NC D’ UN ENSEM B LE DE LO GI CI ELS QU I SER T
D’ I NT ER FA CE ENT R E LE M AT ÉR I EL (LES CO M PO SA NT S DU
 SA M SU NG AVEC B A DA (A R R ÊTÉ EN 2014) T ÉLÉPH O NE, D’ UNE TA B LET TE . . . ) ET LES LO GI CI ELS A PPLI CAT I FS
(CEU X QU E VO U S A LLEZ DÉVELO PPER ) .
 H P AVEC PA LM WEB O S DEVENU WEB O S
 SY ST ÈM E D’ EXPLO I TAT I O N B A SÉ SU R LE NOYAU LI NU X
 NO K IA AVEC SYM B IA N O S (A R R ÊTÉ EN 2011).
 ENVI R O NNEM ENT DE DÉVELO PPEM ENT GR AT U I T
 XI AO M I AVEC M IU I (M E YO U I) DÉR IVÉ D' A NDR O ID

DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID

1
24/10/2022

Introduction Introduction
HISTOIRE L’HEURE ACTUELLE
 I NI TIA LEM ENT U N O S PO U R A PPA R EIL PH OTO
 IL Y A UN APPAREIL ANDROID POUR 2,5 HUMAINS
 AO Û T 2005 – GO O GLE A CH ÈTE LA STA R TU P A NDR O ID INC
SUR TERRE.
 NOVEM B R E 2007 – « L’O PEN H A NDSET A LLIA NCE »
 3 3 PA R T E N A IR E S (SA M SU N G, M OTO R O LA , H TC, LG, IN T E L,
H UAWEI, A LCATEL, ...)
 STA N DA R D E T N O R M E "A PPA R E IL M O B ILE AV EC A NDR O ID"
 A N DR O ID SER A M IS À LEU R DISPO SITIO N GR ATU ITEM ENT.
EN CO NTR EPA R TIE, GO O GLE PR ÉINSTA LLE SES SERVICES
(NAVIGATEU R , M OTEU R DE R ECH ER CH E, M ESSA GER IE GM A IL).
 DÉCEM B R E 2008 – A NDR O ID SDK 1.0 SU R U N T - M O B ILE G1
 O CTO B R E 2010 - A NDR O ID DEVIENT R ETA B LE PO U R GO O GLE

DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID

Introduction Le Système
VERSIONS :
 AV R I L 2 0 0 9 : 1 . 5 ( C U P C A K E )
 SEPTEMBRE 2009 : 1.6 ( DONUT) OS BASÉ SUR UN NOYAU LINUX
 O C TO B R E 2 0 0 9 : 2 . 0 / 2 . 1 ( EC L A I R )
 M A I 2 0 1 0 : 2 . 2 ( F R OYO )
JAVA – SDK Android
 D ÉC E M B R E 2 0 1 0 : 2 . 3 . X ( G I N G E R B R E A D )  VM : Dalvik Machine Virtuelle
 J U I L L E T 2 0 1 1 : 3 . X ( H O N E YC O M B)
 D ÉC E M B R E 2 0 1 1 : 4 . 0 . X ( I C E S C R E A M )  VM à registres illimités (non à pile comme la JVM)
 J U I N 2 0 1 2 : 4 . X . X ( J E L LY B E A N )
 O C TO B R E 2 0 1 3 : 4 . 4 . X ( K I T K AT )
 Optimisation mémoire
 N OV E M B R E 2 0 1 4 : 5 . X . X ( LO L L I P O P )  Optimisation vitesse d’initialisation
 O C TO B R E 2 0 1 5 : 6 . 0 . 1 ( M A RS H M A L LO W )
 A O U T 2 0 1 6 : 7 . X . X ( N O U G AT )  Optimisation vitesse d’exécution (2x JVM classique)
 A O U T 2 0 1 7 : 8 . 1 . X ( O R EO )
 AOUT 2018 : 9.0.X (PIE)
 Chaque processus Android possède sa propre VM
 SEPTEMBRE 2019 : 10.0.X ( ANDROID 10) Xml pour les interfaces
 SEPTEMBRE 2020 : 11.0.X ( ANDROID 11)
 O C TO B R E 2 0 2 1 : 1 2 . 0 . X ( A N D R O I D 1 2 )
 AOUT 2022 : 13.0.X (ANDROID 13)

DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID

Le Système ARCHITECTURE Le Système ARCHITECTURE

DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID

2
24/10/2022

Le Système ARCHITECTURE Le Système ARCHITECTURE

DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID

Le Système ARCHITECTURE Le Système ARCHITECTURE

DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID

Fonctionnement Généralités Fonctionnement Généralités

 Les applications sont écrites en Java PRINCIPES DU DÉVELOPPEMENT EMBARQUÉ


 Le code compilé "dex" ainsi que les ressources COMPILATION CROISÉE
(images, layout...) sont regroupés dans une archive au
format "apk" par les outils du SDK
 Cette archive "apk" est un tout permettant la
distribution et l'installation de l'application sur exécution native
n'importe quelle plateforme Android. (compilation croisée)

édition - compilation
 Déploiement spécifique - environnements dédiés
exécution dans un émulateur
 Debug sur emulateur puis sur device
(compilation native)

DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID

3
24/10/2022

Fonctionnement Packaging : Déploiement Fonctionnement Indépendance


Un des aspect les plus important d’Android est la réutilisabilité
ARCHIVE : APK  Chaque application peut utiliser des ”morceaux d’autres
 « .dex » : « .class » applications” (si elle le permettent)
 Par exemple si votre application permet de retoucher des photos et
 « res » : ressources de l’application (icônes, images, que vous désirez publier cette photo vous pouvez utiliser toutes les
XML , …) applications déjà présentes pour réaliser cette tâche (Facebook,
 « Android-manifes.xml » : gestion de l’exécution et LinkedIn, Mail ...). Et sans utiliser le code de cette application tierce
juste en appeler la partie intéressante.
des permissions
Ainsi le système doit être capable :
 De lancer n’importe quelle partie exposée d’une application sans en
DÉPLOIEMENT lancer la totalité.
 Appuyez et cliquez pour installer « Puch and click for  Donc les application Andoid n’ont pas de point d’entrée global
(méthode main()). Mais sont composés d’éléments indépendants ou
install » chacun peut être lancé individuellement.

DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID

Fonctionnement Indépendance Fonctionnement Eléments Fondamentaux


ACTIVITÉ (ACTIVITY)
 Un composant = un point d'entrée potentiel dans  Une application Android est composée d’écrans.
l'application.
 Un « écran » correspond à une activité « Activity »
 Une application peut lancer un composant d'une
 C ’est équivalent d’une fenêtre (Windows, Linux).
autre application.
 Chaque activité est indépendante des autres.
 Plusieurs points d'entrée potentiels  On doit définir quelle est la première activité à
(pas de méthode main) exécuter lors du lancement de l'application
 Une activité doit hériter de la classe :
 Contrairement <> aux applications Java classique
android.app.Activity
 Une application est donc un ensemble d'activités.

DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID

Fonctionnement Eléments Fondamentaux Fonctionnement Eléments Fondamentaux


ACTIVITÉ (ACTIVITY) SERVICE
 Exemple d'une application de SMS :  Un ser vice ne possède pas d'interface utilisateur
 Une activité po ur envo yer le SMS  Tourne en arrière plan
 Une autre po ur cho isir un co ntact Exemple :
 Une autre po ur afficher un histo rique d'échanges.
 Lecture de musique
 Collecte de données affichables dans une activité
 Pour naviguer dans l'application d’une activité à l’autre
 Suivi GPS
chaque activité doit elle -même lancer l'activité suivante.
 Vérification de mise à jour
 Exemple :
 Une actio n de l’utilisateur, bo uto n, menu o u  Un ser vice s'exécute dans un processus fil d'exécution
l’application fait aller sur l’écran suivant (Thread) et donc ne bloque pas le reste du terminal quand
 Le bo uto n back ramène sur l’écran précédent il tourne en fond (indépendamment de toute activité).

DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID

4
24/10/2022

Fonctionnement Eléments Fondamentaux Fonctionnement Eléments Fondamentaux


LES RÉCEPTEURS (BROADCASTRECEIVER) FOURNISSEUR DE CONTENU (CONTENT PROVIDER)
 Réception des évènements systèmes ou d’une autre  Les fournisseurs de contenu permettent de partager du
application contenu entre les applications.
 Émission et réception d’intentions ( intent)  Une application s'en sert pour rendre public certaines de
 Les récepteurs sont : ses données, Par exemple, il existe un Content Provider
 Des éléments inactifs qui attendent un évènement gérant les Contacts d’un téléphone.
 Il y a des évènements système :  Le données sont donc exposées dans une classe héritant de
 Batterie faible android.content.ContentProvider, qui se compose d’une :
 L'utilisateur a pris une pho to …  URI : Le chemin d’accès vers un ContentProvider.
 Methodes :
 Il est possible de définir ses propres évènements • Insert()
 Ils peuvent également utiliser la Notification Manager pour • Update()
signaler quelque chose à l'utilisateur (Icone, vibration, • Delete()
alerte sonore,…) • Query()

DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID

Fonctionnement Eléments Fondamentaux Fonctionnement Eléments Fondamentaux


LES INTENTIONS (INTENT) MANIFEST.XML
 Les fournisseurs de contenu (Content provider) sont  Spécifier les ressources utilisées
 Sécuriser le droit d’accès aux ressources
activés par une requête d'un ContentResolver.
 Utiliser ce qui est nécessaire
 Mais les 3 autres systèmes ( Activity, Service,
 Point de départ de toute application Android
BroadCast Receiver) sont activés par des messages
 Permet de déclarer ce que l’application contient (activités,
asynchrone appelés "Intent". ser vices...)
 Une intention dérive de android.content.Intent  Précise les permissions de l’application (contrôle de la
 Une intention possède une action et un contenu webcam, accès au réseaux, accès au ser vice de localisation,
droit de passer des appels...)
particulier.
 Précise le nom du package java utilisant l’application.
 Précise la version d’Android minimum nécessaire
 Déclare les librairies utilisées

DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID

Fonctionnement Première application Android


CRÉATION D’UN NOUVEAU PROJET
PREMIÈRE APPLICATION  Android Studio contient un assistant de création
d’applications
ANDROID

DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID

5
24/10/2022

Fonctionnement Première application Android Fonctionnement Première application Android


 Android Studio propose plusieurs projets de base.  L’assistant demande le nom du projet, son package,
son emplacement, et le niveau minimal de l’API.
 En général, on part de celui appelé Empty Activity.

DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID

Fonctionnement Première application Android Fonctionnement Première application Android


SÉLECTION DE L’API MINIMUM
SÉLECTION DE L’API MINIMUM
 Ch aq u e A PI ap p or te d es fon c ti on n al i tés su p p l ém en tai re s avec
c om p atib i l i té asc en d an te . Cer tai n es fon c ti on n al i tés d evi en n en t
d ép réc i ées au f i l d u tem p s, m ais resten t gén éral em en t
d i sp on i b l es .
 O n sou h ai te tou jou rs p rogram m er avec l a d er n i ère A PI
(fon c ti on s p l u s com p l ètes et m od er n es), m ai s l es u ti l i sateu rs ont
sou ven t d es sm ar tp h on es p l u s an c i en s, q u i n ’on t p as c ette A PI .
 O r A n d roi d n e p rop ose au c u n e m i se à jou r m aj eu re. L es
sm ar tp h on es resten t tou te l eu r vi e avec l ’A PI q u ’ i l s on t à l a
n ai ssan c e .
 Les d ével o p p eu rs d oi ven t d onc c h oi sir u n e A PI q u i c or resp on d à
l a m ajor i té d es sm ar tp h on es exi stan t su r l e m arc h é.

DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID

Fonctionnement Première application Android Fonctionnement Première application Android


VUE GLOBALE ÉDITEUR GRAPHIQUE (DESIGN MODE)

DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID

6
24/10/2022

Fonctionnement Première application Android Fonctionnement Première Exécution


ÉDITEUR GRAPHIQUE (TEXT MODE)
 L’application est prévue pour tourner sur un appareil
(smartphone ou tablette) réel ou simulé (virtuel).

 Le SDK Android permet de :


 Installer l’application sur une vraie tablette ou
smartphone connectée par USB.
 Simuler l’application sur un périphérique virtuel AVD

 AVD = Android Virtual Device, permettent de simuler


l’exécution d’un terminal Android sur un ordinateur.

 Ces terminaux sont personnalisables (version d’Android,


type de processeur, espace de stockage...).

DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID

Fonctionnement Première Exécution Fonctionnement Première Exécution


CRÉATION D’OUTIL AVD CRÉATION D’OUTIL AVD
 A p aram étrer : M od èl e d e tab l ette ou tél ép h on e à si m u l er,
Versi on d u systèm e A n d roi d , O r i en tati on d e l ’éc ran , O p ti on s d e
si m u l ati on (R A M , Stoc kage, SD Card , ...)

DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID

Fonctionnement Première Exécution Fonctionnement Première Exécution


CRÉATION D’OUTIL AVD L’EMULATEUR : RÉSULTAT :

DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID DÉVELOPPEMENT POUR MOBILES (ANDROID) - DR. KHALIFI HAMID

7
24/10/2022

Vous aimerez peut-être aussi