Patrick Bashizi
développeur Android
ANDROID, Kesako?
 OS de Google pour les terminaux
mobiles
 Une startup de même nom rachetée par
Google en 2005
 Leader mondial des plateformes mobiles
(janvier 2011)
 Entre 300K and 400K terminaux sont
actifs dans le monde
GOOGLE ANDROID
 Environs 150K application dans l’Android
Market
 Ouvert à plusieurs langages de
programmation (Python, Java
,PHP, javascript)
 Principal langage : JAVA !!
Pourquoi Android?
 Au cours des deux dernières années,
la recherche mobile mondiale a
augmenté de 5X
Pourquoi Android?
 « Nous avons créé Android en réponse à
nos propres expériences de lancement
d'applications mobiles.
 Nous voulions nous assurer qu'il n'y
avait pas de point central de défaillance,
de sorte qu’aucun joueur de l'industrie
puisse limiter ou contrôler les
innovations de toute autre.
 C'est pourquoi nous avons créé Android,
et avons rendu son code source ouvert »
Modèle économique
 Le budget d’Android n’est pas basé
sur les ventes.
 Il est basé sur la visibilité, et sur
l’attractivité par rapport au nombre
d’utilisateurs attirés sur la plateforme
Modèle économique
 En se lançant dans la création d'une
plate-forme mobile ouverte, Google a
fait un pari audacieux:
Celui de s'en servir comme support
pour ses activités publicitaires dans un
nouveau contexte, celui de l' Internet
mobile.
Historique
 2005 :
Google Achete Android Inc.
Les travaux sur Dalvik VM débutent
Historique
 2007
 OHA annoncé (Open Hansdet
Alliance)
 Premier SDK
Historique
 2008
 T-Mobile G1 annoncé
 SDK 1.0 released
 Android devient open source
Open Handset Alliance
 Sprint Nextel
 T-Mobile
 HTC
 Motorola
 Samsung
 Sony Ericsson
 Toshiba
 Vodafone
 Google
 Intel
 Texas
Instruments
 Acer
 Etc
Versions d’Android
 1.5 : Cupcake (Petit Gâteau - sortie en avril 2009, dernière
révision officielle en mai 2010)
 1.6 : Donut (Beignet - sortie en septembre 2009, dernière
révision officielle en mai 2010)
 2.1 : Eclair (sortie en janvier 2010, dernière révision officielle
en Mai 2010)
 2.2 : FroYo (Frozen Yogourt / Yaourt glacé - sortie en mai
2010, dernière révision officielle en juillet 2010)
 2.3 : Gingerbread (Pain d'épice - Version actuelle sortie le 6
décembre 2010)
 3.0 : Honeycomb (Alvéoles à miel, début 2011)
Android Features
 Application framework enabling reuse and replacement of
components
 Dalvik virtual machine optimized for mobile devices
 Integrated browser based on the open source WebKit
engine
 Optimized graphics powered by a custom 2D graphics
library; 3D graphics based on the OpenGL ES 1.0
specification (hardware acceleration optional)
 SQLite for structured data storage
 Media support for common audio, video, and still image
formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
Android™ Features
 GSM Telephony (hardware dependent)
 Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
 Camera, GPS, compass, and accelerometer
(hardware dependent)
 Rich development environment including a device
emulator, tools for debugging, memory and
performance profiling, and plugins for IDE ’S
Android Architecture
Le Runtime
 Dalvik™ VM :Machine virtuelle d’
Android

 Chaque application Android execute son
propre processus, avec son instance de
la machine virtuelle Dalvik.
 Dalvik a été écrit de sorte que un
terminal puisse executer des multiples
VM efficacement.
. Composants d’une application
Android
Les cinq composantes majeures d’une
application sont :
 Intent
 Activity
 Broadcast Receiver
 Content Provider
 Service
.Composants d’une application
Android
Activity
Une classe par Activity
Généralement le point d'entrée d'une
application
Généralement une interface
graphique, un écran
A un Cycle de vie
Intent
Type d'action possible déclaré auprès
du système
Indique le besoin ou le service offert
Content Provider
Accès aux données partagées
 Données internes ou externes à
