Informatique mobile
NADIA BEL HADJ AISSA
2
Environnement de développement
▶ Java Development Kit (JDK)
▶ Eclipse IDE
▶ Android Development Tools (ADT) plug-in
▶ SDK starter package
▶ Platforms (1.0, 2.0, 3.0, 4.1, …)
▶ Tools (debug, …)
Android SDK
Eclipse Plug-in
ADT
JDK
Reference: http://developer.android.com/sdk/installing.html
Processus de développement
3
Vue sur l’application…
▶ Organisation des dossiers :
▶ src : sources ▶ gen : code généré
▶ res : ressources
▶ drawable : images ▶ layout : layout
▶ values : constantes
▶ Manifest
4
AndroidManifest.xml
Chaque projet contient à sa racine un fichier AndroidManifest.xml
5
Déclare les Déclarer Nommer d’identificateur l’application le le l’application. niveau paquetage composants applicatifs services, receivers, providers) minimum
unique qui broadcast
sert
content de
(activities, Java de
de
de compatibilité l’application du SDK pour
et leurs que l’application filtres fonctionne.
si nécessaire (à quels intents ils réagissent)
6
Les ressources R.java
▶ Les ressources de l’applications sont utilisées dans le code au travers de la classe statique R.
▶ ADT re-génère automatiquement la classe statique R à chaque changement dans le projet.
▶ Toutes les ressources sont accessibles au travers de R, dés qu’elles sont déclarées dans le fichier
XML ou que le fichier associé est déposé dans le répertoire adéquat.
7
Values
▶ Les chaines constantes de l’application sont situées dans res/values/strings.xml.
▶ Plusieurs fichies xml peuvent être placés dans res/values. Cela permet de définit des chaines,
des couleurs, des tableaux. L’assistant de création permet de créer de nouveaux fichiers de ressources
▶ D’autres ressources sont spécifiables dans res:
▶ les menus
▶ les images (R.drawable)
▶ des dimensions (R.dimen)
▶ des couleurs (R.color)
Activité
▶ L’activité est le premier composant essentiel permettant de gérer le cycle de vie d’une
application et l’interactivité avec l’utilisateur moyennant une interface graphique
▶ Une activité ≈ un écran graphique
▶ Une application est formée de n activités
▶ Une seule activité est lancée à la fois
▶ Exemple : une application de téléphonie
1) Numéroteur
2) Annuaire des contacts
3) Fiche d’un contact
4) Ajout d’un contact
8
Activité : point de vue Java
▶ Étend la classe android.app.Activity
▶ Lors du démarrage d’une activité, 3 méthodes sont appelées automatiquement :
▶ « onCreate », « onStart » et « onResume ».
▶ – Lorsque l’on quitte l’activité, 3 méthodes sont appelées automatiquement :
▶ « onPause », « onStop » et « onDestroy ».
▶ Ces méthodes sont définies dans la classe « Activity » et devront être redéfinies si c’est
nécessaire.
9
Activité : Cycle de vie
▶ – Active (running) : Quand l’activité est au
premier plan et recoit les actions utilisateur.
▶ – Paused : Quand elle est toujours visible mais
n’a pas le focus (autre activité transparente par dessus ou activité ne prenant pas tout l’écran)
▶ – Stopped : Quand elle n’est plus visible
10
11
Lancer une activité
▶ toute activité doit être préalablement déclarée dans le manifeste
▶ Une activité est désignée comme activité initiale de l’application (MainActivity) dans le
manifeste
▶ Lancer une activité
▶ Méthode startActivity(…)
▶ Lancer une activité en vue d’obtenir un résultat en retour
▶ Méthode startActivityForResult(…)
Interfaces graphiques
▶ Une API Java riche
▶ Des layouts et des widgets (appelés « Vues »)
▶ Programmation déclarative à la XML
▶ Sépare la vue du code métier
▶ Fonctionnalité de personnalisation
▶ Hériter et redéfinir un widget de base
▶ Combiner des widgets existants
▶ Dessin 100% personnalisé – View::onDraw(Canvas canvas)
▶ Rendu 2D/3D (non abordé dans ce cours)
▶ OpenGL, Renderscript
12
13
Vues et Layouts
▶ Les éléments graphiques héritent de la classe View. On peut regrouper des éléments
graphiques dans une ViewGroup. Des ViewGroup particuliers sont prédéfinis: ce sont des gabarits (layout) qui proposent une prédispositions des objets graphiques:
▶ LinearLayout: dispose les éléments de gauche à droite ou du haut vers le bas
▶ RelativeLayout: les éléments enfants sont placés les uns par rapport aux autres
▶ TableLayout: disposition matricielle
▶ FrameLayout: disposition en haut à gauche en empilant les éléments
▶ Les déclarations se font principalement en XML, ce qui évite de passer par les instanciations
Java.
14
Attributs des Layouts
▶ Les attributs des gabarits permettent de spécifier des attributs supplémentaires. Les plus
importants sont:
▶ android:layout_width et android:layout_height:
▶ = »fill_parent »: l’élément remplit tout l’élément parent
▶ = »wrap_content »: prend la place minimum nécessaire à l’affichage
▶ android:orientation: définit l’orientation d’empilement
▶ android:gravity: définit l’alignement des éléments
<LinearLayout xmlns:android=« http://schemas.android.com/a pk/res/android » android:orientation=« vertical » android:layout_width=« fill_parent » android:layout_height=« fill_parent » android:gravity=« center » android:id=« @+id/accueilid » > </LinearLayout>
15
L’interface comme ressource
▶ Une interface graphique définie en XML sera aussi générée comme une ressource dans la classe statique R. Le nom du fichier xml, par exemple accueil.xml permet de retrouver le layout dans le code java au travers de R.layout.accueil. ▶ Ainsi, pour associer la première vue graphique à l’activité principale de l’application, il faut faire:
▶ Le layout reste modifiable au travers du code, comme tous les autres objets graphiques. Pour cela, il est important de spécifier un id dans la définition XML du gabarit (android:id= »@+id/accueilid »). Cette remarque est aussi valable pour tous les autres objets graphiques. Ainsi, on peut accéder à cet élément par son id et agir dessus au travers du code Java:
public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.acceuil); }
LinearLayout l=(LinearLayout)findViewById(R.id.accueilid); l.setBackgroundColor(Color.BLACK);
16
Les éléments graphiques
▶ Un gabarit peut contenir des éléments graphiques, ou d’autres gabarits. On retrouve le même
principe que les tableaux imbriqués de l’HTML.
▶ Les interfaces peuvent aussi inclure d’autres interfaces, permettant de factoriser des morceaux
d’interface. On utilise dans ce cas le mot clef include:
télécharger gratuitement cours de l’ Informatique mobile (android et ios)