Documente Academic
Documente Profesional
Documente Cultură
Plan
2
1.Gnralits
2.Les Activits
3.Les Resources
4.Les IHMs
5.Les Intents
6.Les SQLite
Positionnement dAndroid
Gnralits
Android/Java
Le SDK Android est dvelopp en Java permet
de dvelopper des applications avec un haut
niveau dabstraction
Android a sa propre machine virtuelle (DVM)
Ne supporte pas toutes les fonctionnalits de la
JRE
Une application Android ne peut pas sexcuter
sur une machine virtuelle Java
Une application Java (native) ne peut pas
sexcuter sous Android
Android dispose de sa propre machine virtuelle
Android C/C++
Android
Utilis
Outils SDK
Architecture Android
Architecture Android
Librairies Java crites en C/C++
Surface Manager: Display
Media Framework: audio/video
Webkit : web browser
OpenGL ES, SGL: Graphiques 2D, 3D
SQLite: SGBD
SSL: secure sockets layer
Architecture Android
Core Libraries : des classes Java standard du sdk:
android.* , junit.*, Org.json, org.xml,
Mais pas Toutes les classes du sdk !
Dalvik VM : Machine virtuelle optimis et adapt
aux contraintes des ressources systme, gnre
lex. partir dun bytecode specifique
10
Framework Java
Activity Manger: Cycle de vie des activits. Assure
le multi tche.
Content Providers: Partage les donnes entre
processus.
Telephony Manger: fournit laccs aux services
GSM, 3G, GPRS.
Location Manger: GPS.
Architecture Android
11
12
13
16
17
19
20
Ressources
21
Ressources et valeurs
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Mon application</string>
<string name="server_url">http://mon.serveur.com</
string>
<integer-array name=codes_postaux>
<item>64100</item>
<item>33000</item>
</integer-array>
<string-array name= planetes>
<item>Mercure</item>
<item>Venus</item>
</string-array>
<dimen name taille>55px</dimen>
</resources>
22
Class R
Lensemble ressources sont modliss par la classe R.java et les
sous dossiers par des classes internes R
Chaque ressource est un attribut de la classe reprsentant le sous
dossier dans lequel il est dclar
23
24
} Accder
aux valeurs :
} Accder
aux images :
Drawable monImage =
getResources().getDrawable(R.drawable.nom_image)
25
"@type/identificateur"
Exemple :
@string/string_name
@drawable/icon
@color/ma_couleur
26
AndroidManifest.xml
Chaque application doit avoir un fichier
AndroidManifest.xml dans son rpertoire racine.
Le fichier manifeste prsente des informations
essentielles propos votre application pour le
systme Android
Le manifeste effectue les oprations suivantes :
29
AndroidManifest.xml
Il nomme le paquet Java pour l'application(son
identifiant unique)
Il dcrit les composants de l'application - les
activits, les services, rcepteurs de
radiodiffusion, et les fournisseurs de contenu
qui constituent l'application.
Il nomme les classes qui implmentent
chacune des composantes et publie leurs
capacits (intentions).
30
AndroidManifest.xml
Il dclare les autorisations dont l'application
doit avoir pour accder des parties protges
de l'API et d'interagir avec d'autres applications.
Il dclare aussi les autorisations qui sont
ncessaires pour d'autres avoir pour interagir
avec les composants de l'application.
Il dclare que le niveau minimum de l'API
Android, la liste des bibliothques que
l'application ncessite
31
AndroidManifest.xml
<manifest>
<uses-permission />
<permission />
<permission-tree />
<permission-group />
<instrumentation />
<uses-sdk />
<uses-configuration />
<uses-feature />
<supports-screens />
<compatible-screens />
<supports-gl-texture />
<application>
<uses-library />
<activity>
<intent-filter>
<action />
<category />
<data />
</intent-filter>
<meta-data />
</activity>
32
Activit
Une activit est un composant d'application qui
fournit un cran avec laquelle les utilisateurs
peuvent interagir afin de faire quelque chose,
comme composer le tlphone, prendre une
photo, envoyer un email, ou afficher une carte.
Chaque activit est donne une fentre dans
laquelle dessiner son interface utilisateur.
33
Activit
Une application est gnralement constitu de
plusieurs activits qui sont faiblement lis entre
eux.
Chaque activit peut alors dmarrer une autre
activit afin d'effectuer diffrentes actions.
Chaque fois que commence une nouvelle
activit, l'activit prcdente est arrt, mais le
systme conserve l'activit dans une pile.
34
Activit
Classe hritant de la classe Activity dAndroid
Doit tre dclare dans le Manifest pour tre
visible par le systme
Ne peut tre instancie directement, cette
tache se fait par le systme
Activity a = new Activity();
Linstanciation dune activit se fait par les
intentions
35
Cycle de vie
36
37
38
39
40
41
42
43
Les IHM
Les interfaces sont dfinies gnralement
dans des fichiers XML (cela nous vite
davoir crer des instances
explicitement)
ADT gnre automatiquement une
ressource correspondant linterface dans
le fichier R.java (
accueil.xml ! R.layout.accueil )
Les IHM
La dune interface avec lutilisateur :
Les interfaces sont composes dobjets tendant
View et ViewGroup ;
Une vue se dessine et permet les interactions avec
lutilisateur ;
Un groupe de vues contient dautres vues ;
View/ViewGroup
46
View
View :Cette classe reprsente le bloc de construction de base pour les composants de
l'interface utilisateur. A View occupe une zone rectangulaire sur l'cran et est
responsable de l'laboration et de la gestion des vnements. Voir est la classe de base
pour les widgets, qui sont utiliss pour crer des composants d'interface interactifs
(boutons, champs de texte, etc.). La sous-classe ViewGroup est la classe de base pour
les mises en page, qui sont des conteneurs invisibles qui dtiennent d'autres vues (ou
une autre vue Groupes) et dfinir leurs proprits de mise en page.
47
ViewGroup
Un ViewGroup est une vue spcial qui peut contenir d'autres vues (appels enfants.)
Le groupe de vue est la classe de base pour les modles et vues conteneurs. Cette
classe dfinit galement la classe ViewGroup.LayoutParams qui sert de classe de base
pour les paramtres de mises en page.
48
Exemple
Pour dclarer votre mise en page, vous pouvez instancier Afficher les objets
dans le code et de commencer construire un arbre, mais le moyen le plus
simple et le plus efficace pour dfinir votre mise en page est avec un fichier
XML.
Le nom d'un lment XML pour une vue est celui de la classe qu'il reprsente.
<TextView> lment cre un widget TextView
<LinearLayout> cre un lment de viewgroup LinearLayout.
Une disposition verticale simple avec une vue de texte et un bouton ressemble
ceci:
49
Cration
50
Cration
51
Instanciation
52
Contenu
53
Evnements
54
Validations
55
android:layout_height, android:layout_width :
fill_parent / wrap_content
fill_parent : Remplit toute la place du parent
wrap_content : remplit la place que ncessitele contenu
android:background: "@color/blue/#000FFFF"
android:visibility : visible / invisible/gone
android:padding="10.5dp"
56
EditText (View)
57
CheckBox (View)
58
ViewGroup
59
ViewGroup
60
Adapter
61
Adapter
62
RadioButton (View) et
RadioGroup (ViewGroup)
63
RadioButton et RadioGroup
64
Spinner (ViewGroup)
Dclaration dun spinner :
65
ListView (ViewGroup)
Au sein d'un gabarit, on peut implanter une
liste que l'on pourra drouler si le nombre
d'lments est
important. Si l'on souhaite faire une liste
plein cran, il suffit juste de poser un layout
linaire et d'y
implanter une ListView. Le XML du gabarit
est donc:
66
ListView (ViewGroup)
67
ListView (ViewGroup)
68
Menu
Un menu est un endroit privilgi pour placer certaines fonctions tout en
conomisant l'espace dans la Fentre.
Il existe deux sortes de menu dans Android :
-Le menu d'options : celui qu'on peut ouvrir avec le bouton Menu sur le
tlphone. Si le tlphone est dpourvu de cette touche, Android fournit un
bouton dans son interface graphique pour y accder.
-Les menus contextuels : Similaires aux menus qui s'ouvrent l'aide d'un clic
droit sous Windows et Linux, dans Android ils se droulent qu'on effectue un
long clic sur un lment de l'interface graphique.
69
Menu
Pour qu'une activit puisse avoir un menu, elle doit redfinir sa mthode
onOptionsItemSelected(MenuItem item) qui d'execute lors du premier clique
sur le menu :
70
Menu
71
Menu
Pour qu'une activit puisse avoir un menu, elle doit redfinir sa mthode
onOptionsItemSelected(MenuItem item) qui d'execute lors du premier clique
sur le menu :
72
Conteneurs (ViewGroup)
Ce sont des vues permettant de dfinir une
prdisposition pour dautres vues quils
contiennent:
- FrameLayout
- AbsoluteLayout
- LinearLayout
- TableLayout
- RelativeLayout
73
Conteneurs (ViewGroup)
-
- RelativeLayout:
- TableLayout:
disposition matricielle
(ref:table HTML)
74
Rutilisation du Layout
Rutilisation dinterfaces : Une interface peut
inclure une autre interface
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
>
<include
android:id="@+id/include01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
layout="@layout/acceuil"
>
</include>
</LinearLayout>
75
LinearLayout
Dfinit le positionnement linaire (horizontall ou vertical) des vues filles
<?xml
<LinearLayout
version="1.0"
encoding="utf-8"?>
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<TextView
android:id="@+id/textView1"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_nom"
android:textAppearance="?android:attr/textAppearanceLarge"
/>
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
<requestFocus
</EditText>
</LinearLayout>
>
/>
76
RelativeLayout
Positionner les lments de linterface les uns par rapport aux autres
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation= "horizontal"
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_nom"
android:textAppearance="?android:attr/textAppearanceLarge"
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10
android:layout_toRightOf="@+id/textView1"
android:inputType="textPersonName"
<requestFocus
</EditText>
</RelativeLayout>
>
/>
77
/>
>
TableLayout
Tableau
TableRow
Proprits
de TableRow.LayoutParams
Communications entre
composants
Android offre un mcanisme puissant qui permet de faire
excuter certaines actions et de faire circuler des messages
entre applications ou l 'intrieur d'une mme application
Exemple : Dans votre application de gestion de personnels,
vous avez un bouton a cot les coordonnes qui permet
dappeler lemploy, vous aurez pas dvelopper une interface
pour passer lappel ! Vous allez demandez au systme de le
faire laide des Intent
79
Intent
Les intents facilitent la communication entre
diffrents composants. Trois cas de figure :
Pour dmarrer une activit (avec/sans attente de
rsultat
Pour dmarrer un service
Pour envoyer un BroadCast
80
Types d'Intents
Intent Explicite : On spcifie le compsant
destinataire qui va traiter l'intent (fullyqualified class name)
Intent Implicite : On ne spcifie pas le
composant, mais on offre suffisement
d'informations permettant au systeme de
trouver le bon composant capable de traiter
l'intent.
81
Intent Explicite
82
Intent Implicite
1 : Activit A cre un intent avec juste une description del'action dsire et le passe
la mthode startActivity().
2 : Le systeme cherche dans les manifest.xml des applications existantes sur le
device,si le contenu de l'intent correspond un intent filter d'un composant, le
systeme le choisit.(B par exemple)
3 : Le systeme dmarre l'activit B en appelant sa mthode onCreate() et lui passe
l'intent ru de l'activit A
83
Intent
Techniquement, un intent est un objet de la forme :
Ce champ permet de dfinir le destinataire de
lIntent, celui qui devra le grer. Si ce champ est
donn, l'intent est alors explicite
84
Intent
Techniquement, un intent est un objet de la forme :
85
Intent
Techniquement, un intent est un objet de la forme :
86
lapplication
Intent
Techniquement, un intent est un objet de la forme :
Information additionelle propos le type de
composant capable de traiter l'intent
87
Intent
Techniquement, un intent est un objet de la forme :
Dest. :
88
Intent
Techniquement, un intent est un objet de la forme :
89
90
91
92
Exemples
93
94
Intent
95
SQLite
96
SQLite
97
SQLite
98
SQLite
99
SQLite
100
SQLite
101
SQLite
102
SQLite
103
SQLite
104
SQLite
105
SQLite
106
SQLite
107
SQLite
108
SQLite
109
SQLite
110
SQLite
111