Tutoriel Android pour les débutants - Hello Android

View more Tutorials:

1- Intrduction

Ce document contient des directives sur la programmation d'Android pour les débutants. Il utilise l'outil Android Studio. Assurez-vous que vous avez installé Android Studio, si vous ne l'avez pas déjà installé, vous pouvez consulter les instructions à l'adresse suivante:

2- L'exécution de l'Android Studio

Dans la première exécution, Android Studio vous demandera si vous avez le mot de passe des paramétrages de la version  Android Studio que vous pouvez être avoir installé avant ou pas. Vous pouvez sélectionner  NO.
Sélectionnez un  Theme que vous préférez:
Lors de la première exécution, Android doit télécharger certains composants. Vous devez attendre que le processus de téléchargement et d'installation soit terminé.

3- La création de votre premier projet

Tout d'abord, vous devez créer et exécuter avec succès un premier projet.
Saisissez:
  • Name: HelloAndroid
  • Package name: org.o7planning.helloandroid
Le projet a été créé.

4- L'exécution de l'application

Make sure you have installed a virtual device (An emulator phone), which is necessary to deploy your application.
If you do not see any virtual devices on the drop-down list, you need to create one, see the instructions below:
La simulation d'écran a montré le téléphone, et écrit les mots "Hello World".
Si l'erreur d'exécution (ou le périphérique simulé ne s'ouvre pas), ou si vous voyez le message ci-dessous, cela signifie que vous n'avez pas installé Intel Emulator Accelerator, vous devez l'installer.
Vous devez installer le logiciel de gestion de l'accélération le matériel de  Intel:

5- La vue d'ensemble de la structure de projet Android

Voici est l'image de votre projet sur  Android Studio:
Fichier ou répertoire Description
AndroidManifest.xml C'est un fichier manifest qui décrit les caractéristiques fondamentales de l'application et définit chacune de ses composantes.
java Cela contient les fichiers sources .java pour votre projet. Par défaut, il comprend un fichier source MainActivity.java ayant une classe d'activité (activity) qui s'exécute lorsque votre application est lancée à l'aide de l'icône de l'application.
res/drawable La version antérieure d'Android a utilisé ce dossier pour stocker des images, la version actuelle est remplacée par le dossier mipmap pour les images. Ce répertoire n'est presque plus utilisé.
res/layout Il s'agit d'un répertoire pour les fichiers qui définissent l'interface d'utilisateur de votre application.
res/menu Ce dossier comprend des fichiers XML définit des menu qui apparaîtront sur Action Bar
res/mipmap Est utilisé pour contenir des images 'mipmap'.
res/values Il s'agit d'un répertoire pour les autres fichiers XML qui contiennent une collection de ressources, telles que les définitions de chaînes (String) et de couleurs.

AndroidManifest.xml

Quel que soit le composant que vous développez comme une partie de votre application, vous devez déclarer tous ses composants dans un AndroidManifest.xml. Ce fichier fonctionne comme une interface entre le système d'exploitation Android et votre application, donc, si vous ne déclarez pas votre composant dans ce fichier, il ne sera pas considéré par le système d'exploitation. Par exemple, un fichier de manifest par défaut ressemblera à un fichier suivant
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.o7planning.helloandroid" >

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            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>

res/mipmap

Vous devez en savoir plus sur les images dans le dossier mipmap, voir l'image ci-dessous, il existe un fichier image dans le dossier mipmap.
L'un des problèmes que j'ai occasionnellement rencontré lors de l'utilisation d'applications Android est que je vois des images qui sont floues, pixelées ou étirées maladroitement. La solution à ce problème est de créer un dossier déplaçable mipmap pour chacune des densités (density) supportées par Android et de placer l'image correcte dans chaque dossier. Il existe 6 gammes de densité différentes (mesurées en points par inch) compatibles avec Android:
  1. ldpi: Des écrans à faible densité; Environ 120dpi
  2. mdpi: Des écrans à moyenne densité (sur HVGA traditionnel); Environ 160dpi
  3. hdpi: Des écrans à haute densité; Environ 240 ppp
  4. xhdpi: Des écrans extra haute densité; Environ 320dpi. Ajouté en API Niveau 8
  5. nodpi: Cela peut être utilisé pour les ressources bitmap que vous ne souhaitez pas minimiser en fonction de la densité du périphérique
  6. tvdpi: Des écrans quelque part entre mdpi et hdpi; Environ 213dpi. Ceci n'est pas considéré comme un groupe de densité "primaire". Il est principalement destiné aux télévisions et la plupart des applications ne devraient pas en avoir besoin. Les ressources mdpi et hdpi sont suffisantes pour la plupart des applications et le système les modélisera selon les besoins. Ce qualificatif a été introduit avec le niveau API 13.

6- Le Cycle de vie de l'Android Activity

Tout d'abord, qu'est-ce que Activity?
Activity est un code Java qui prend en charge un écran ou une interface d'utilisateur. En d'autres termes, le bloc de construction de l'interface d'utilisateur est Activity. La classe Activity est une classe prédéfinie dans Android et chaque application qui a UI doit l'hériter pour créer une fenêtre.
Par exemple, la classe  MainActivity est un  Activity qui étend provenant d'un  Activity disponible dans des bibliothèques  Android. La figure ci-dessous illustre le cycle de vie d'un  Activity.

Un cycle de vie de Activity décrit les processus d'un Activity depuis son lancement (Launched), jusqu'à ce que les applications soient arrêtées. Y compris les processus dont Activity s'est arrêtée temporairement, reprendre (resume), ..

Pour comprendre plus facilement, vous pouvez modifier le code de la classe MainActivity, remplacer les méthodes onStart(), onResume(), .., Ajouter le message (message) qui démontre que la méthode a été exécutée. Réexécutez l'application et voyez ce qui se passe dans le cycle de vie de  Activity.
MainActivity.java
package org.o7planning.helloandroid;

import androidx.appcompat.app.AppCompatActivity;
import android.util.Log;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    public static final String TAG ="MyMessage";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // Print Log
        Log.i(TAG,"onCreate");
    }


    @Override
    protected void onStop() {
        super.onStop();
        // Print Log
        Log.i(TAG,"onStop");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        // Print Log
        Log.i(TAG,"onDestroy");
    }

    @Override
    protected void onPause() {
        super.onPause();
        // Print Log
        Log.i(TAG,"onPause");
    }

    @Override
    protected void onResume() {
        super.onResume();
        // Print Log
        Log.i(TAG,"onResume");      }

    @Override
    protected void onStart() {
        super.onStart();
        // Print Log
        Log.i(TAG,"onStart");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        // Print Log
        Log.i(TAG,"onRestart");
    }

}
 
