lundi 28 mai 2012

[Android]Ma première application sous Android


Création du projet « Hello World »

Dans éclipse, cliquez sur « File -> New -> Android Project ». La fenêtre ci-dessous s’affichera :
Remplissez les champs :
  • Project name : Le nom du projet. Pour notre exemple on choisira Hello World.
  • Build Target : Cochez la SDK que vous souhaitez. On prendra Android 2.3.
  • Properties :
    • Application name : Le nom de l’application. On choisira Hello World.
    • Package name : Le nom du package principal de l’application. Il faut que ce dernier comporte au moins deux identifiants séparés par des points. On prendra com.tuto.android.
    • Create Activity : Si vous laissez coché, vous devez spécifier un nom. pour l’activité de base de votre application. nous choisirons HelloWorldActivity.
    • Min SDK Version : Vous pouvez spécifier quelle version minimum du SDK est nécessaire pour le fonctionnement de votre application. Ce champs est facultatif.
Puis cliquez sur « Finish », le projet « Hello World » va apparaître dans l’arborescence d’eclipse.

Explication de l’arborescence du projet

Voici le résultat de la création de votre projet et l’arborescence de ce dernier
  • src : Ce dossier contient les sources de votre application (code JAVA) et les packages.
  • com.tuto.android : un package de votre application. Bien sûr vous pouvez avoir plusieurs packages dans votre application.
  • HelloWorldActivity.java : Notre principale activité. (Je vous conseille d’avoir plusieurs activités pour les différentes parties de votre code).
  • gen : Dossier qui contiendra le fichier R.java (ce fichier est généré automatiquement à partir de vos vues et fichiers de ressource).
  • R.java : Ce fichier est automatiquement généré par le SDK Android à chaque pré-compilation.
  • assets : Contient des données qui pourront être utilisées dans votre application (images, vidéos, licence…etc).
  • res : C’est le dossier qui contiendra les ressources de votre application (images, vidéos, styles).
  • drawable-hpdi Contient toutes images, bitmaps dont vous avez besoin pour votre application en haute résolution.
  • drawable-ldpi Contient toutes images, bitmaps dont vous avez besoin pour votre application en basse résolution.
  • drawable-mdpi Contient toutes images, bitmaps dont vous avez besoin pour votre application en moyenne résolution.
  • Icon.png L’icône de votre application, cet icône sera affichée sur le bureau.
  • layout : Le SDK Android offre une technique de création d’interfaces graphiques à l’aide de fichiers XML. C’est dans ce dossier que vous inclurez l’ensemble des fichiers décrivant vos interfaces. Vous pouvez créer d’autres dossiers pour les menus par exemple.
  • Main.xml Le fichier principal de votre interface.
  • values Ce dossier contient un ensemble de fichiers décrivant les valeurs (pseudo variables) utilisées par votre application. On peut, par exemple, y mettre des chaines de caractères (strings.xml), des tableaux (arrays.xml), des entiers, des couleurs, etc….
  • Strings.xml Fichier qui contient vos déclarations de chaines de caractères.
  • AndroidManifest.xml Définit le comportement de votre application au système Android. Ce fichier définit par exemple (Le nom, l’icône, la version min du SDK, les activités, les services, etc…).

« Hello, World! »

Le projet exemple créé de base par eclipse représente un « Hello World! ». Vous pouvez le lancer en tant qu’une application Android (Pour cela, il vous suffit de cliquer droit sur le projet, puis sélectionner l’option « Run As -> Android Application ») et la l’émulateur devrait se lancer.. L’émulateur prendra un peu de temps à ce lancer la première fois (ne le fermez pas entre vos différentes modifications).
Voilà le deuxième écran qui devrait s’afficher si tout se passe bien (Le premier est pareil mais avec juste écrit « Android »)
L’application s’ouvrira automatiquement et vous obtiendrez l’écran suivant :

Notre Hello Word est bien fonctionnel mais reste encore à le comprendre. Allons voir le code pour comprendre ce qui se passe.
  • AndroidManifest.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="utf-8"?>
