1 tours horizon

Saber LAJILI
Saber LAJILITeacher in computing science at University
La plateforme Android
Tour d’horizon
Saber LAJILI
Version janvier 2014
Email : lajili6808@gmail.com
Espace : slideShare saber lajili
20/02/2015 1
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
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
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
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
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
Architecture
7Saber LAJILI
 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
 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
Versions Android
10Saber LAJILI
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
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
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
Compilation
14Saber LAJILI
Compilation --détails
15Saber LAJILI
Les composants d’une application Android
16Saber LAJILI
Packages des composants
17Saber LAJILI
 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
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
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
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
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
Arborescence de projet
23Saber LAJILI
Manifest.xml
24Saber LAJILI
DEMO : Atelier 1
• Application Hello World
25Saber LAJILI
1 sur 25

Recommandé

Hello droid par
Hello droidHello droid
Hello droidWiki Info Systeme
2.3K vues25 diapositives
Android wear par
Android wearAndroid wear
Android wearHoussem Lahiani
1.2K vues25 diapositives
Cours android 2016_partie1 par
Cours android 2016_partie1Cours android 2016_partie1
Cours android 2016_partie1Sabeur LAJILI
32 vues32 diapositives
Android Studio, premier contact par
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contactJasmine Conseil
4.9K vues28 diapositives
In01 - Programmation Android - 01 - introduction par
In01 - Programmation Android - 01 - introductionIn01 - Programmation Android - 01 - introduction
In01 - Programmation Android - 01 - introductionYann Caron
19.1K vues40 diapositives
Cours android user_interface_2016 par
Cours android user_interface_2016Cours android user_interface_2016
Cours android user_interface_2016Sabeur LAJILI
86 vues55 diapositives

Contenu connexe

Tendances

Programmation sous Android par
Programmation sous AndroidProgrammation sous Android
Programmation sous AndroidOlivier Le Goaër
131.5K vues156 diapositives
Présentation et Initiative pour le développement Android par
Présentation et Initiative pour le développement AndroidPrésentation et Initiative pour le développement Android
Présentation et Initiative pour le développement Androidyounes ben tlili
1.7K vues37 diapositives
Développement Android par
Développement AndroidDéveloppement Android
Développement AndroidFranck SIMON
27.7K vues528 diapositives
Introduction a Android par
Introduction a AndroidIntroduction a Android
Introduction a AndroidMohamed-Wassim Youssef
1.6K vues50 diapositives
Cours android par
Cours androidCours android
Cours androidAd Hafsa
800 vues107 diapositives
Cours Android par
Cours AndroidCours Android
Cours AndroidAnouar Chamsse-Eddine NA
6K vues75 diapositives

Tendances(17)

Présentation et Initiative pour le développement Android par younes ben tlili
Présentation et Initiative pour le développement AndroidPrésentation et Initiative pour le développement Android
Présentation et Initiative pour le développement Android
younes ben tlili1.7K vues
Développement Android par Franck SIMON
Développement AndroidDéveloppement Android
Développement Android
Franck SIMON27.7K vues
Cours android par Ad Hafsa
Cours androidCours android
Cours android
Ad Hafsa800 vues
Apple Watch par Benoit Capallere et Joeffrey Bocquet par CocoaHeads France
Apple Watch par Benoit Capallere et Joeffrey BocquetApple Watch par Benoit Capallere et Joeffrey Bocquet
Apple Watch par Benoit Capallere et Joeffrey Bocquet
CocoaHeads France6.8K vues
Test flight et les outils de distribution continue par simone civetta de xebia par CocoaHeads France
Test flight et les outils de distribution continue par simone civetta de xebiaTest flight et les outils de distribution continue par simone civetta de xebia
Test flight et les outils de distribution continue par simone civetta de xebia
Formation Android (Initiation à la programmation sous Android) par G²FOSS ENIT
Formation Android (Initiation à la programmation sous Android)Formation Android (Initiation à la programmation sous Android)
Formation Android (Initiation à la programmation sous Android)
G²FOSS ENIT1.5K vues
Initiation au développement mobile sous Android par Abdelkader Rhouati
Initiation au développement mobile sous AndroidInitiation au développement mobile sous Android
Initiation au développement mobile sous Android
Abdelkader Rhouati2.2K vues
Les ateliers android_1_vers2015 par Sabeur LAJILI
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015
Sabeur LAJILI132 vues
Ateliers : Developpement mobile vs open source par Korteby Farouk
Ateliers : Developpement mobile vs open sourceAteliers : Developpement mobile vs open source
Ateliers : Developpement mobile vs open source
Korteby Farouk929 vues
Android Input Method Editor par Franck SIMON
Android   Input Method EditorAndroid   Input Method Editor
Android Input Method Editor
Franck SIMON3.9K vues
Devops for mobile iOS/Android par Cedric Gatay
Devops for mobile iOS/AndroidDevops for mobile iOS/Android
Devops for mobile iOS/Android
Cedric Gatay393 vues