l'application
Encapsulation du schéma de la base
Services
Composants sans interface
graphique
Activité de longue durée
Démarrer par context.startService:
interne à l'application
Démarrer par context.bindService:
externe à l'application
Broadcast Receiver
Réagit à des évènements externes
- Logiciel: Alarme, notifications...
- Ex: batterie faible
- Matériel: Activation puce GPS, carte
SD
Réveiller une application, afficher un
message, lancer une activity.
Composants d’une application
Android
 L'ensemble de ces composantes est
décrit dans le fichier
AndroidManifest.xml.
 Les applications ont pour extension
APK (Android Package)
Etapes de développement
d’une application Android
 Ecriture du code source :
on utilise en général un éditeur de code ou
un IDE. Il y a deux pôles : le code source
java et les interfaces XML.
 Pour ce qui est des interfaces, elles peuvent
être générées par un outil de design
graphique du type WYSIWYG.
Ex: Droid Draw
Etapes de développement
d’une application Android
 Compilation :
Elle génère du byte code .class ou .jar ou les
deux.
 Optimisation du byte code : elle conduit à la
génération du fichier .dex de byte code grâce
a la machine virtuelle Dalvik.
 Construction du package grâce à l’outil
apkbuilder qui en sortie nous donne un fichier
.apk à installer dans le terminal ou
l’émulateur.
Quelques outils
indispensables
Droid Draw (WYSIWYG)
Dalvik Debug Monitor Service
(DDMS)
Emulateurs
Android Virtual Devices (AVD)
 Configurations pour émulateurs permettant
de modéliser efficacement un terminal donné.
 Dispose de:
- Hardware profile
- Mapping to a system image (Plateforme)
- Autres options (EX: Sdcard)
- Un espace de stockage dédié sur la
machine de développement
IDE(s)
 ECLIPSE Android Development Tools
(ADT)
 NETBEANS plugin for Android:
(UNDROID)
Q/A

