SlideShare a Scribd company logo
1 of 48
Download to read offline
Introduction aux
développement
d’applications Mobile
FETHIBENYAHIA@gmail.com
Unité 1.
Plan
 Présentation de la plateforme Android
– Composants la plateforme Android
 Outils de développement d’applications
pour Android
– SDK, ADT, AVD, DDMS …
 Application HelloWorld
La plateforme Android
 La plate-forme Android est une pile logicielle.
 Elle a été conçu principalement, mais pas exclusivement pour le soutien
des appareils mobiles tels que les téléphones et les tablettes.
 Cette pile a plusieurs couches :
 Un système d'exploitation open-source
 Un intergiciel (middleware)
 et des applications clés.
 Android est également livré avec un kit de développement, ou SDK, qui
fournit des outils et des APIs nécessaires pour le développement
d’applications Android en utilisant le langage de programmation Java.
 Documentation, cours, des blogs, et des exemples
Présentation de la plateforme
Pile logiciel d’Android – Noyau Linux
 S'appuyant sur le noyau Linux 2.6 pour les services système de base
 Offre une architecture d'autorisations
 Mémoire et processus de gestion des
 Fichier, et d'IO réseau.
 Pilotes :
●
Gestion du matériel (écran clavier …)
●
Gestion des capteurs (appareil photo, GPS, accéléromètre …)
 sécurité
 Fournir une couche d'abstraction entre le Hardware et le reste de la pile logiciel
 Android inclue un ensemble de bibliothèques C/C++ utilisées par les
composants.
Graphisme
Médias
Web
Etc
 Exposée aux développeurs à travers le Framework d'application Android
Pile logiciel d’Android – Bibliothèques
SSL,
SQLite,
OpenGL
ES, etc.
 Bibliothèques de base
 Fournir la plupart des fonctionnalités disponibles
dans les bibliothèques de base du langage Java
APIs
Structure de données
Utilitaires
Accès aux Fichiers
Réseau
Graphiques
Etc
Pile logiciel d’Android – Runtime
 Dalvik Virtual Machine
 Permet d’exécuter des applications spécifiques
Sur n’importe quelle smartphone Android.
Chaque application Android s'exécute dans son propre processus, avec
sa propre instance de la machine virtuelle Dalvik
Dalvik a été écrit de telle sorte qu'un dispositif peut exécuter plusieurs
machines virtuelles de manière efficace.
Elle utilise le noyau Linux sous-jacent de l’appareil pour gérer
l’interaction de bas-niveau avec le matériel.
[Dalvik] n'est pas compatible avec une JVM du type Java SE ou même
Java ME. La librairie d'accès est donc redéfinie entièrement par Google
Pile logiciel d’Android – Runtime
 Dalvik Virtual Machine
Exécution de l’exécutable Dalvik (format .dex)
 Le format .dex est optimisé pour un minimum
occupation mémoire.
 Compilation
S'appuyant sur le noyau Linux pour gestion de
la mémoire de bas niveau et threads.
Pile logiciel d’Android – Runtime
Pile logiciel d’Android – Application Framework
 Des gestionnaires pour les applications + une API en java
 Gestion des fenêtres, des activités, des ressources…
 API pour développement des programmes
 Permettent l’activation et la simplification de la réutilisation de composants
 Les développeurs ont l’accès complet aux mêmes Framework APIs utilisés
par les applications de base.
Fonction Rôle
View
System
Utilisé pour construire une application, y compris les listes,
grilles, texte, Boîtes, des boutons, et le navigateur Web
intégré
Content
Provider
Permettant aux applications d'accéder aux données d'autres
applications ou pour partager leurs propres données
Resource
Manager
Fournir un accès à des ressources non-code (chaînes
localisées, les graphiques et les fichiers de mise en page)
Notification
Manager
Permettre à toutes les applications d’afficher des alertes de
clients dans la barre d'état
Activity
Manager
Gestion du cycle de vie des applications en fournissant une
navigation commune de "pile de retour (back stack).
Pile logiciel d’Android – Application Framework
Les activités sont disposés dans une pile (la "pile de retour"), dans l'ordre dans lequel chaque activité est ouverte.
Pile logiciel d’Android - Application
 Android fournit un ensemble d'applications de base:
 Client de messagerie
 Programme de SMS
 Calendrier
 Maps
 Navigateur
 L'annuaire des contacts
 etc
 Toutes les applications sont développées en Java.
 Les utilisateurs sont autorisés à remplacer les composants.
Outils de développement
d’applications
pour Android
Environnement de développement
Chaine de production d’application
AndroidManifest
AndroidManifest
Code
source
.java
Code
source
.java
Bytecode
.class
Bytecode
.class
Binaire
Dalvik
.dex
Binaire
Dalvik
.dex
Machine virtuelle Dalvik
IDE
+
plugins
SDK Android
+
outils
Environnement d'exécution
Chaîne de compilation
Application
.apk
Application
.apk
Ressources
Ressources
API
Android
API
Android
Constitution de l'application
Terminal
Téléchargement
SDK Android
Le kit de développement Android(SDK) fournit l’environnement
de travail pour développer, tester et déboguer des applications
Android.
Dans le SDK on trouve:
 Les API Android qui sont le coeur du SDK. Composés de