Similaire à 1 tours horizon

1-android.pdf par
1-android.pdf1-android.pdf
1-android.pdfFethiBenYahia1
27 vues48 diapositives
Ch1. Développement mobile par
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobileHaifa Chorfi
160 vues26 diapositives
Android Studio, premier contact par
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contactJasmine Conseil
560 vues28 diapositives
Hackathon Android Abidjan par
Hackathon Android  AbidjanHackathon Android  Abidjan
Hackathon Android AbidjanBacely YoroBi
657 vues45 diapositives

Similaire à 1 tours horizon(20)

Ch1. Développement mobile par Haifa Chorfi
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobile
Haifa Chorfi160 vues
01 programmation mobile - android - (introduction) par TECOS
01 programmation mobile - android - (introduction)01 programmation mobile - android - (introduction)
01 programmation mobile - android - (introduction)
TECOS1.6K vues
Introduction_Android_-_Complet.pdf par med_univ78
Introduction_Android_-_Complet.pdfIntroduction_Android_-_Complet.pdf
Introduction_Android_-_Complet.pdf
med_univ788 vues
chapitre-1-introduction-plateforme-android (2).pdf par olfaharrabi2
chapitre-1-introduction-plateforme-android (2).pdfchapitre-1-introduction-plateforme-android (2).pdf
chapitre-1-introduction-plateforme-android (2).pdf
olfaharrabi216 vues
Chapitre 1-introduction-plateforme-android par Salah Gharbi
Chapitre 1-introduction-plateforme-androidChapitre 1-introduction-plateforme-android
Chapitre 1-introduction-plateforme-android
Salah Gharbi99 vues
cours Android.pptx par YaminaGh1
cours Android.pptxcours Android.pptx
cours Android.pptx
YaminaGh1140 vues
Jug Lausanne Android Janvier2013 par jeromevdl
Jug Lausanne Android Janvier2013Jug Lausanne Android Janvier2013
Jug Lausanne Android Janvier2013
jeromevdl3.6K vues

Plus de Saber LAJILI

Cours android user_interface_2016 par
Cours android user_interface_2016Cours android user_interface_2016
Cours android user_interface_2016Saber LAJILI
604 vues55 diapositives
Les ateliers android_1_vers2015 par
Les ateliers android_1_vers2015Les ateliers android_1_vers2015
Les ateliers android_1_vers2015Saber LAJILI
900 vues21 diapositives
4 asynch task_services_thread par
4 asynch task_services_thread4 asynch task_services_thread
4 asynch task_services_threadSaber LAJILI
1.1K vues23 diapositives
Accueil.java par
Accueil.javaAccueil.java
Accueil.javaSaber LAJILI
435 vues1 diapositive
Activity accueil par
Activity accueilActivity accueil
Activity accueilSaber LAJILI
393 vues2 diapositives
Main.xml par
Main.xmlMain.xml
Main.xmlSaber LAJILI
439 vues2 diapositives

Plus de Saber LAJILI(16)

1 tours horizon

  • 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
  • 16. Les composants d’une application Android 16Saber 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
  • 25. DEMO : Atelier 1 • Application Hello World 25Saber LAJILI

Notes de l'éditeur

  1. 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.
  2. 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, ...
  3. , 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)
  4. 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.   
  5. 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,
  6. Il existe 4 types de composant applicatif dont les objectifs et cycles de vie sont différents
  7. Il existe 4 types de composant applicatif dont les objectifs et cycles de vie sont différents