Intro Android

  • 1.
  • 2.
    ANDROID, Kesako?  OSde Google pour les terminaux mobiles  Une startup de même nom rachetée par Google en 2005  Leader mondial des plateformes mobiles (janvier 2011)  Entre 300K and 400K terminaux sont actifs dans le monde
  • 3.
    GOOGLE ANDROID  Environs150K application dans l’Android Market  Ouvert à plusieurs langages de programmation (Python, Java ,PHP, javascript)  Principal langage : JAVA !!
  • 4.
    Pourquoi Android?  Aucours des deux dernières années, la recherche mobile mondiale a augmenté de 5X
  • 5.
    Pourquoi Android?  «Nous avons créé Android en réponse à nos propres expériences de lancement d'applications mobiles.  Nous voulions nous assurer qu'il n'y avait pas de point central de défaillance, de sorte qu’aucun joueur de l'industrie puisse limiter ou contrôler les innovations de toute autre.  C'est pourquoi nous avons créé Android, et avons rendu son code source ouvert »
  • 6.
    Modèle économique  Lebudget d’Android n’est pas basé sur les ventes.  Il est basé sur la visibilité, et sur l’attractivité par rapport au nombre d’utilisateurs attirés sur la plateforme
  • 7.
    Modèle économique  Ense lançant dans la création d'une plate-forme mobile ouverte, Google a fait un pari audacieux: Celui de s'en servir comme support pour ses activités publicitaires dans un nouveau contexte, celui de l' Internet mobile.
  • 8.
    Historique  2005 : GoogleAchete Android Inc. Les travaux sur Dalvik VM débutent
  • 9.
    Historique  2007  OHAannoncé (Open Hansdet Alliance)  Premier SDK
  • 10.
    Historique  2008  T-MobileG1 annoncé  SDK 1.0 released  Android devient open source
  • 11.
    Open Handset Alliance Sprint Nextel  T-Mobile  HTC  Motorola  Samsung  Sony Ericsson  Toshiba  Vodafone  Google  Intel  Texas Instruments  Acer  Etc
  • 12.
    Versions d’Android  1.5: Cupcake (Petit Gâteau - sortie en avril 2009, dernière révision officielle en mai 2010)  1.6 : Donut (Beignet - sortie en septembre 2009, dernière révision officielle en mai 2010)  2.1 : Eclair (sortie en janvier 2010, dernière révision officielle en Mai 2010)  2.2 : FroYo (Frozen Yogourt / Yaourt glacé - sortie en mai 2010, dernière révision officielle en juillet 2010)  2.3 : Gingerbread (Pain d'épice - Version actuelle sortie le 6 décembre 2010)  3.0 : Honeycomb (Alvéoles à miel, début 2011)
  • 13.
    Android Features  Applicationframework enabling reuse and replacement of components  Dalvik virtual machine optimized for mobile devices  Integrated browser based on the open source WebKit engine  Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)  SQLite for structured data storage  Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • 14.
    Android™ Features  GSMTelephony (hardware dependent)  Bluetooth, EDGE, 3G, and WiFi (hardware dependent)  Camera, GPS, compass, and accelerometer (hardware dependent)  Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and plugins for IDE ’S
  • 15.
  • 16.
    Le Runtime  Dalvik™VM :Machine virtuelle d’ Android   Chaque application Android execute son propre processus, avec son instance de la machine virtuelle Dalvik.  Dalvik a été écrit de sorte que un terminal puisse executer des multiples VM efficacement.
  • 17.
    . Composants d’uneapplication Android Les cinq composantes majeures d’une application sont :  Intent  Activity  Broadcast Receiver  Content Provider  Service
  • 18.
    .Composants d’une application Android Activity Uneclasse par Activity Généralement le point d'entrée d'une application Généralement une interface graphique, un écran A un Cycle de vie
  • 19.
    Intent Type d'action possibledéclaré auprès du système Indique le besoin ou le service offert
  • 20.
    Content Provider Accès auxdonnées partagées  Données internes ou externes à l'application Encapsulation du schéma de la base
  • 21.
    Services Composants sans interface graphique Activitéde longue durée Démarrer par context.startService: interne à l'application Démarrer par context.bindService: externe à l'application
  • 22.
    Broadcast Receiver Réagit àdes évènements externes - Logiciel: Alarme, notifications... - Ex: batterie faible - Matériel: Activation puce GPS, carte SD Réveiller une application, afficher un message, lancer une activity.
  • 23.
    Composants d’une application Android L'ensemble de ces composantes est décrit dans le fichier AndroidManifest.xml.  Les applications ont pour extension APK (Android Package)
  • 24.
    Etapes de développement d’uneapplication Android  Ecriture du code source : on utilise en général un éditeur de code ou un IDE. Il y a deux pôles : le code source java et les interfaces XML.  Pour ce qui est des interfaces, elles peuvent être générées par un outil de design graphique du type WYSIWYG. Ex: Droid Draw
  • 25.
    Etapes de développement d’uneapplication Android  Compilation : Elle génère du byte code .class ou .jar ou les deux.  Optimisation du byte code : elle conduit à la génération du fichier .dex de byte code grâce a la machine virtuelle Dalvik.  Construction du package grâce à l’outil apkbuilder qui en sortie nous donne un fichier .apk à installer dans le terminal ou l’émulateur.
  • 27.
  • 28.
  • 29.
    Dalvik Debug MonitorService (DDMS)
  • 30.
  • 31.
    Android Virtual Devices(AVD)  Configurations pour émulateurs permettant de modéliser efficacement un terminal donné.  Dispose de: - Hardware profile - Mapping to a system image (Plateforme) - Autres options (EX: Sdcard) - Un espace de stockage dédié sur la machine de développement
  • 32.
    IDE(s)  ECLIPSE AndroidDevelopment Tools (ADT)  NETBEANS plugin for Android: (UNDROID)
  • 33.