Réexécutez votre application, et vous voyez les message enregistrés sur la fenêtre du registre.
Vous pouvez configurer le filtre sur logcat uniquement pour afficher votre message.
Saisissez:
  • Filter Name: My Filter
  • Log Tag (regex): MyMessage
Maintenant, la fenêtre  logcat n'affiche que votre  message.
L'écran de votre téléphone:

7- Comment fonctionne l'application Android?

Vous avez exécuté avec succès la première application Android, et maintenant nous allons regarder comment Android a été exécuté depuis que l'application est appelée.
Ce que vous voyez sur la fenêtre Projet ne sont pas tous des composants impliqués, créant votre application. Certains composants sont automatiquement générés par le programme de compilation. Et il ne s'affiche pas dans la fenêtre Projet. Par exemple, en fonction de la structure des fichiers sources de votre projet, le compilateur crée un fichier source R.java qui définit des constantes pour les ressources du projet.
Pour afficher le fichier R.java sur Android Studio, ouvrez la classe MainActivity, cliquez avec le bouton droit sur R.layout.main_activity et sélectionnez Go To/Implementation(s)
Note: Android Studio> = 2.0 no longer allows you to view R.java file, because this is an automatically generated file and does not allow modifications.
Les constantes définies dans la classe R.java sont créées correspondant aux ressources du Project:
Donc, quelque part dans le projet, vous pouvez utiliser les constantes pour référencer les ressources dans le projet. Par exemple, R.layout.activity_main est une constante qui renvoie le fichier activity_main.xml dans le dossier res/layout.

Le principe de fonctionnement:

8- Qu'est-ce qui rend l'interface d'utilisateur?

Peut-être que vous pensez maintenant que activity_main.xml est le fichier qui crée une interface d'application. C'est vrai 50%. Principalement, activity_main.xml est un fichier qui définit les entités impliquées dans l'interface de l'application, et comment elles sont organisées sur l'écran. Activity lira ce fichier et établira l'interface de l'application. Ainsi, l'interface des applications essentiellement créée par Activity
Voici est le code Activity qui lit le fichier  main_activity.xml pour créer l'interface.
MainActivity.java
package org.o7planning.helloandroid;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends AppCompatActivity {

   public static final String TAG ="MyMessage";

   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);

       // Read activity_main.xml to draw user interface.
       setContentView(R.layout.activity_main);
   }
   
   // .....
}  
Activity peut ne pas avoir besoin de lire le fichier xml pour créer l'interface de l'application:
MainActivity.java
package org.o7planning.helloandroid;

import androidx.appcompat.app.AppCompatActivity;

import android.graphics.Color;
import android.os.Bundle;
import android.widget.Button;
import android.widget.RelativeLayout;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Layout
        RelativeLayout layout = new RelativeLayout(this);
        layout.setBackgroundColor(Color.GREEN);

        // Tạo Button
        Button button = new Button(this);
        button.setText("My Button");

        // Add button to Layout
        layout.addView(button);

        // Content View
        setContentView(layout);
    }


}
Et réexécutez l'application:
La version actuelle de Android Studio ne vous soutient pas dans la conception d'une interface intuitive sur Java. Cependant, il prend en charge efficacement dans la conception de l'interface intuitive sur les fichiers xml, Android Studio générera le code XML pour vous. En fait, la conception d'interface sur XML rendra vos applications plus faciles.
Retournez à activity_main.xml, vous pouvez facilement concevoir l'interface de l'application:
The XML code is automatically generated:

9- Le prochain tutoriel d'Android (suivant)

View more Tutorials: