DÉVELOPPEMENT D’APPLICATIONS MOBILES

80
DÉVELOPPEMENT DÉVELOPPEMENT D’APPLICATIONS D’APPLICATIONS MOBILES MOBILES Présenté par : M. Bouderbala Promotion : 3 ème Année LMD Informatique / Semestre N°6 Etablissement : Université de Relizane Année Universitaire : 2020/2021

Transcript of DÉVELOPPEMENT D’APPLICATIONS MOBILES

Page 1: DÉVELOPPEMENT D’APPLICATIONS MOBILES

DÉVELOPPEMENT DÉVELOPPEMENT D’APPLICATIONS D’APPLICATIONS MOBILESMOBILES

Présenté par : M. Bouderbala

Promotion : 3ème Année LMD Informatique / Semestre N°6

Etablissement : Université de Relizane

Année Universitaire : 2020/2021

Page 2: DÉVELOPPEMENT D’APPLICATIONS MOBILES

AndroidAndroid

Page 3: DÉVELOPPEMENT D’APPLICATIONS MOBILES

AndroidAndroid

• Andorid est un système d'exploitation mobile open source basé sur lenoyau Linux et développé actuellement par Google.

• Google met à disposition un kit de développement (SDK) basé sur lelangage Java.

• Le système a d'abord été conçu pour les smartphones et tablettes tactiles,• Le système a d'abord été conçu pour les smartphones et tablettes tactiles,puis s’est diversifié dans les objets connectés et ordinateurs comme lestélévisions (Android TV), les voitures (Android Auto), les ordinateurs(Android-x86) et les smartwatch (Android Wear).

• Le système a été lancé en juin 2007 à la suite du rachat par Google en2005 de la startup du même nom,

• En 2015, Android est le système d'exploitation le plus utilisé dans le mondeavec plus de 80 % de parts de marché dans les smartphones.

Page 4: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Android est défini comme étant une pile de logiciels destinésà fournir une solution clé en main pour les appareils mobiles.

Cette pile comporte un système d'exploitation (comprenant

Architecture d’AndroidArchitecture d’Android

Cette pile comporte un système d'exploitation (comprenantun noyau Linux), les applications clés telles que le navigateurweb, le téléphone et le carnet d'adresses ainsi que deslogiciels intermédiaires entre le système d'exploitation et lesapplications.

Page 5: DÉVELOPPEMENT D’APPLICATIONS MOBILES

L'ensemble est organisé en cinq couches distinctes :

Le noyau Linux avec les pilotes qui lui confère notamment descaractéristiques multitâches ;

Des bibliothèques logicielles telles que WebKit,OpenGL, SQLite …

Un environnement d'exécution et des bibliothèques permettant

Architecture d’AndroidArchitecture d’Android

Un environnement d'exécution et des bibliothèques permettantd'exécuter des programmes prévus pour la plate-forme Java ;

Un framework - kit de développement d'applications ;

Un lot d'applications standard parmi lesquelles il y a un environnementde bureau, un carnet d'adresses, un navigateur web et un téléphone.

Page 6: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Architecture d’AndroidArchitecture d’Android

Page 7: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Architecture d’AndroidArchitecture d’Android

Page 8: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Architecture d’AndroidArchitecture d’Android

Page 9: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Architecture d’AndroidArchitecture d’Android

Page 10: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Architecture d’AndroidArchitecture d’Android

Page 11: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Architecture d’Architecture d’AndroidAndroid

Page 12: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Android et la plateforme JavaAndroid et la plateforme Java Jusqu'à sa version 4.4, Android comporte une machine virtuelle nommée

Dalvik, qui permet d'exécuter des programmes prévus pour la plate-formeJava.

C'est une machine virtuelle conçue dès le départ pour les appareilsmobiles et leurs ressources réduites (peu de puissance de calcul et peu demémoire)mémoire)

Le bytecode de Dalvik est différent de celui de la machine virtuelle Java deOracle (JVM), et le processus de construction d'une application estdifférent :

1. le code source de l'application, en langage Java est tout d'abord compiléavec un compilateur standard qui produit du bytecode pour JVM (bytecodestandard de la plateforme Java)

2. ce dernier est traduit en bytecode pour Dalvik par un programme inclusdans Android, du bytecode qui pourra alors être exécuté

Page 13: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Compilation d’un programme JavaCompilation d’un programme Java