bibliothéques d’API Android, ils donnent au développeur
accès à la pile Android.
 Des outils de développement qui permettent de compiler
et déboguer vos applications.
 Le virtual Device Manager et l’Emulateur qui fournit un
meilleur environnement de test.
 Des exemples de code et un support en ligne.
Versions Android et SDK
Nom Version Date Caractéristique
Android 1.0 09/2008 USA
Petit Four 1.1 02/2009 France
Cupcake 1.5 04/2009
prise en charge de la détection de rotation, de
l'accéléromètre, enregistrement vidéo, App Widgets
Donut 1.6 09/2009 apporte le support de plusieurs résolutions
Gingerbread 2.3 12/2010 HTML5, Wifi, stockage externe, NFC, VoIP, SIP, …
Honeycomb 3.0 02/2011 conçue spécifiquement pour les tablettes
Ice Cream
Sandwich
4.0.1 10/2011
fusion entre téléphones, tablettes et
télévisions
Jelly Bean 4.1 07/2012
 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
Versions Android et SDK
 Il coexiste actuellement deux branches
de versions
 versions 3 pour les tablettes
 version 2 pour les smart phones
 versions 4 : fusion entre téléphones, tablettes
et télévisions
– versions 5
– versions 6
Installer Android SDK
http://developer.android.com/sdk/index.html
Installer Android SDK (le répertoire)
Quelques outils du SDK Android (tools)
 Accessibles à partir d’une ligne de commande (fenêtre DOS)
 adb permet la connexion au terminal (smartphone ou
simulateur) pour :
 Transférer des fichiers (push / pull)
 Travailler en ligne de commande unix (shell)
 Installer une application (install)
 Paramétrer le réseau (forward)
 Déboguer une application (logcat)
 dx transforme le bytecode java en code Dalvik
 apkbuilder constitue un fichier .apk téléchargeable sur le
terminal
 Remarque : Eclipse utilise ces outils directement mais on est
parfois obligé d’y recourir (transfert de fichiers, installations
directes d’applications …)
Installation du plugin ADT
Eclipse → Help → Install New Software
Cliquer sur le bouton Add
Ajouter le repository
remplir les deux champs
Name : ADT Plugin
Location :
https://dl-ssl.google.com/android/eclipse/
puis OK
Une fois que les outils sont affichés
Select All
attention : il faut que CDT soit installé
pour que le NDK puisse être installé
puis Next
Accepter les licences
puis cliquer sur Finish
Accepter l'alerte de sécurité
Puis redémarrer Eclipse
Installation du plugin ADT
 Au redémarrage la version du plugin est vérifié
 accepter l'éventuelle mise à niveau
 Ou sélectionner le répertoire d'installation du plugin
 puis Finish
Installation des API (SDK Manager)
 Dans la barre d'outils sélectionner le "SDK Manager"
 Dans la fenêtre suivante, sélectionner les niveaux d'API souhaités
 Une fois l'installation terminée le répertoire d'installation du SDK comporte
l'ensemble des outils, documentations, exemples, plateformes cibles
L'installation étant relativement lente, ce répertoire peut être copier sur les autres machines
Émulateur AVD
 AVD : Android Virtual Device
 émulateur de matériel
 complètement configurable
 Avant d'utiliser un
émulateur il faut le créer
Via Eclipse
Exécuter en
cliquant sur
ou par
command
emu
Émulateur AVD
 L'émulateur Android peut être lancé
 via Eclipse
 via la ligne de commande
 emulator -avd <avd_name> [-<option> [<value>]]
 >>… Androidandroid-sdktoolsemulator.exe -avd emu
C:UsersRedouaneAppDataLocal
Androidandroid-
sdktoolsemulator.exe -avd emu
pause
C:UsersRedouaneAppDataLocal
Androidandroid-
sdktoolsemulator.exe -avd emu
pause
Mon fichier emu.bat
Changer l’apparence de l’émulateur
 Sur la page
http://jsharkey.org/blog/2008/10/10/leveraging-the-android-emulator/
 Télécharger http://jsharkey.org/downloads/G1.zip
 Décompresser le dossier dans le dossier d’installation d’android
…Androidandroid-sdkplatformsandroid-8skins
 Créer un nouveau AVD par Eclipse nommé (emuG1)
 Editer le fichier .android/avd/emuG1.avd/config.ini en mettant les
deux propriètées suivantes :
 skin.name=G1
 skin.path=platformsandroid-8skins
 Sauvegarder et lancer l’émulateur
 CTRL + F11 pour rotation
Emulator Control dans Eclipse
Window ==> show views==> Other ==> android==> Emulator
Control
Emuler
un
appel
ou
SMS
Emuler
un
appel
ou
SMS
Dalvik Debug Monitor Server
 Dalvik Debug Monitor Server
 outil de debug
 Intégré à Eclipse
 perspective DDMS
 Ligne de commande
 tools/ddms
DDMS
 DDMS permet
 de suivre l'utilisation du tas
 de suivre les allocations d'objets et mémoire
 de travailler sur le système de fichier de l'émulateur
 de voir les threads executés sur l'émulateur
 d'effectuer du profiling de méthode
 Utiliser « Emulator Control » pour
 envoi de SMS
 émulation d'appel Téléphonique
 envoi de points de géolocalisation
Gestion des logs
 L’outil logcat permet de visualiser les logs du système de
