Android: Introduction, installation

Dans ce cours nous allons apprendre à créer des applications Android Natives en utilisant Java:

  1. Android est un système d'exploitaion pour les apareils mobiles Gratuit (freeware) (on paye rien pour l'utiliser) et OpenSource : le code est ouvert
  2. Os android: est basé sur linux kernel(le coeurs de lunix) puis ils ont ajouté
          . Un SDK:les librairies (classes java)
          .Une machine virtuelle
          .Quelque applications de base: contact,sms , appel , ....

Les outils qu'on a besoins:

  1. Android Studio : un IDE pour créer des application android
    Telecharger: https://developer.android.com/studio
  2. Android SDK : une biliothèque qui contient des classes,des méthodes nécéssaire pour créer une application
    c'est le coeur du système d'exploitation Android
    Telecharger: https://developer.android.com/studio

Les types d'application qu'on peut créer avec android:

  1. a.téléphone
  2. b.tablette
  3. c.wear(watch)
  4. d.auto(voiture)
  5. e.TV(smart TV)

Le choix du SDK:

Il faut choisir la version la plus installée exemples:
-> Kitkat(95%)
->IceCreamSandwich(100%)

Pour tester l'application on a deux méthodes:

A.Utiliser un emulateur

un emulateur :c'est un logiciel qui permet de clonner les fonctionnalités du système android; donc un emulateur joue le role du téléphone
On peut créer des emulator en utilsant Android studio :https://developer.android.com/studio/run/emulator
On peut installer un emulateur externe de android
  1. *bluestark
  2. *MEMU Paly

B.Tester directement sur votre téléphone

Il faut activer le mode developper sur le téléphone pour tester les application; il faut suivre les étaptes suivantes:
  1. 1.cliquer sur paramètres
  2. 2.apropos du téléphone
  3. 3.cliquer 3 fois sur la version jusque que le mode developpeur s'active

Pour créer une application android on suit les étapes suivantes:

  1. 1.créer un projet en utilisant Android Studio
  2. 2.choisir l'activity par defaut
    -empty
    -tab
    ...
  3. 3.choisir le SDK il faut faire attention au choix de version ,il faut choisir un version avec un pourcentage de devices >90
  4. 4.créer le design de l'application :la layout
  5. 5.Ajouter les codes java dans l'activity
  6. 6.Run l'application dans un Emulator

La structure d'un projet Android

MonProjetAndroid
  ├── app
  │    ├── manifest
  │    │     ├── AndroidManifest.xml
  │    ├── java
  │    │     ├─ monPackage
  │    │     │   ├─ MonActivity1.java
  │    │     │   ├─ Personne.java
  │    │     │   ├─ AutreClasse.java
  │    │     │   ├─ .....
  │    ├── res
  │    │     ├─ drawable
  │    │     │   ├─ img1.jpg
  │    │     │   ├─ img2.png
  │    │     │   ├─ ...
  │    ├── layouts
  │    │     ├─ main_activity.xml
  │    │     ├─ layout2.xml
  │    │     ├─ inscription.xml
  │    │     ├─ connexion.xml
  │    ├── mipmap
  │    │     ├─ ic_launcher
  │    │     │     ├─ ic_launcher.png
  │    │     │     ├─ ...
  │    │     ├─ ic_launcher_round
  │    │     │     ├─ ic_launcher.png
  │    │     │     ├─ ...
  │    ├── values
  │    │     ├─ colors.xml
  │    │     ├─ string.xml
  │    │     ├─ styles.xml



Explications

folder manifest
├── manifest
│ ├── AndroidManifest.xml
AndroidManifest.xml: contient des informations et des paramètres de l'applicaiton
  1. -nom de l'application
  2. -icon de lancement de l'application
  3. -la classe (activity) principale qui contient la classe main
  4. -le thème de l'application
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.TDM202_APP1">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

Explications
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
<!-- Icon de lancement -->
<!-- @mipmap:c'est un dossier qui contient les icons
se trouve dans le dossier res -->
android:label="@string/app_name"
<!-- le nom de l'application
@string:c'est un fichier qui contient toutes
varaibles globale de mon projet
comme:
nom d'application
des valeurs qui sont souvent utilisé
-->
android:roundIcon="@mipmap/ic_launcher_round"
<!--icon de lancement rondu -->
android:supportsRtl="true"
<!--Right to left :pour arabe... -->
android:theme="@style/Theme.ApplicationCours"> -- le theme de l'application
<!--L'activité principale
un projet android contient plusieur Activity
parmi ces activity on doit fixer une activity qui sera lancer lorsque
on lance l'application
-->
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<!--cette activité sera exécuter lorsque on lance (LAUNCHER) l'application -->
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
folder java
├── java
├─ monPackage
│ ├─ MonActivity1.java
│ ├─ Personne.java
│ ├─ AutreClasse.java
│ ├─ .....
java: Contient les classes java qui permettant de créer la logique de l'application
Les classes Java est divisées en deux types:
  1. 1.Les Activity: est une classe qui hérite de la classe Activity ou AppCompactActivyt Permettant d'afficher une fenêtre sur l'écran (page)
    Activity: est une class android peremet de créer des fentres ; n'importe quelle classe qui veut créer une fenetre elle doit hériter de Activity ou AppCompactActiviy: exemple
    public class fentre1 extends Activity {
    //fentre1: est une activity qui peut s'afficher sur l'écran
    }

  2. public listeAmis extends Activity{}
    //listeAmis: est une activity qui peut s'afficher sur l'écran
  3. 2.Les classes métiers et services...
    public class client
    {
    private String nom;
    private String prenom;
    private int age;
    //.....
    }

    public produit {
    //..;
    }

    public gestion {
    //..;
    }
  4. Remarque:une class de type Activity est liée avec la partie visuelle layout
    layout :c'est le design de l'application c'est l'interface graphique ,button,list,image...
folder res
 ├── res
    ├─ drawable
        │   ├─ img1.jpg
        │   ├─ img2.png
        │   │ ...
Contient les resources de l'application les images,audio , video
folder layout
├── layout
│     ├─ main_activity.xml
│     ├─ layout2.xml
│     ├─ inscription.xml
│     ├─ connexion.xml

Les layouts (design) de l'application c'est l'interface graphique de l'application
folder values
├── values
│     ├─ colors.xml
│     ├─ string.xml
│     ├─ styles.xml
  1. -Colors.xml :
    déclaration des couleurs
  2. -String.xml:
    Déclaration des variables globales
  3. -styles.xml:
    -déclaration de styles