<manifest
      xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.tuto.android"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon"
                     android:label="@string/app_name">
        <activity android:name=".HelloWorldActivity"
                  android:label="@string/app_name">
            <intent-filter>
              <action android:name="android.intent.action.MAIN" />
              <category
              android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>
  • La balise « manifest » à la ligne deux contient plusieurs arguments, le plus important est  »package », qui donne le nom du package dans lequel se trouve votre activité principale.
  • La balise « application » sert à la déclaration de différentes propriétés de votre application :
    • android:icon : L’emplacement où se trouve l’icône de votre application.
    • android:label : Le nom de votre application (il se trouve dans strings.xml).
  • La balise « activity » permet de déclarer une activité, à chaque nouvelle activité il faut remettre cette balise.
    • android:name : le nom de la classe java qui représente l’activité. Le nom doit commencer par un . et on ne met pas le .java à la fin.
    • android:label : le label de l’activité en question
    • intent-filter : c’est pour spécifier une action.
  • strings.xml
  • 1
    2
    3
    4
    5
    6
    7
    <xml version="1.0" encoding="utf-8">
    <resources>
    <string name="hello">
    Hello World, HelloWorldActivity!
    </string>
    <string name="app_name">Hello World</string>
    </resources>
  • dans les balises resources, on met une balise string à chaque fois que l’on a besoin de déclarer une chaine de caractères.
  • on déclare deux chaines :
    • La chaine hello qui contiendra « Hello World, HelloAndroActivity! » qui est le message qui sera affiché dans l’application
    • La chaine app_name qui contient « Hello Andro » qui représente le nom de l’application

  • main.xml
    • On dispose de deux modes de visualisation.
      • Onglet Layout : Mode visualisation et édition d’interface.
      • Onglet main.xml : mode code source
    • On commence par une balise qui définit le layout : ici LinearLayout.
    • Voici un lien pour la liste des différents layout : http://developer.android.com/reference/android/view/ViewGroup.html.
    • On déclare une composante TextView pour afficher du texte et on lui dit qu’elle doit afficher le contenu de @string/hello, donc de la variable hello qui est déclarée dansstrings.xml c’est à dire « Hello World, HelloWorldActivity! ».

  • HelloAndroActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
package com.mti.android;
import android.app.Activity;
import android.os.Bundle;
public class HelloAndroActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}
  • Notre main activité. Elle doit hériter de la classe Activity ou d’une sous classe de cette dernière.
  • http://developer.android.com/reference/android/app/Activity.html.
  • La méthode « OnCreate » est équivalente au main, elle est appelée à la création de votre vue.
  • On appelle simplement le OnCreate de la classe mère puis on initialise la vue. Puis, on met dedans R.layout.main, c’est-à-dire la vue déclarée dans le fichier main.xml.
  • A chaque fois que vous voyez « R » , c’est à dire que l’on utilise du code qui a été généré par les différents fichiers xml de ressource.
  • « R.layout » : On va chercher la vue déclarée dans le dossier layout et qui s’appellemain donc notre main.xml

  • R.java

  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    /* AUTO-GENERATED FILE.  DO NOT MODIFY.
     *
     * This class was automatically generated by the
     * aapt tool from the resource data it found.  It
     * should not be modified by hand.
     */
    package com.mti.android;
    public final class R {
        public static final class attr {
        }
        public static final class drawable {
            public static final int icon=0x7f020000;
        }
        public static final class layout {
            public static final int main=0x7f030000;
        }
        public static final class string {
            public static final int app_name=0x7f040001;
            public static final int hello=0x7f040000;
        }
    }
    • Vous ne devez pas toucher à ce fichier, il est généré automatiquement à partir de vos fichiers qui se trouvent dans le dossier des ressources (res).
    • Vous remarquez que toutes les variables déclarées dans strings.xml sont présentes, que l’interface déclarée dans main.xml aussi (Ce qui explique l’utilisation de la ligne R.layout.main dans le HelloWorldActivity.java) ainsi que l’icône de l’application.

    Share:

    0 commentaires:

    Enregistrer un commentaire

    Contributeurs

    Membres

    free counters