logs Android
 logcat est utilisable via adb ou DDMS
 Par défaut les logs sont dirigés vers /dev/log/main
 deux autres journaux de logs existent
 /dev/log/radio pour les activité réseau et téléphone
 /dev/log/events pour les événements système
 Les sorties vers les flux out et err sont redirigés vers
/dev/null
 utilisation de System.out ou System.err
 VERBOSE
 méthode Log.v(...)
 DEBUG
 méthode Log.d(...)
 INFO
 méthode Log.i(...)
 WARN
 méthode Log.w(...)
 ERROR
 méthode Log.e(...)
 ASSERT
 méthode Log.wtf(...)
 "What a Terrible Failure" :
erreur ne devant jamais
arrive
Gestion des logs
Niveaux de log et méthodes
Développer avec Eclipse
Structure d’un projet Eclipse
New projet ==> Android application project
src contient les fichiers source
gen contient les fichiers générés par Eclipse
res contient les ressources (images,
descriptions d’interfaces, valeurs)
– Organisé en sous dossiers par types
AndroidManifest décrit les
propriétés de l’application
Le fichier AndroidManifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.activities"
android:installLocation="auto"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS" />
<uses-sdk android:minSdkVersion="8 » android:targetSdkVersion="8" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.activities.Main"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="InternalActivity" />
</application>
</manifest>
Généré par Eclipse, contient la
configuration principale de l'application
Généré par Eclipse, contient la
configuration principale de l'application
On modifiera ce fichier pour déclarer
les composants applicatifs, point
d'entrée principal, les permissions, etc.
On modifiera ce fichier pour déclarer
les composants applicatifs, point
d'entrée principal, les permissions, etc.
Les ressources
 Le répertoire res contient toutes les ressources qui
seront mises dans le apk :
 drawable-hdpi (images en haute définition)
 drawable-ldpi (images en basse définition)
 drawable-mdpi (images en moyenne définition)
 layout (description en XML des interfaces)
 values (définitions en XML de constantes : chaînes, tableaux,
valeurs numériques …)
 menus (description en XML de menus pour l’application)
 xml (fichiers XML utilisés directement par l’application)
 raw (tous les autres types de ressources : sons, vidéos, …)
 On peut ajouter d’autres sous répertoires
Créer des ressources valeurs
 Les ressources de type valeur sont décrites
dans des fichiers XML ayant la forme suivante:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Activity Example</string>
<string name="action_settings">Settings</string>
<string name="hello">Hi Activities!</string>
</resources>
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
</resources>
La classe R
 C’est une classe générée par Eclipse qui permet à l’application
d’accéder aux ressources
 Elle contient des classes internes dont les noms correspondent aux types de
ressources (id, drawable, layout …)
 Elle est constituée à partir des fichiers placés dans les sous
répertoires du répertoire res
 Une propriété est créée pour :
 Chaque image placé dans drawable-xxxx
 Chaque identificateur défini dans des fichiers XML (objets d’interface,
constantes)
 Chaque fichier placé dans les répertoires xml , raw …
Utilisation des ressources
 Référencement d’une ressource dans un fichier xml.La
forme générale est : "@type/identificateur"
 Référencement d’une ressource dans le code java. La
forme générale est : R.type.identificateur
 Par exemple : R.string.hello
 Fait référence à la chaine « Hi Activities! »
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:title="@string/action_settings"/>
</menu>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Activity Example</string>
<string name="action_settings">Settings</string>
<string name="hello">Hi Activities!</string>
</resources>
"@+id/id_foo signifie que vous créez un identifiant appelé
id_foo dans l'espace de noms de l’application.
"@+id/id_foo signifie que vous créez un identifiant appelé
id_foo dans l'espace de noms de l’application.
Utilisation des ressources
 Accès aux ressources dans l’application
 Mise en place de l’interface principale
 setContentView(R.layout.nom_du_fichier_xml);
 Mise en place d’interfaces supplémentaires
 Par les classes LayoutInflater ou MenuInflater
 Accès direct à une valeur ou à une ressource :
 String titre = getResources().getString(R.string.texte_titre);
 Drawable monImage =
getResources().getDrawable(R.drawable.nom_de_l_image)
Uri (Uniform Resource Identifiers)
 Désigne des ressources locales ou distantes (plus
général que les URL car non lié à un protocole
réseau)
 Création
 Ressource locale
Uri.parse("android.resource://activity_package" + R.chemin.mon_son);
 Ressource distante
Uri.parse("http://URL/nom_du_fichier");
Uri.fromFile(File)
Les applications
Structure d’une application
 Activité (android.app.Activity) : Programme qui gère une interface graphique
 Service (android.app.Service) : Programme qui fonctionne en tâche de fond sans
interface
 Fournisseur de contenu (android.content.ContentProvider) : Partage d’informations
entre applications
 Ecouteur d’intention diffusées (android.content.BroadcastReceiver) : Permet à une
application de récupérer des informations générales (réception d’un SMS, batterie
faible, …)
 Eléments d’interaction
 Intention (android.content.Intent) : permet à une application d’indiquer ce qu’elle
