1. La plateforme Android
Tour d’horizon
Saber LAJILI
Version janvier 2014
Email : lajili6808@gmail.com
Espace : slideShare saber lajili
20/02/2015 1
2. Plan
1. Généralités
2. Architecture de Android
3. Outils de développement
4. Application Android
5. Composants d’une application Android
6. Réaliser notre première application
2Saber LAJILI
3. Généralités
Android Un système d’exploitation open source libre pour
appareils mobiles;
Concurrents:
Symbian OS: il est crée par différents constructeurs (Psion,
Nokia, Motorola);
iOS(iphone OS): Un système mobile développé par Apple;
Windows mobile: C’est le nom générique donné à différentes
versions de Microsoft Windows.
3Saber LAJILI
4. Généralités
- Android est issu du travail d'une startup (entreprise en
démarrage)
- Racheté par Google en 2005
- Création le 7 Novembre 2007 de l'OHA(Open Handset
Alliance)
- Annonce officielle de la plateforme Android le même
Jour,
- Sortie du premier SDK (Software Development Kit) le 12
Novembre 2007
4Saber LAJILI
5. Généralités
- Android Market est lancé en Novembre 2008
lien :https://market.android.com
- Octobre 2008 : sortie du premier samrtphone
Android aux Etats-Unis
- Mars 2009 en France
- 2009 : premières tablettes Android
- Le vrai succès à partir de début 2011, avec la
version Android 3.0
5Saber LAJILI
6. Généralités
Environnement de développement complet :émulateur,
outils de débogage, …
Framework applicatif
Propre Machine virtuelle Dalvik
Navigateur intégré : –WebKit
Graphisme 2D et 3D
Base de données SQLite
CODEC audio et vidéo (MPEG4, MP3, …)
Options matérielles et connectivité: Réseau GSM, caméra,
GPS, …
6Saber LAJILI
8. Architecture à 4 niveaux
Noyau Linux 2.6 standard+ extensions (besoins
de mobilité comme alarm, binder, power
management, logger low memory killer
Noyau écrit en C+assembleur
Qques applications natives + Libraries écrites
en C++
Les autres applications écrites en Java
Architecture
8Saber LAJILI
9. Machine virtuelle : Dalvik
– Elle est basée sur une architecture de registre à
l'instar de la machine virtuelle Java qui a une
architecture de pile
– Adapté ARM hardware
– Elle utilise son propre bytecode et pas le Java
bytecode
Architecture
9Saber LAJILI
11. ll coexiste actuellement deux branches de
versions
Version 3 pour les tablettes
– version 3.2 actuellement
Version 2 pour les smart phones
– version 2.3.4
actuellement
Version 4 : fusion entre téléphones,
tablettes et télévisions
Versions Android
11Saber LAJILI
12. Application Android
Application native= application fonctionnelle
sur une plateforme spécifique
Langage de développement : Java,
JNI: Java Native Interface
Création d'un fichier .apk qui contient toute
l'application et ses ressources qui sera installé
sur la plateforme Android
Toutes les applications Android ont les même
droits
Une application est exécutée dans sa propre
VM (Virtual Machine instance)
12Saber LAJILI
13. Application Android
Par défaut une application est exécutée
dans un process Linux
Une application Android n'a accès qu'à ses
propres ressources
Une application doit posséder les
permissions adéquats pour accéder aux
composants du système (SMS, caméra, …)
13Saber LAJILI
18. activité (activity) : interface graphique pour
l'utilisateur :– classe Activity
service (service) : composant exécuté en
tâche de fond, sans interface graphique :–
classe Service
fournisseur de données (content provider) :
gère et partage des données applicatives : –
classe ContentProvider
récepteur broadcast (broadcast receiver) :
réagit à des messages, systèmes ou
applicatifs: – classe BrodcastReceiver
Exp: mise hors tension, baterie faible, …
18Saber LAJILI
19. Application Hello World
Outils de développement
Eclipse avec ADT
– ADT : Android Development Tools
le SDK et AVD Manager
– AVD : Android Virtual Device
ADB : Android Debug Bridge
DDMS : Dalvik Debug Monitor Server
19Saber LAJILI
20. Emulateur AVD
Émulateur AVD
L'émulateur se comporte (presque) comme un
téléphone
Personnalisation :– langue, date et heure, ajouter des
contacts, supprimer des applications, recevoir des SMS
et des appels téléphoniques
Création en mode graphique ou bien en ligne de
commande
Ligne de commande
Dans le répertoire tools de repértoire SDK
emulator -avd <avd_name> [-<option> [<value>]]…
–exemple : emulator -avd Samsung_S
20Saber LAJILI
21. Emulateur AVD
Émulateur AVD
L'émulateur peut être contrôlé comme suit
Ctrl-F11 et Ctrl-F12 pour le mode portrait /
paysage par exemple
– l'ensemble des raccourcis est disponible à
http://developer.android.com/tools/help/emulato
r.html
– par la vue "Emulator Control" dans Eclipse
21Saber LAJILI
22. DDMS
DDMS (Dalvik Debug Monitor Server) permet de:
Suivre l'utilisation du tas
Suivre les allocations d'objets et mémoire
Travailler sur le système de fichier de l'émulateur
Voir les threads executés sur l'émulateur
Effectuer du profiling de méthode : nombre d'appels,
temps d'exécution, …
Vue Emulator Control
● envoi de SMS
● émulation d'appel téléphonique
● envoi de points de géolocalisation
22Saber LAJILI
l'OHA(Open Handset Alliance)
- Consortium créé par Google réunissant des acteurs du
marché de la mobilité : constructeurs, opérateurs en téléphonie, éditeurs de logiciels
La start-up (en français, entreprise en démarrage) est une jeune entreprise à fort potentiel de croissance et qui fait la plupart du temps l'objet de levée de fonds. On parle également de start-uppour des entreprises en construction qui ne se sont pas encore lancées sur le marché commercial (ou seulement à titre expérimental). Elle est en phase plus ou moins longue de développement d'un produit, de test d'une idée, de validation d'une technologie ou d'un modèle économique. Le risque d'échec est supérieur aux entreprises traditionnelles du fait des petites tailles et du manque de visibilité de ces structures.
Le système Android évolue très vite
● ce qui est une marque de dynamisme
● ce qui provoque une fragmentation importante des plateformes
● nécessite un développement basé sur une version minimale
répandue
● Pour les développeurs, Google met à disposition un SDK
(Software Development Kit)
● lien : http://developer.android.com/sdk/index.html
● En plus du SDK il existe des bibliothèques tiers
● leur support n'est pas obligatoire par les intégrateurs
● exemples : API Google, Samsung, LG, ...
, attention, toutes les classes du JDK ne sont pas disponibles :Swing par exemple
possibilité d'utiliser du C pour certaines parties critiques: utilisation du NDK (Native Development Kit)
Les applications Java développées pour Android doivent être compilées au format dalvik exécutable (.dex) avec l'outil dx. Cet outil compile les .java en .class et ensuite il convertit ces .class en .dex. Un .dex peut contenir plusieurs classes. Les strings dupliqués et autre constantes utilisées dans de multiples classes sont regroupées dans un .dex. Le bytecode utilisé dans les .dex est le Dalvik bytecode et non le java Bytecode.
Java source code is converted into Java Byte Code using Java compiler, Java byte code is again converted to Dalvik byte code using dex compiler.Dex Byte code is converted in to .dex file by Dalvik virtual m/c.Here is the graphical representation of conversion,
Il existe 4 types de composant applicatif dont les objectifs et cycles de vie sont différents
Il existe 4 types de composant applicatif dont les objectifs et cycles de vie sont différents