Page 14: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Production d’une ApplicationProduction d’une Application

Android Manifest présente des informations essentielles sur

votre application pour le système Android

Page 15: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Android Runtime (ART)

A partir de la version lollipop sortie en 2014, l'environnement d'exécutionART (Android RunTime) remplace la machine virtuelle Dalvik. Cetenvironnement d'exécution plus performant a été développé par Google pourpallier le potentiel limité de Dalvik, créée en 2007.

Avec ART, contrairement à la machine virtuelle java, les fichiers .apk ne sontAvec ART, contrairement à la machine virtuelle java, les fichiers .apk ne sontplus lancés directement, mais décompressés et lancés avec de nouvellesbibliothèques et API ; les applications prennent ainsi plus de place (+20 %),mais les gains en performance et en autonomie des batteries sont

conséquents (+20 à 30 %).

Page 16: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Android, les Caractéristiques

Android supporte les fonctionnalités suivantes:◦ Stockage: utilise la base SQLite, un SGBDR embarqué léger

◦ Connectivité évoluée: Support du WIFI-Direct et AndroidBeam, qui permet (version Kitkat uniquement) de faire du partageinstantané et la diffusion de media grâce au protocole NFC quipermet des communications courte portéepermet des communications courte portée

◦ Messaging : Support du MMS et SMS

◦ Géolocalisation : Support de Google Map intégrable dans vosapplications

◦ Services d’arrière-plan et applications

Page 17: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Les services offerts par Android facilitent notammentL'exploitation Des réseaux de télécommunications : GSM etUMTS, Bluetooth,Wi-Fi.

La manipulation de médias, notamment de la vidéo H.264, del'audio MP3 et des images JPEG ainsi que d'autres formats,

L'exploitation des capteurs de mouvements, la caméra, la

Android, les Caractéristiques

L'exploitation des capteurs de mouvements, la caméra, laboussole et le récepteur GPS, l'utilisation de l'écran tactile,

Le rendu d'images en 2D ou 3D en utilisant le processeurgraphique,

l'affichage de page web,

l'exécution multitâche des applications et l'envoi de messagesSMS.

Page 18: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Android est distribué en open source sous licenceApache.

La licence autorise les constructeurs qui intègrent Android dansleurs appareils à y apporter des modifications leur permettant de sedistinguer de leurs concurrents et il a été adopté par de nombreuxconstructeurs de produits concurrents de l'iPhone.

Le noyau Linux est utilisé pour les fondations d'Android, les services

AndroidAndroid

Le noyau Linux est utilisé pour les fondations d'Android, les servicesclassiques des systèmes d'exploitation : utilisation des périphériques,accès aux réseaux de télécommunication, manipulation de lamémoire et des processus et contrôle d'accès. Il s’agit d'unebranche du noyau Linux, modifiée en vue de son utilisation sur desappareils mobiles.

L'équipe de développement d'Android a apporté de nombreusesaméliorations au noyau Linux,

Page 19: DÉVELOPPEMENT D’APPLICATIONS MOBILES

LogoLogo

Bugdroid, la mascotte représentant Android.

Page 20: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Android VersionAndroid Version

Page 21: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Android VersionAndroid Version

Page 22: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Android (fork)

MIUI est une distribution propriétaire du systèmed'exploitation Android, créée par la sociétéchinoise Xiaomi Tech

Replicant est un système d'exploitation Replicant est un système d'exploitationmobile et libre dérivé de CyanogenMod (lui-mêmedérivé d'Android et plus exactement de l'Android OpenSource Project

La société Jide a présenter dernièrement Remix OS,le fork d'Android pour PC, qui est disponible en versionalpha

Page 23: DÉVELOPPEMENT D’APPLICATIONS MOBILES

L'Open Handset Alliance (abrégé OHA) est un consortium de plusieurs

entreprises dont le but est de développer des normes ouvertes pour les

appareils de téléphonie mobile.

Le consortium a été créé le 5 novembre 2007 à l'initiative de Google qui a

su fédérer autour de lui 34 compagnies

Open Handset AllianceOpen Handset Alliance

su fédérer autour de lui 34 compagnies

Page 24: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Rovio une entreprise fondé par trois étudiants d'une université de

technology en Finland a eu des revenues d'environ €75.4 million en

2011 grâce à un jeu gratuit Angry Birds, ils ont gagné plus d'un million

de dollars par mois, ceci à travers les publicités qui se lancent

Motivation

automatiquement suite à chaque lancement du jeu.

Page 25: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Evolution

Page 26: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Jusqu'a Mai 2013, pour développer des applications pour Android,Google mettait en avant l'utilisation d'Eclipse couplé avec le PluginADT (Android Development Tools). Cette première solution a tout demême permis à Google de posséder le Store d'application le plusriche. Eclipse est un IDE qui a été développé par IBM puis est passéopen source en 2001, la Fondation Eclipse gère maintenant l'IDE.Eclipse possède les avantages d'être modulable ainsi que multiplate-

Software development

Eclipse possède les avantages d'être modulable ainsi que multiplate-forme.

C'est durant la Google I/O de 2013, que Google a montré la premièreversion d'Android Studio. En access preview au départ pour saversion 0.1, puis passé en béta en juin 2014 pour la version 0.8, cetIDE n'a pas été développé de zéro mais est basé sur l'IDEde JetBrains, IntelliJ IDEA. Cette société propose de nombreux IDEpour différents langages (PhpStorm, RubyMine, ...) mais qui sont touspayant. Dans sa dernière version, Android Studio offre toutes lespossibilités nécessaire pour développer une application Androidcomplète.

Page 27: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Le SDK (Software development kit)

(SDK) d'Android est un ensemble complet d'outils dedéveloppement Il inclut un débogueur, des bibliothèqueslogicielles, un émulateur basé sur QEMU, de ladocumentation, des exemples de code et des tutoriaux.

L'IDE officiellement supporté était Eclipse combiné auplugin d'outils de développement d'Android (ADT),

Mais depuis 2015, Google officialise Android Studio quidevient alors l'IDE officiel pour le SDK Android.

Page 28: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Le SDK (Software development kit)

Le SDK comprend un émulateur qui permet de simuler lesdifférentes versions d'Android, permettant ainsi aux développeursde tester leurs applications ou de tester les fonctionnalitésd'Android.

Le SDK contient plusieurs images en fonction des différentesversions d'Android

Chaque version du SDK Android contient l'intégralité du codesource d'Android, ce qui permet aux développeurs de créer leurspropres versions d'Android

L'Android Debug Bridge (ADB) est un outil inclus dans le packageAndroid SDK. Il se compose d'un programme client et d'unprogramme serveur qui communiquent entre eux

Page 29: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Le développementLe développement

Le développement d'applications pour Android s'effectue avec un ordinateurpersonnel sous Mac OS, Windows ou Linux en utilisant le JDK de la plate-forme Java et des outils pour Android.

Des outils qui permettent de manipuler le téléphone ou la tablette, de lasimuler par une machine virtuelle, de créer des fichiers APK (les fichiers depaquet d'Android), de déboguer les applications.

Langages De Développement:

Lang. Java avec Android SDK (Software Dev. Kit)

Lang. C++ avec Android NDK (Native Dev. Kit)

Utilisation d'un IDE est recommandée

Android Studio

Eclipse (avec le plugin ADT)

Autres IDE peuvent être utilisés tels que NetBeans

Page 30: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Comparaison entre Android Studio et Eclipse

Page 31: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Android Studio

Page 32: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Android SDK

Page 33: DÉVELOPPEMENT D’APPLICATIONS MOBILES

AVD

Page 34: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Emulateur

Page 35: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Structure d’un projet

Page 36: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Structure d’un projet

• Un projet possède la structure normalisée.

• Il y a deux types de fichiers, ceux qu’on utilise tout le temps,et ceux qui ne sont là que pour la compilation et ledéploiement.déploiement.

Remarque:

sur Abdroid Studio et pour mieux afficher la structure du projet, 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 37: DÉVELOPPEMENT D’APPLICATIONS MOBILES

le manifeste (AndroidManifest.xml)

Le fichier manifeste est un élément clef du projet, il définit :

• Le projet (composants de l'application et leurs relations ) et sera interprété par le système et le Store ;

• les dépendances systèmes du projet (par exemple : la • les dépendances systèmes du projet (par exemple : la version du système, les instruments nécessaires, la géolocalisation)

• la version du projet (nom et numéro de version )

Spécifie les permissions quand à ce que l’app peut faire vis à vis des utilisateurs

Page 38: DÉVELOPPEMENT D’APPLICATIONS MOBILES

le manifeste (AndroidManifest.xml)

Il décrit l'application à construire et ses composants ; ilpermet donc au système de « connaître » l'application :

• nom, • nom,

• logo et version

• compatibilité (écran, version d'Android, …)

• Permissions

• composants (activité, service, BR, CP)

Page 39: DÉVELOPPEMENT D’APPLICATIONS MOBILES

le manifeste (AndroidManifest.xml)

Page 40: DÉVELOPPEMENT D’APPLICATIONS MOBILES

le dossier (res)

contient les ressources du projet (les layouts, les chaînes de caractères, les images, les fichiers internes, les fichiers XML, les couleurs et thèmes) dont les sous-dossiers sont :

• Drawable (pour les images, usuellement vous trouverez trois dossiers, un • Drawable (pour les images, usuellement vous trouverez trois dossiers, un par qualité haute, moyenne, faible),• Layout (pour la définition des différents fichiers de layouts des activités qui déclarent et positionnent les composants graphiques),• Values (pour les chaînes de caractères, les couleurs, les thèmes, les préférences…),• Raw (pour les fichiers),• XML (pour les fichiers XML) ;

Page 41: DÉVELOPPEMENT D’APPLICATIONS MOBILES

le dossier (res)

Page 42: DÉVELOPPEMENT D’APPLICATIONS MOBILES

le dossier (res)

Page 43: DÉVELOPPEMENT D’APPLICATIONS MOBILES

le dossier (res)

Comment gérer les ressources en fonction de la configuration de chaque terminal Android ?

C’ést-à-dire de la langue, taille d'écran, ratio d'écran, résolution, version d'Android, ...version d'Android, ...

Ressources prédéfiniesLe SDK Android propose des ressources prédéfiniesA manipuler comme les ressources du projet mais préfixé par Android.

Page 44: DÉVELOPPEMENT D’APPLICATIONS MOBILES

le dossier (res)

Comme Android a pour vocation de lancer les applications sur un ensemble d'appareils distincts, il est préconisé de mettre en place l'arbre suivant au niveau de vos ressources :

• layout ;• layout-small ;• layout-normal ;• layout-large ;• layout-large ;• layout-xlarge ;• drawable ;• drawable-ldpi ;• drawable-mdpi ;• drawable-hdpi ;• values ;

• values-fr || values-en

Page 45: DÉVELOPPEMENT D’APPLICATIONS MOBILES

le dossier (res)

Page 46: DÉVELOPPEMENT D’APPLICATIONS MOBILES

le dossier (res)

Cet arbre permet d'avoir les layouts par défaut puis ceux spécifiques à chaque taille d'écran, vos images par défaut puis celles spécifiques à chaque densité d'écran et enfin vos chaînes de caractères par défaut puis celles anglaises (ou françaises si par défaut vos chaînes sont anglaises).par défaut vos chaînes sont anglaises).

Il faut toujours mettre le dossier par défaut, car personne ne sait si lors de futures versions d'Android de nouveaux paramètres n'apparaîtront pas (xlarge est apparu à la version 9 du système).

Page 47: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Structure d’un projet

Page 48: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Structure d’une application Android

• Le développeur Android sedoit de bien connaître lelangage Java avant de selancer dans l'aventureAndroïd.Androïd.

• Une fois la chose faite,l'architecture Android offredes grands concepts, descomposants dont il convientde bien saisir la philosophie.

Page 49: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Structure d’une application Android

Les composants majeurs d’une application Android sont:

• Activité (android.app.Activity) : les différents écrans de l'application)

• Service (android.app.Service): Programme qui fonctionne en tâche de fond sans interface

• Fournisseur de contenu (android.content.ContentProvider)

Gestion et partage des données entre applicationsGestion et partage des données entre applications

• Ecouteur d’intention diffusées / Receveur de broadcasts(android.content.BroadcastReceiver) : Permet à une application de récupérer des informations générales (réception d’un SMS, batterie faible, …)

Page 50: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Structure d’une application Android

Chaque composant figure dans une liste enregistrée dans le fichier manifeste AndroidManifest.xml de chaque application.

A coté des composants, il y a aussi les ressources qui peuvent être des fichiers XML, des fichiers images jpeg et autres. Elle sont stockées dans le répertorie res

Page 51: DÉVELOPPEMENT D’APPLICATIONS MOBILES

1. Activity

Une Activity représente la fenêtre ou tout simplement l'écran qui sera affiché à l'utilisateur.

Si une application se compose de plusieurs écrans, elle a une activité pour chaque écran.

Son rôle est d’afficher et de contrôler une seule vueSon rôle est d’afficher et de contrôler une seule vue

• Classe + Interface Graphique (un écran)

• Répond à des évènements (click, touche,…)

• Cycle de Vie (Création--->Destruction)

• 1 Activité au moins par Application

Page 52: DÉVELOPPEMENT D’APPLICATIONS MOBILES

1. Activity

États durables d'une activité

ResumedL'activité est au premier plan et l'utilisateur peut interagir avec elleOn dit aussi qu'elle est en train d'être exécutéePausedL'activité est partiellement recouverte par une autre activité qui se L'activité est partiellement recouverte par une autre activité qui se trouve au premier planL'activité en pause ne peut pas recevoir d'action de l'utilisateurStoppedL'activité est totalement cachée et ne peut plus exécutée de codeToutes ses informations sont conservées

Page 53: DÉVELOPPEMENT D’APPLICATIONS MOBILES

1. Activity

États transitoires d'une activité

CreatedL'activité vient d'être créée.StartedStartedL'activité vient de devenir visible.

Page 54: DÉVELOPPEMENT D’APPLICATIONS MOBILES

1. Activity

Page 55: DÉVELOPPEMENT D’APPLICATIONS MOBILES
Page 56: DÉVELOPPEMENT D’APPLICATIONS MOBILES

2. Service

un Service est en fait un programme tournant en tâche de fond et n'ayant pasd'interface graphique.

L'exemple commun illustrant au mieux cette notion estcelui du lecteur mp3.

Un lecteur mp3 ne nécessite pas, pour la plupart du temps, d'interfacegraphique et doit tourner en tâche de fond laissant la possibilité aux autresapplications de travailler/s'exécuter librementapplications de travailler/s'exécuter librement

Les services ont une durée de vie infinie (contrairement aux activités et auxfournisseurs de données).

Les services ne sont pas des composants graphiques.

Page 57: DÉVELOPPEMENT D’APPLICATIONS MOBILES

3. Content Provider

• les fournisseurs de contenus (content provider) offrent un niveau d'abstraction pour l'accès à toutes les données stockées sur le terminal.

• Il est encouragé d'ouvrir les données aux autres applications.

• Les données sont identifiées au moyen d'URI (UnifiedRessources Identifier)

• Partage de données entre application

• Liste de Contacts

• SQLite

• GPS / Module GSM, UMTS

Page 58: DÉVELOPPEMENT D’APPLICATIONS MOBILES

3. Content Provider

Les données stockées par un programme, sous forme de fichiers ou de bases de données SQLite qui sont privées et ne peuvent être utilisées par d'autres applications.

Les ContentProvider sont, comme l'exprime leurs noms, des gestionnaires de données. Ils permettent de partager gestionnaires de données. Ils permettent de partager l'information entre applications.

L'interface ContentResolver est l'interface qui fournit lesdonnées aux autres objets

Page 59: DÉVELOPPEMENT D’APPLICATIONS MOBILES

3. Content Provider

Certaines données d'une application doivent êtrepartagées avec d'autres application.

C'est le cas par exemple d'un carnet d'adresses qui peutêtre facilement utilisée par d'autres application pourpouvoir, par exemple, envoyer un SMS à un de ses contacts.pouvoir, par exemple, envoyer un SMS à un de ses contacts.

Sous le principe de partage se cache la notion du Content Provider.

Page 60: DÉVELOPPEMENT D’APPLICATIONS MOBILES

3. Content Provider

Android propose plusieurs ContentProviders basiques (audio, vidéo, images, informations sur les contacts…).

Un contentProvider se compose d’une :

• Uri

• Méthodes (Insert, Update, Delete, Query).• Méthodes (Insert, Update, Delete, Query).

URI:

Uniform Resource Identifier, (identifiant uniforme de ressource) est une courte chaîne de caractères identifiant une ressource sur un réseau physique ou abstraite, et dont la syntaxe respecte une norme d'Internet mise en place pour le World Wide Web

Page 61: DÉVELOPPEMENT D’APPLICATIONS MOBILES

3. Content Provider

Le chemin d’accès vers un ContentProvider se présente toujours sous forme d’une URI. Par exemple :

A : Un préfixe standard, il sert à indiquer que les données sont contrôlées par un ContentProvider.

B : L’autorité qui contrôle cette URI. Elle identifie B : L’autorité qui contrôle cette URI. Elle identifie le ContentProviderresponsable de cette URI.

C : Permet au ContentProvider de savoir quelle donnée est requêtée par l’url. Ce segment est optionnel. Un content provider peut exposer plusieurs données (ici les trains) mais on pourrait avoir par exemple les voitures, donc ce ContentProvider pourra gérer deux types de données.

D : L’id de la donnée qu’on souhaite récupérer. (optionnel)

Page 62: DÉVELOPPEMENT D’APPLICATIONS MOBILES

3. Content Provider

Pour créer un ContentProvider, il faut mettre en place unsystéme pour stocker vos données (les contents providersutilisent généralement le SQLite, la classeSQLiteOpenHelper vous facilite la création de votre base).

SQLite :

Est une bibliothèque écrite en C qui proposeun moteur de base de données relationnelle accessible parle langage SQL.

Page 63: DÉVELOPPEMENT D’APPLICATIONS MOBILES

4. Broadcast Receiver

Ce sont des composants qui sont spécialisés pour recevoir des communications "broadcast" sous forme d'intents.

Les "receivers" vont donc écouter certains intents (grâce à <intent-filter>).

Les broadcast receivers sont destinés à exécuter de petites tâches, commel'envoi d'une nouvelle localisation GPS, traitement rapide d'un mail envoyé.Android attribue à des broadcast receivers un laps de temps (10 seconds) dansAndroid attribue à des broadcast receivers un laps de temps (10 seconds) danslequel la tâche définie doit être terminée. Si au bout de ce temps le traitementn'est pas terminé, le broadcast receiver est immédiatement disponible à être tuési l'application a besoin de plus de mémoire.

On peut donc utiliser les receivers pour écouter des canaux de communication spécifiques comme l'OS lui-même : changement de langues, de paramètres,

réception de sms, etc.

Les receivers ne sont pas des composants graphiques.

Page 64: DÉVELOPPEMENT D’APPLICATIONS MOBILES

5. Fragment

Les fragments permettent de scinder vos activités en composantsencapsulés et réutilisables qui possèdent leur propre cycle de vieet leur propre interface graphique. Cela permet de mettre enplace des I.H.M. évoluées qui s'adaptent aux différents écrans età leur orientationà leur orientation

Les Views sont les composants de base de l'interface graphique.Elles permettent de construire l'interface utilisateur.

Page 65: DÉVELOPPEMENT D’APPLICATIONS MOBILES

5. Fragment

Un fragment :

• Représente une portion d'interface utilisateur

• Peut être inséré dans une activité

• peut être utilisé dans plusieurs activités• peut être utilisé dans plusieurs activités

• possède son propre cycle de vie, layout, etc

• Possibilité de combiner de multiples fragments en une seule activité

• Un fragment doit toujours être intégré dans une activité et le cycle de vie du fragment est directement affectée par le cycle de vie de l'activité du hôte .

Page 66: DÉVELOPPEMENT D’APPLICATIONS MOBILES

5. Fragment

les images :

• Il est possible de stocker des images dans les ressources

• Les images peuvent être stockées sous différentes

résolutions résolutions

• La résolution est choisie en fonction du terminal de l'utilisateur

Page 67: DÉVELOPPEMENT D’APPLICATIONS MOBILES

5. Fragment

Page 68: DÉVELOPPEMENT D’APPLICATIONS MOBILES
Page 69: DÉVELOPPEMENT D’APPLICATIONS MOBILES
Page 70: DÉVELOPPEMENT D’APPLICATIONS MOBILES

5. Fragment

Le composant graphique élémentaire de la plate-forme Android est la vue :

tous les composants graphiques (boutons, images, cases à cocher, etc.) d’Android héritent de la classe View.

lorsque nous créons une vue, nous créons en fait un objet graphique. L’utilisation et le positionnement des vues dans une activité se fera la L’utilisation et le positionnement des vues dans une activité se fera la plupart du temps en utilisant une mise en page qui sera composée par un ou plusieurs gabarits de vues (Layout).

Android offre la possibilité de regrouper plusieurs vues dans une structure arborescente à l’aide de la classe ViewGroup.Cette structure peut à son tour regrouper d’autres éléments de la classe ViewGroup et être ainsi constituée de plusieurs niveaux d’arborescence

Page 71: DÉVELOPPEMENT D’APPLICATIONS MOBILES
Page 72: DÉVELOPPEMENT D’APPLICATIONS MOBILES

6. 6. IntentIntent

Les Intents sont des objets permettant de faire passer des messagescontenant de l'information entre composants principaux.

La notion d'Intent peut être vue comme une demande de démarrage d'unautre composant, d'une action à effectuer.

La raison d'être des Intents provient du modèle de sécurité d'Android.

Chaque application est en effet sandboxée. Cela veut dire qu'uneapplication A ne peut accéder aux données d'une application B.

Grâce aux Intents, les applications ont la possibilité de fournirleurs services ou données si elles le souhaitent

Page 73: DÉVELOPPEMENT D’APPLICATIONS MOBILES

6. 6. IntentIntent

Les intentions sont des opérations qui permettent, entre autres, denaviguer entre les écrans. Grâce à elles on peut également passerdes paramètres d'un écran à l'autre de notre application.

Cependant, la navigation n'est pas la seule fonctionnalité desintentions. L'autre, aussi importante, est la possibilité d'écouter et deintentions. L'autre, aussi importante, est la possibilité d'écouter et deréagir à des événements extérieurs à l'application. Par exemple,grâce à des intentions, on peut capter le moment où notre connexionWiFi n'est plus disponible et exécuter une action dans notreapplication. On utilisera pour cela les broadcast receivers sousAndroid.

Page 74: DÉVELOPPEMENT D’APPLICATIONS MOBILES

6. 6. IntentIntent

On distingue deux type d'intentions :

- Explicite : on sait quelle activité on veut démarrer (par exemple pourpasser à une activité "ShowSite" après le click sur le bouton "afficher lesite")

Implicite : on ne sait pas quelle activité doit être invoquée. En occurrence,- Implicite : on ne sait pas quelle activité doit être invoquée. En occurrence,c'est Android qui va se charger de trouver l'activité adéquate à lancer (parexemple pour consulter un site web, il va lancer un des navigateursdisponibles).

Les IntentFilters (filtres) décrivent comment l'action doit s'appliquer.

L'IntentReceiver est un objet qui réagit aux évènements extérieurs.Il peut fonctionner dans l'application ou il peut démarrer l'application

Page 75: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Exemple d'application

Pour donner vie à ces propos, voici un exemple typique de structure de projet que nous pouvons avoir sous Android,

Une application permettant d'écouter des médias audio et/ou vidéo présents sur le téléphone :Cette application est représentée :

• par trois activités qui sont :WelcomeActivity : la page d'accueil de votre

application,

BrowseActivity : la page vous permettant d'afficher les médias présents,

PlayerActivity : celle qui lira le média demandé ;

Page 76: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Exemple d'application

• par un service :

PlayserService : le service tournant en tâche de fond lisant le flux du média, ce qui nous permettra de ne pas être dépendant du thread UI ;

• par un BroadCast :• par un BroadCast :

BroadCastReceiver : il nous permet de pouvoir échanger des informations entre le Service« PlayerService » et l'Activity « PlayerActivity » ;

• et enfin par un ContentProvider :MediaStore : nous permet de pouvoir récupérer les informations sur les médias présents sur le téléphone

Page 77: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Exemple d'application

Page 78: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Les permissions

Certaines opérations sont réalisables à condition d’en obtenir lapermission

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) ;échange de données, envoi de SMS par exemple) ;

- Utilisation de données personnelles (accès aux contacts, auxcomptes Google...) ;

- Accès au matériel du téléphone prise de clichés,récupération de la position GPS...).

Page 79: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Les permissions

Pour obtenir une permission spécifique, il faut larenseigner 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 pourpouvoir utiliser des composants de notre application(Activity, content provider, Service), ceci est possible viala balise

Page 80: DÉVELOPPEMENT D’APPLICATIONS MOBILES

Sécurité dans le système Android

• Chaque application est exécutée dans une sandbox(bac à sable) :

• Android est système Linux multi‐utilisateur

• Chaque application est un utilisateur différent

• Chaque application est un utilisateur différent

• Chaque fichier de l'application n'est accessible que parelle

• Par défaut, chaque processus possède sa machinevirtuelle

• Chaque application a son propre processus Linux