sait faire ou de chercher un savoir-faire
 Filtre d’intentions (<intent-filter> : permet de choisir la meilleure application pour
assurer un savoir-faire
Application
 Une activité principale
 Eventuellement une ou plusieurs activités
secondaires
 Eventuellement un ou plusieurs services
 Eventuellement un ou plusieurs écouteurs
d’intentions diffusées
 Eventuellement un ou plusieurs fournisseurs de
contenu
Déclaration dans AndroidManifest.xml
<activity>
<intent-filter>
…les savoir-faire
</intent-filter>
</activity>
Activité Ecouteur d’intention diffusée
<receiver>
<intent-filter>
… les savoir-faire
</intent-filter>
</receiver>
Service
<service>
<intent-filter>
… les savoir-faire
</intent-filter>
</service>
Fournisseur de contenu
<provider>
<grant-uri-permission …/>
<path-permission …/>
</provider>
<application
</application>
Activité Android
 Classe qui hérite de Activity ou d’une classe dérivée de Activity (par exemple de
MapActivity pour utiliser Google maps, ListActivity ou TabActivity pour des
interfaces particulières)
 La classe Activity hérite de l'interface Context dont le but est de représenter tous
les composants d'une application
 On surcharge certaines méthodes qui sont appelées par Android pour définir le
comportement :
 onCreate lors de la création
 onDestroy lorsque l’activité se termine
 onStart lorsque l’activité démarre ou redémarre
 onPause lorsque l’activité n’est plus en premier plan
 onResume lorsque l’activité revient en premier plan
 onStop lorsque l’activité n’est plus visible
 onRestart lorsque l’activité redevient visible
Cycle de vie d’une activité
 Android se réserve le droit de tuer le processus unix d’une
activité s’il n’y a plus assez de ressources (mémoire). Les règles
sont les suivantes :
 Une activité en premier plan n’est tuée que si c’est elle qui consomme trop
de ressources.
 Une activité en arrière plan ou non visible peut être tuée.
 Lorsqu’une activité a été tuée, si on revient dessus elle est
relancée (onCreate)
 On peut sauvegarder l’état (c’est-à-dire les propriétés) d’une activité (dans
onPause) pour le retrouver lorsqu’elle elle est recréée par le paramètre
transmis à onCreate
Etats principaux :
 Active
 Après l’exécution de
 onResume
 Suspendue
 Après l’exécution de
 onPause
 Arrêtée
 Après l’exécution de
 onStop
 Terminée
 Après l’exécution de
 onDestroy
Cycle de vie d’une activité
Première application android
 Créer un projet HelloAndroid sous
eclipse
 Une Activité HelloActivy
 Le fichier res/values/strings.xml
< ?xm lversi
on= "1.
0" encodi
ng= "ut
f
-
8"?>
< r
esour
ces>
< st
ri
ng nam e= "hel
l
o"> Hel
l
o W orl
d,H el
l
oAct
i
vi
t
y!< /
st
ri
ng>
< st
ri
ng nam e= "app_nam e"> Hel
l
oAndroi
d < /
st
ri
ng>
< /
r
esour
ces>
@ O ver
ri
de
protected voi
d onD estroy() {
Log.
i
(
"",
"onD est
roy")
;
super.
onD estroy();
}
@ O ver
ri
de
protected voi
d onStart() {
Log.
i
(
"","O n St
art
")
;
super.
onStart();
}
@ O ver
ri
de
protected voi
d onPause() {
Log.
i
(
"","onPause!
")
;
super.
onPause();
}
@ O ver
ri
de
protected voi
d onR esum e() {
Log.
i
(
"",
"onResum e")
;
super.
onR esum e();
}
@ O ver
ri
de
protected voi
d onStop() {
Log.
i
(
"","O nSt
op!
")
;
super.
onStop();
}

More Related Content

Similar to 1-android.pdf

Similar to 1-android.pdf (20)

Introduction_Android_-_Complet.pdf
Introduction_Android_-_Complet.pdfIntroduction_Android_-_Complet.pdf
Introduction_Android_-_Complet.pdf
 
Initiation au développement mobile sous Android
Initiation au développement mobile sous AndroidInitiation au développement mobile sous Android
Initiation au développement mobile sous Android
 
Développement Sous Android
Développement Sous AndroidDéveloppement Sous Android
Développement Sous Android
 
cours-android.pdf
cours-android.pdfcours-android.pdf
cours-android.pdf
 
Architecture android
Architecture androidArchitecture android
Architecture android
 
Chapitre 4 sem
Chapitre 4 semChapitre 4 sem
Chapitre 4 sem
 
Chap 02 poo en java
Chap 02 poo en javaChap 02 poo en java
Chap 02 poo en java
 
introAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdfintroAndroid_2023_V6.5.2pp1-162.pdf
introAndroid_2023_V6.5.2pp1-162.pdf
 
Paug aosp ice-creamsandwich_20120119
Paug aosp ice-creamsandwich_20120119Paug aosp ice-creamsandwich_20120119
Paug aosp ice-creamsandwich_20120119
 
Introduction a Android
Introduction a AndroidIntroduction a Android
Introduction a Android
 
In01 - Programmation Android - 01 - introduction
In01 - Programmation Android - 01 - introductionIn01 - Programmation Android - 01 - introduction
In01 - Programmation Android - 01 - introduction
 
Apache Cordova 3.3 de zéro
Apache Cordova 3.3 de zéroApache Cordova 3.3 de zéro
Apache Cordova 3.3 de zéro
 
Ch1. Développement mobile
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobile
 
Architecture .net
Architecture  .netArchitecture  .net
Architecture .net
 
Chap android
Chap androidChap android
Chap android
 
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu...
 
Android introvf
Android introvfAndroid introvf
Android introvf
 
Native script
Native scriptNative script
Native script
 
Android wear
Android wearAndroid wear
Android wear
 
Windev
WindevWindev
Windev
 

More from FethiBenYahia1 (9)

Menus.pdf
Menus.pdfMenus.pdf
Menus.pdf
 
TP_3.pdf
TP_3.pdfTP_3.pdf
TP_3.pdf
 
TP_1.pdf
TP_1.pdfTP_1.pdf
TP_1.pdf
 
TP_2.pdf
TP_2.pdfTP_2.pdf
TP_2.pdf
 
3-android.pdf
3-android.pdf3-android.pdf
3-android.pdf
 
4-android.pdf
4-android.pdf4-android.pdf
4-android.pdf
 
2-android.pdf
2-android.pdf2-android.pdf
2-android.pdf
 
2-historique d'android.pdf
2-historique d'android.pdf2-historique d'android.pdf
2-historique d'android.pdf
 
4-android.pdf
4-android.pdf4-android.pdf
4-android.pdf
 

Recently uploaded

Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24BenotGeorges3
 
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfBibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfAtelier Canopé 37 - Tours
 
Calendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avrilCalendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avrilfrizzole
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneTxaruka
 
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfVulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfSylvianeBachy
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film françaisTxaruka
 
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxDIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxMartin M Flynn
 
Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Gabriel Gay-Para
 
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfBibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfAtelier Canopé 37 - Tours
 
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxJCAC
 
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Atelier Canopé 37 - Tours
 
Apprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursApprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursStagiaireLearningmat
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx      Film   françaisPas de vagues.  pptx      Film   français
Pas de vagues. pptx Film françaisTxaruka
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfbdp12
 
Aux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècleAux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècleAmar LAKEL, PhD
 

Recently uploaded (16)

Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
 
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfBibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
 
Calendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avrilCalendrier de la semaine du 8 au 12 avril
Calendrier de la semaine du 8 au 12 avril
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienne
 
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfVulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film français
 
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxDIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
 
Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)
 
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfBibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
 
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
 
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
 
Apprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursApprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceurs
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx      Film   françaisPas de vagues.  pptx      Film   français
Pas de vagues. pptx Film français
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
 
Aux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècleAux origines de la sociologie : du XIXème au début XX ème siècle
Aux origines de la sociologie : du XIXème au début XX ème siècle
 
Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024
 

1-android.pdf

  • 2. Plan  Présentation de la plateforme Android – Composants la plateforme Android  Outils de développement d’applications pour Android – SDK, ADT, AVD, DDMS …  Application HelloWorld
  • 3. La plateforme Android  La plate-forme Android est une pile logicielle.  Elle a été conçu principalement, mais pas exclusivement pour le soutien des appareils mobiles tels que les téléphones et les tablettes.  Cette pile a plusieurs couches :  Un système d'exploitation open-source  Un intergiciel (middleware)  et des applications clés.  Android est également livré avec un kit de développement, ou SDK, qui fournit des outils et des APIs nécessaires pour le développement d’applications Android en utilisant le langage de programmation Java.  Documentation, cours, des blogs, et des exemples
  • 4. Présentation de la plateforme
  • 5. Pile logiciel d’Android – Noyau Linux  S'appuyant sur le noyau Linux 2.6 pour les services système de base  Offre une architecture d'autorisations  Mémoire et processus de gestion des  Fichier, et d'IO réseau.  Pilotes : ● Gestion du matériel (écran clavier …) ● Gestion des capteurs (appareil photo, GPS, accéléromètre …)  sécurité  Fournir une couche d'abstraction entre le Hardware et le reste de la pile logiciel
  • 6.  Android inclue un ensemble de bibliothèques C/C++ utilisées par les composants. Graphisme Médias Web Etc  Exposée aux développeurs à travers le Framework d'application Android Pile logiciel d’Android – Bibliothèques SSL, SQLite, OpenGL ES, etc.
  • 7.  Bibliothèques de base  Fournir la plupart des fonctionnalités disponibles dans les bibliothèques de base du langage Java APIs Structure de données Utilitaires Accès aux Fichiers Réseau Graphiques Etc Pile logiciel d’Android – Runtime
  • 8.  Dalvik Virtual Machine  Permet d’exécuter des applications spécifiques Sur n’importe quelle smartphone Android. Chaque application Android s'exécute dans son propre processus, avec sa propre instance de la machine virtuelle Dalvik Dalvik a été écrit de telle sorte qu'un dispositif peut exécuter plusieurs machines virtuelles de manière efficace. Elle utilise le noyau Linux sous-jacent de l’appareil pour gérer l’interaction de bas-niveau avec le matériel. [Dalvik] n'est pas compatible avec une JVM du type Java SE ou même Java ME. La librairie d'accès est donc redéfinie entièrement par Google Pile logiciel d’Android – Runtime
  • 9.  Dalvik Virtual Machine Exécution de l’exécutable Dalvik (format .dex)  Le format .dex est optimisé pour un minimum occupation mémoire.  Compilation S'appuyant sur le noyau Linux pour gestion de la mémoire de bas niveau et threads. Pile logiciel d’Android – Runtime
  • 10. Pile logiciel d’Android – Application Framework  Des gestionnaires pour les applications + une API en java  Gestion des fenêtres, des activités, des ressources…  API pour développement des programmes  Permettent l’activation et la simplification de la réutilisation de composants  Les développeurs ont l’accès complet aux mêmes Framework APIs utilisés par les applications de base.
  • 11. Fonction Rôle View System Utilisé pour construire une application, y compris les listes, grilles, texte, Boîtes, des boutons, et le navigateur Web intégré Content Provider Permettant aux applications d'accéder aux données d'autres applications ou pour partager leurs propres données Resource Manager Fournir un accès à des ressources non-code (chaînes localisées, les graphiques et les fichiers de mise en page) Notification Manager Permettre à toutes les applications d’afficher des alertes de clients dans la barre d'état Activity Manager Gestion du cycle de vie des applications en fournissant une navigation commune de "pile de retour (back stack). Pile logiciel d’Android – Application Framework Les activités sont disposés dans une pile (la "pile de retour"), dans l'ordre dans lequel chaque activité est ouverte.
  • 12. Pile logiciel d’Android - Application  Android fournit un ensemble d'applications de base:  Client de messagerie  Programme de SMS  Calendrier  Maps  Navigateur  L'annuaire des contacts  etc  Toutes les applications sont développées en Java.  Les utilisateurs sont autorisés à remplacer les composants.
  • 14. Environnement de développement Chaine de production d’application AndroidManifest AndroidManifest Code source .java Code source .java Bytecode .class Bytecode .class Binaire Dalvik .dex Binaire Dalvik .dex Machine virtuelle Dalvik IDE + plugins SDK Android + outils Environnement d'exécution Chaîne de compilation Application .apk Application .apk Ressources Ressources API Android API Android Constitution de l'application Terminal Téléchargement
  • 15. SDK Android Le kit de développement Android(SDK) fournit l’environnement de travail pour développer, tester et déboguer des applications Android. Dans le SDK on trouve:  Les API Android qui sont le coeur du SDK. Composés de bibliothéques d’API Android, ils donnent au développeur accès à la pile Android.  Des outils de développement qui permettent de compiler et déboguer vos applications.  Le virtual Device Manager et l’Emulateur qui fournit un meilleur environnement de test.  Des exemples de code et un support en ligne.
  • 16. Versions Android et SDK Nom Version Date Caractéristique Android 1.0 09/2008 USA Petit Four 1.1 02/2009 France Cupcake 1.5 04/2009 prise en charge de la détection de rotation, de l'accéléromètre, enregistrement vidéo, App Widgets Donut 1.6 09/2009 apporte le support de plusieurs résolutions Gingerbread 2.3 12/2010 HTML5, Wifi, stockage externe, NFC, VoIP, SIP, … Honeycomb 3.0 02/2011 conçue spécifiquement pour les tablettes Ice Cream Sandwich 4.0.1 10/2011 fusion entre téléphones, tablettes et télévisions Jelly Bean 4.1 07/2012  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
  • 17. Versions Android et SDK  Il coexiste actuellement deux branches de versions  versions 3 pour les tablettes  version 2 pour les smart phones  versions 4 : fusion entre téléphones, tablettes et télévisions – versions 5 – versions 6
  • 19. Installer Android SDK (le répertoire)
  • 20. Quelques outils du SDK Android (tools)  Accessibles à partir d’une ligne de commande (fenêtre DOS)  adb permet la connexion au terminal (smartphone ou simulateur) pour :  Transférer des fichiers (push / pull)  Travailler en ligne de commande unix (shell)  Installer une application (install)  Paramétrer le réseau (forward)  Déboguer une application (logcat)  dx transforme le bytecode java en code Dalvik  apkbuilder constitue un fichier .apk téléchargeable sur le terminal  Remarque : Eclipse utilise ces outils directement mais on est parfois obligé d’y recourir (transfert de fichiers, installations directes d’applications …)
  • 21. Installation du plugin ADT Eclipse → Help → Install New Software Cliquer sur le bouton Add Ajouter le repository remplir les deux champs Name : ADT Plugin Location : https://dl-ssl.google.com/android/eclipse/ puis OK Une fois que les outils sont affichés Select All attention : il faut que CDT soit installé pour que le NDK puisse être installé puis Next Accepter les licences puis cliquer sur Finish Accepter l'alerte de sécurité Puis redémarrer Eclipse
  • 22. Installation du plugin ADT  Au redémarrage la version du plugin est vérifié  accepter l'éventuelle mise à niveau  Ou sélectionner le répertoire d'installation du plugin  puis Finish
  • 23. Installation des API (SDK Manager)  Dans la barre d'outils sélectionner le "SDK Manager"  Dans la fenêtre suivante, sélectionner les niveaux d'API souhaités  Une fois l'installation terminée le répertoire d'installation du SDK comporte l'ensemble des outils, documentations, exemples, plateformes cibles L'installation étant relativement lente, ce répertoire peut être copier sur les autres machines
  • 24. Émulateur AVD  AVD : Android Virtual Device  émulateur de matériel  complètement configurable  Avant d'utiliser un émulateur il faut le créer Via Eclipse Exécuter en cliquant sur ou par command emu
  • 25. Émulateur AVD  L'émulateur Android peut être lancé  via Eclipse  via la ligne de commande  emulator -avd <avd_name> [-<option> [<value>]]  >>… Androidandroid-sdktoolsemulator.exe -avd emu C:UsersRedouaneAppDataLocal Androidandroid- sdktoolsemulator.exe -avd emu pause C:UsersRedouaneAppDataLocal Androidandroid- sdktoolsemulator.exe -avd emu pause Mon fichier emu.bat
  • 26. Changer l’apparence de l’émulateur  Sur la page http://jsharkey.org/blog/2008/10/10/leveraging-the-android-emulator/  Télécharger http://jsharkey.org/downloads/G1.zip  Décompresser le dossier dans le dossier d’installation d’android …Androidandroid-sdkplatformsandroid-8skins  Créer un nouveau AVD par Eclipse nommé (emuG1)  Editer le fichier .android/avd/emuG1.avd/config.ini en mettant les deux propriètées suivantes :  skin.name=G1  skin.path=platformsandroid-8skins  Sauvegarder et lancer l’émulateur  CTRL + F11 pour rotation
  • 27. Emulator Control dans Eclipse Window ==> show views==> Other ==> android==> Emulator Control Emuler un appel ou SMS Emuler un appel ou SMS
  • 28. Dalvik Debug Monitor Server  Dalvik Debug Monitor Server  outil de debug  Intégré à Eclipse  perspective DDMS  Ligne de commande  tools/ddms
  • 29. DDMS  DDMS permet  de suivre l'utilisation du tas  de suivre les allocations d'objets et mémoire  de travailler sur le système de fichier de l'émulateur  de voir les threads executés sur l'émulateur  d'effectuer du profiling de méthode  Utiliser « Emulator Control » pour  envoi de SMS  émulation d'appel Téléphonique  envoi de points de géolocalisation
  • 30. Gestion des logs  L’outil logcat permet de visualiser les logs du système de logs Android  logcat est utilisable via adb ou DDMS  Par défaut les logs sont dirigés vers /dev/log/main  deux autres journaux de logs existent  /dev/log/radio pour les activité réseau et téléphone  /dev/log/events pour les événements système  Les sorties vers les flux out et err sont redirigés vers /dev/null  utilisation de System.out ou System.err
  • 31.  VERBOSE  méthode Log.v(...)  DEBUG  méthode Log.d(...)  INFO  méthode Log.i(...)  WARN  méthode Log.w(...)  ERROR  méthode Log.e(...)  ASSERT  méthode Log.wtf(...)  "What a Terrible Failure" : erreur ne devant jamais arrive Gestion des logs Niveaux de log et méthodes
  • 33. Structure d’un projet Eclipse New projet ==> Android application project src contient les fichiers source gen contient les fichiers générés par Eclipse res contient les ressources (images, descriptions d’interfaces, valeurs) – Organisé en sous dossiers par types AndroidManifest décrit les propriétés de l’application
  • 34. Le fichier AndroidManifest <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.activities" android:installLocation="auto" android:versionCode="1" android:versionName="1.0" > <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS" /> <uses-sdk android:minSdkVersion="8 » android:targetSdkVersion="8" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.activities.Main" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="InternalActivity" /> </application> </manifest> Généré par Eclipse, contient la configuration principale de l'application Généré par Eclipse, contient la configuration principale de l'application On modifiera ce fichier pour déclarer les composants applicatifs, point d'entrée principal, les permissions, etc. On modifiera ce fichier pour déclarer les composants applicatifs, point d'entrée principal, les permissions, etc.
  • 35. Les ressources  Le répertoire res contient toutes les ressources qui seront mises dans le apk :  drawable-hdpi (images en haute définition)  drawable-ldpi (images en basse définition)  drawable-mdpi (images en moyenne définition)  layout (description en XML des interfaces)  values (définitions en XML de constantes : chaînes, tableaux, valeurs numériques …)  menus (description en XML de menus pour l’application)  xml (fichiers XML utilisés directement par l’application)  raw (tous les autres types de ressources : sons, vidéos, …)  On peut ajouter d’autres sous répertoires
  • 36. Créer des ressources valeurs  Les ressources de type valeur sont décrites dans des fichiers XML ayant la forme suivante: <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Activity Example</string> <string name="action_settings">Settings</string> <string name="hello">Hi Activities!</string> </resources> <resources> <!-- Default screen margins, per the Android Design guidelines. --> <dimen name="activity_horizontal_margin">16dp</dimen> <dimen name="activity_vertical_margin">16dp</dimen> </resources>
  • 37. La classe R  C’est une classe générée par Eclipse qui permet à l’application d’accéder aux ressources  Elle contient des classes internes dont les noms correspondent aux types de ressources (id, drawable, layout …)  Elle est constituée à partir des fichiers placés dans les sous répertoires du répertoire res  Une propriété est créée pour :  Chaque image placé dans drawable-xxxx  Chaque identificateur défini dans des fichiers XML (objets d’interface, constantes)  Chaque fichier placé dans les répertoires xml , raw …
  • 38. Utilisation des ressources  Référencement d’une ressource dans un fichier xml.La forme générale est : "@type/identificateur"  Référencement d’une ressource dans le code java. La forme générale est : R.type.identificateur  Par exemple : R.string.hello  Fait référence à la chaine « Hi Activities! » <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/action_settings" android:orderInCategory="100" android:title="@string/action_settings"/> </menu> <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Activity Example</string> <string name="action_settings">Settings</string> <string name="hello">Hi Activities!</string> </resources> "@+id/id_foo signifie que vous créez un identifiant appelé id_foo dans l'espace de noms de l’application. "@+id/id_foo signifie que vous créez un identifiant appelé id_foo dans l'espace de noms de l’application.
  • 39. Utilisation des ressources  Accès aux ressources dans l’application  Mise en place de l’interface principale  setContentView(R.layout.nom_du_fichier_xml);  Mise en place d’interfaces supplémentaires  Par les classes LayoutInflater ou MenuInflater  Accès direct à une valeur ou à une ressource :  String titre = getResources().getString(R.string.texte_titre);  Drawable monImage = getResources().getDrawable(R.drawable.nom_de_l_image)
  • 40. Uri (Uniform Resource Identifiers)  Désigne des ressources locales ou distantes (plus général que les URL car non lié à un protocole réseau)  Création  Ressource locale Uri.parse("android.resource://activity_package" + R.chemin.mon_son);  Ressource distante Uri.parse("http://URL/nom_du_fichier"); Uri.fromFile(File)
  • 42. Structure d’une application  Activité (android.app.Activity) : Programme qui gère une interface graphique  Service (android.app.Service) : Programme qui fonctionne en tâche de fond sans interface  Fournisseur de contenu (android.content.ContentProvider) : Partage d’informations entre applications  Ecouteur d’intention diffusées (android.content.BroadcastReceiver) : Permet à une application de récupérer des informations générales (réception d’un SMS, batterie faible, …)  Eléments d’interaction  Intention (android.content.Intent) : permet à une application d’indiquer ce qu’elle sait faire ou de chercher un savoir-faire  Filtre d’intentions (<intent-filter> : permet de choisir la meilleure application pour assurer un savoir-faire
  • 43. Application  Une activité principale  Eventuellement une ou plusieurs activités secondaires  Eventuellement un ou plusieurs services  Eventuellement un ou plusieurs écouteurs d’intentions diffusées  Eventuellement un ou plusieurs fournisseurs de contenu
  • 44. Déclaration dans AndroidManifest.xml <activity> <intent-filter> …les savoir-faire </intent-filter> </activity> Activité Ecouteur d’intention diffusée <receiver> <intent-filter> … les savoir-faire </intent-filter> </receiver> Service <service> <intent-filter> … les savoir-faire </intent-filter> </service> Fournisseur de contenu <provider> <grant-uri-permission …/> <path-permission …/> </provider> <application </application>
  • 45. Activité Android  Classe qui hérite de Activity ou d’une classe dérivée de Activity (par exemple de MapActivity pour utiliser Google maps, ListActivity ou TabActivity pour des interfaces particulières)  La classe Activity hérite de l'interface Context dont le but est de représenter tous les composants d'une application  On surcharge certaines méthodes qui sont appelées par Android pour définir le comportement :  onCreate lors de la création  onDestroy lorsque l’activité se termine  onStart lorsque l’activité démarre ou redémarre  onPause lorsque l’activité n’est plus en premier plan  onResume lorsque l’activité revient en premier plan  onStop lorsque l’activité n’est plus visible  onRestart lorsque l’activité redevient visible
  • 46. Cycle de vie d’une activité  Android se réserve le droit de tuer le processus unix d’une activité s’il n’y a plus assez de ressources (mémoire). Les règles sont les suivantes :  Une activité en premier plan n’est tuée que si c’est elle qui consomme trop de ressources.  Une activité en arrière plan ou non visible peut être tuée.  Lorsqu’une activité a été tuée, si on revient dessus elle est relancée (onCreate)  On peut sauvegarder l’état (c’est-à-dire les propriétés) d’une activité (dans onPause) pour le retrouver lorsqu’elle elle est recréée par le paramètre transmis à onCreate
  • 47. Etats principaux :  Active  Après l’exécution de  onResume  Suspendue  Après l’exécution de  onPause  Arrêtée  Après l’exécution de  onStop  Terminée  Après l’exécution de  onDestroy Cycle de vie d’une activité
  • 48. Première application android  Créer un projet HelloAndroid sous eclipse  Une Activité HelloActivy  Le fichier res/values/strings.xml < ?xm lversi on= "1. 0" encodi ng= "ut f - 8"?> < r esour ces> < st ri ng nam e= "hel l o"> Hel l o W orl d,H el l oAct i vi t y!< / st ri ng> < st ri ng nam e= "app_nam e"> Hel l oAndroi d < / st ri ng> < / r esour ces> @ O ver ri de protected voi d onD estroy() { Log. i ( "", "onD est roy") ; super. onD estroy(); } @ O ver ri de protected voi d onStart() { Log. i ( "","O n St art ") ; super. onStart(); } @ O ver ri de protected voi d onPause() { Log. i ( "","onPause! ") ; super. onPause(); } @ O ver ri de protected voi d onR esum e() { Log. i ( "", "onResum e") ; super. onR esum e(); } @ O ver ri de protected voi d onStop() { Log. i ( "","O nSt op! ") ; super. onStop(); }