1-android.pdf

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();
}
1 sur 48

Recommandé

Android Studio, premier contact par
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contactJasmine Conseil
4.9K vues28 diapositives
Android Studio, premier contact par
Android Studio, premier contactAndroid Studio, premier contact
Android Studio, premier contactJasmine Conseil
560 vues28 diapositives
Hello droid par
Hello droidHello droid
Hello droidWiki Info Systeme
2.3K vues25 diapositives
cours Android.pptx par
cours Android.pptxcours Android.pptx
cours Android.pptxYaminaGh1
126 vues69 diapositives
Cours android par
Cours androidCours android
Cours androidAd Hafsa
800 vues107 diapositives
1 tours horizon par
1 tours horizon1 tours horizon
1 tours horizonSaber LAJILI
1.8K vues25 diapositives

Contenu connexe

Similaire à 1-android.pdf

Initiation au développement mobile sous Android par
Initiation au développement mobile sous AndroidInitiation au développement mobile sous Android
Initiation au développement mobile sous AndroidAbdelkader Rhouati
2.2K vues32 diapositives
Développement Sous Android par
Développement Sous AndroidDéveloppement Sous Android
Développement Sous AndroidMohamed Boudchiche
2.6K vues111 diapositives
cours-android.pdf par
cours-android.pdfcours-android.pdf
cours-android.pdfmed_univ78
8 vues101 diapositives
Architecture android par
Architecture androidArchitecture android
Architecture androidHoussem Rouini
2K vues14 diapositives

Similaire à 1-android.pdf(20)

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
In01 - Programmation Android - 01 - introduction par Yann Caron
In01 - Programmation Android - 01 - introductionIn01 - Programmation Android - 01 - introduction
In01 - Programmation Android - 01 - introduction
Yann Caron19.1K vues
Ch1. Développement mobile par Haifa Chorfi
Ch1. Développement mobileCh1. Développement mobile
Ch1. Développement mobile
Haifa Chorfi160 vues
Bornes, écrans, automates: ce qui se cache derrière les systèmes embarqués qu... par Microsoft
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...
Microsoft453 vues

Plus de FethiBenYahia1

Menus.pdf par
Menus.pdfMenus.pdf
Menus.pdfFethiBenYahia1
32 vues8 diapositives
TP_3.pdf par
TP_3.pdfTP_3.pdf
TP_3.pdfFethiBenYahia1
28 vues8 diapositives
TP_1.pdf par
TP_1.pdfTP_1.pdf
TP_1.pdfFethiBenYahia1
34 vues12 diapositives
TP_2.pdf par
TP_2.pdfTP_2.pdf
TP_2.pdfFethiBenYahia1
30 vues5 diapositives
3-android.pdf par
3-android.pdf3-android.pdf
3-android.pdfFethiBenYahia1
36 vues47 diapositives
4-android.pdf par
4-android.pdf4-android.pdf
4-android.pdfFethiBenYahia1
31 vues29 diapositives

Dernier

Cours Audit General 2019 (1).prof tatouti .pdf par
Cours Audit  General 2019 (1).prof tatouti .pdfCours Audit  General 2019 (1).prof tatouti .pdf
Cours Audit General 2019 (1).prof tatouti .pdfAbdelghani19
7 vues230 diapositives
Newsletter SPW Agriculture en province du Luxembourg du 13-11-23 (adapté au 2... par
Newsletter SPW Agriculture en province du Luxembourg du 13-11-23 (adapté au 2...Newsletter SPW Agriculture en province du Luxembourg du 13-11-23 (adapté au 2...
Newsletter SPW Agriculture en province du Luxembourg du 13-11-23 (adapté au 2...BenotGeorges3
24 vues18 diapositives
Formation M2i - Augmenter son impact en communication et en management grâce... par
Formation M2i - Augmenter son impact en communication et en management grâce...Formation M2i - Augmenter son impact en communication et en management grâce...
Formation M2i - Augmenter son impact en communication et en management grâce...M2i Formation
50 vues55 diapositives
Newsletter SPW Agriculture en province du Luxembourg du 13-11-23 par
Newsletter SPW Agriculture en province du Luxembourg du 13-11-23Newsletter SPW Agriculture en province du Luxembourg du 13-11-23
Newsletter SPW Agriculture en province du Luxembourg du 13-11-23BenotGeorges3
6 vues17 diapositives
Présentation de lancement SAE105 par
Présentation de lancement SAE105Présentation de lancement SAE105
Présentation de lancement SAE105JeanLucHusson
40 vues13 diapositives
Abréviations et symboles (1).pdf par
Abréviations et symboles (1).pdfAbréviations et symboles (1).pdf
Abréviations et symboles (1).pdfStagiaireLearningmat
26 vues2 diapositives

Dernier(15)

Cours Audit General 2019 (1).prof tatouti .pdf par Abdelghani19
Cours Audit  General 2019 (1).prof tatouti .pdfCours Audit  General 2019 (1).prof tatouti .pdf
Cours Audit General 2019 (1).prof tatouti .pdf
Abdelghani197 vues
Newsletter SPW Agriculture en province du Luxembourg du 13-11-23 (adapté au 2... par BenotGeorges3
Newsletter SPW Agriculture en province du Luxembourg du 13-11-23 (adapté au 2...Newsletter SPW Agriculture en province du Luxembourg du 13-11-23 (adapté au 2...
Newsletter SPW Agriculture en province du Luxembourg du 13-11-23 (adapté au 2...
BenotGeorges324 vues
Formation M2i - Augmenter son impact en communication et en management grâce... par M2i Formation
Formation M2i - Augmenter son impact en communication et en management grâce...Formation M2i - Augmenter son impact en communication et en management grâce...
Formation M2i - Augmenter son impact en communication et en management grâce...
M2i Formation50 vues
Newsletter SPW Agriculture en province du Luxembourg du 13-11-23 par BenotGeorges3
Newsletter SPW Agriculture en province du Luxembourg du 13-11-23Newsletter SPW Agriculture en province du Luxembourg du 13-11-23
Newsletter SPW Agriculture en province du Luxembourg du 13-11-23
BenotGeorges36 vues
Présentation de lancement SAE105 par JeanLucHusson
Présentation de lancement SAE105Présentation de lancement SAE105
Présentation de lancement SAE105
JeanLucHusson40 vues
MNGTCOUT PROJET 04112023.pptx par HAIDI2
MNGTCOUT PROJET 04112023.pptxMNGTCOUT PROJET 04112023.pptx
MNGTCOUT PROJET 04112023.pptx
HAIDI26 vues
Newsletter SPW Agriculture en province de LIEGE du 28-11-23 par BenotGeorges3
Newsletter SPW Agriculture en province de LIEGE du 28-11-23Newsletter SPW Agriculture en province de LIEGE du 28-11-23
Newsletter SPW Agriculture en province de LIEGE du 28-11-23
BenotGeorges326 vues
Julia Margaret Cameron par Txaruka
Julia Margaret Cameron Julia Margaret Cameron
Julia Margaret Cameron
Txaruka5 vues
Formation M2i - Cadre réglementaire des IA Génératives : premiers éléments de... par M2i Formation
Formation M2i - Cadre réglementaire des IA Génératives : premiers éléments de...Formation M2i - Cadre réglementaire des IA Génératives : premiers éléments de...
Formation M2i - Cadre réglementaire des IA Génératives : premiers éléments de...
M2i Formation8 vues
Julia Margaret Cameron par Txaruka
Julia Margaret CameronJulia Margaret Cameron
Julia Margaret Cameron
Txaruka70 vues

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(); }