01 programmation mobile - android - (introduction)

Preview:

Citation preview

Programmation Mobile Android

Rabie JABALLAH: jaballahrabie@gmail.comSlim BENHAMMOUDA: slim.benhammouda@gmail.com

Plan

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

g. les fichiers de ressources

Plan (2)

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

Plan (3)

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

10. Les Services11. Multimedia12. Les Notifications

1. IntroductionUne 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 appNative :

- Ergonomie conçue spécifiquement pour le terminal

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

- ...

Web app :

- Coût de développement réduit

- Multi-plateformes- ...

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

Avantages : Open SourceAndroid 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éveloppementLes principaux outils utilisés pour le développement sur la plateforme- SDK (Software Development Kit)

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

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

Android 5 !

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

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

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 permissionsCertaines opérations sont réalisables à condition d’en obtenir la permissionCes actions sont de plusieurs formes :- opérations pouvant entraîner un sur-coût (connexion,

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

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

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

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

Recommended