You are on page 1of 33

Développement

d’applications Mobiles
(sous Android)

3 Année LMD Informatique A.Hammache


(2022-2023) arezki.hammache@ummto.dz

A.Hammache 1
Plan du Cours
Introduction à l’univers d’Android
Outils de développement Android
Les Activités
Les Interfaces graphiques

Les intents

La gestion de données
Concepts avancés
Accès et utilisation du matériels
Sécurité et déploiement d’application
A.Hammache 2
Chapitre I :
Introduction à l’univers
d’Android

A.Hammache 3
Plan du Chapitre

Définition d’Android

Historique

Concurrents d’Android

Architecture d’Android

Composants d’une application Android

A.Hammache 4
Définition d’Android

1. Android est une Plate-forme


ouverte pour appareils mobiles.
 Système d’exploitation
 Middleware
 Applications
 SDK
2. Appareils mobiles : …..

SMARTPHONES TABLETTES EREADERS ANDROID TV GOOGLE GLASSES

5
Historique
2005 Google rachète l’entreprise (Android), créée en 2003.

Création de Open Hand Alliance (OHA) : 35


2007 Entreprises (Google, Motorola, Samsung, Vodafone, T-
Mobile, etc), a pour but de développer un système
d’exploitation open source pour mobile
2008 Lancement de la première version de Android (1.0)

Android de vient le premier système mobile au monde

2021 Version (12) de Android.


A.Hammache 6
Statistiques d’utilisation des versions

7
Concurrents d’Android

A.Hammache 8
Applications Android sur Play Store

CATEGORIES des APP ANDROID PRIX des APP ANDROID

http://www.appbrain.com/stats/android-market-app-categories http://www.onlinemarketing-
trends.com/2011/07/android-marketplace-top-5-
statistics.html
A.Hammache 9
Architecture d’Android

A.Hammache 10
Architecture détaillée

A.Hammache 11
La chaîne de compilation sous Android

Javac dx
Source Java Bytecode JVM Binaire Dalvik VM
« .java » « .class » « .dex » Dalvik
(ART)

Core Libraries

A.Hammache 12
Exemple

https://www.slideshare.net/sanjivmalik/cfakepathandroid-sanjiv
A.Hammache 13
Les composants d’une App Android
Activities Services
1. Offre Une Interface utilisateur 1. Pas d’Interface utilisateur
2. Généralement représente Un seul
écran 2. S’exécute en Arrière Plan
3. Étend la classe Activity 3. Étend la classe Service

Application= ensemble de composants Android

Intent/Broadcast Receiver Content Provider


1. Données d’une application
1. Reçoit et répond aux accessibles à d’autres Apps
broadcast Intents 2. Données sauvegardées dans la
2. Pas d’IU mais peut démarrer base de données SQLite
une Activity 3. Étend la classe ContentProvider
3. Étend la classe BroadcastReceiver

A.Hammache 14
Les composants d’une App Android

OS

A.Hammache 15
Exemples

A.Hammache 16
Chapitre II :
Outils de développement
Android

A.Hammache 17
Plan du Chapitre

Pile d’outils

JDK, Eclipse

SDK

ADT

Autres IDE

Structure d’un Projet Android

Construction d’une application

A.Hammache 18
La pile d’outils

SDK Android ADT


Plugin (Gradle)

Outils
APIs AVD
Eclipse
Exemples ADB (Android
Document Studio)
AAPT
ation

JDK JAVA SE 6

A.Hammache 19
Le JDK Eclipse
 JDK/JRE : le développement Android est
basé sur le langage Java. Il est nécessaire
alors d’avoir la JDK/JRE.
 JDK : Java Development Kit, Il contient :
 Des exécutables : machine virtuelle, compilateur, générateur de
documentation, etc.
 Un ensemble de classes de base regroupées en packages
 Interface utilisateur, conteneurs, gestion des threads, réseau, etc.
 Le JRE= Java Runtime Environment , Il contient :
 la machine virtuelle
• Eclipse : est un environnement de
développement

A.Hammache 20
SDK
 APIs: (Application Programming Interface) est un ensemble
de classes regroupant des fonctions mises à disposition des
développeurs.

 La documentation contient deux parties distinctes :


 le guide du développeur, disponible en HTML dans le répertoire
du SDK (voir la page docs/guide/index.html) ;
 la documentation des APIs au format javadoc, qui est également
située dans le répertoire : docs\reference\packages.html, de SDK.

 Les exemples : est un ensemble de projets android


situé dans le répertoire : platforms\android-2.0\samples :
APIDemos, Snake, NotePad, etc.

A.Hammache 21
SDK
 SDK contient un ensemble d’outils utilisés tout au long de
processus de développement d’application, ils sont situés
dans le répertoire tools.

 aapt : pour Android Asset Packaging Tool. Le rôle majeur d’« aapt »
est de compiler les ressources des applications Android.
L’exécution de cette commande se fait automatiquement par le plug-
in Eclipse.

 AVD : pour Android Virtual Device : est un outil permettant de lancer


un émulateur (téléphone virtuel). Chaque émulateur écoute un port,
telenet, dont le numéro apparaît sur la barre de la fenêtre (par défaut
le 5554).

 Adb : pour Android Debug Bridge. Est un outil permettant la


communication avec l’émulateur.

A.Hammache 22
ADT
 Le plugin eclipse ADT simplifie le développement
Android. Il intègre les outils de développement
comme l’émulateur et le convertisseur .class-to-.dex

 Il fournit un assistant de projet Android qui permet


de créer rapidement de nouveaux projets.

 Il automatise et simplifie le processus de construction


des applications Android.

 Il fournit un éditeur qui aide à écrire du code XML


valide pour le manifeste Android
(AndroidManifest.xml) et les fichiers de resources.

A.Hammache 23
Installation de la pile d’outils

Installer JDK Java6 SE

Télécharger l'ADT Bundle


Depuis

http://developer.android.com/sdk

Il inclut : Eclipse, le SDK Android,


le plugin Eclipse

A.Hammache 24
Autres IDE Android
 Android Studio
 Télécharger:
http://developer.android.com/sdk/installing/studio.html

 Installer

A.Hammache 25
La structure d’un projet Android (eclipse)

code
Classe auto-
fichiers générée “liste
des ressources”
images

Interface utilisateur

constantes

Fichier manifest

A.Hammache 26
La structure d’un projet Android (android studio)

A.Hammache 27
Construction d’une application

Projet Compilation
Android et Packaging

Android PacKage (.apk)


Fichiers Ressources
.dex .arsc
Ressources non
compilées

AndroidManifest.xml

ADB
Appareil ou
Signature
Emulateur

A.Hammache 28
Construction d’une application
res/
interface.xml androidManifest.xml gen / src /
string.xml R.java MonActivité.java

Compilation
Asset java
Packaging
tool (aapt) Byte code
.class

Ressources Compilation
compilées pour Dalvik(dx)

Byte code
Dalvik (.dex)
Installer
et
Construire Android exécuter
apk Package
(apkbuilder) (.apk)
A.Hammache 29
Exemple code java
 L’activité étend la classe Activity (android.app.Activity)
 L’activité implémente la méthode
 OnCreate() :
- Initialise
- SetContentView()
import android.app.Activity;
import android.os.Bundle;

public class ExempleActivite extends Activity {

public void onCreate(Bundle stateSaved) {


super.onCreate(stateSaved);
setContentView(R.layout.main);
}
}
A.Hammache 30
Ressources d’une application
MonProjet

src MonActivity.java (Code Source Java)

res

layout main.xml (Interface de l’application XML)

values strings.xml
( Nom de l’Application)

drawable icon.png (Icone de l’ Application)

<?xml version="1.0" encoding="utf-8"?>


<resources>
<string name="nom_app"> Bonjour ! </string>
<string name="titre_activity_main"> Premiere activité ! </string>
</resources>

A.Hammache 31
Exemple de classe R.java
public final class R {
public static final class attr {
}
public static final class drawable {
public static final int ic_launcher=0x7f020000;
}
public static final class id {
public static final int menu_settings=0x7f070000;
}
public static final class layout {
public static final int main=0x7f030000;
}
public static final class menu {
public static final int activity_main=0x7f060000;
}
public static final class string {
public static final int nom_app =0x7f040000;
public static final int titre_activity_main =0x7f040001;
}
}
A.Hammache 32
Exemple de manifest
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.exemple.bonjour"
android:versionCode="1"
android:versionName="1.0" >
<use-sdk android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application android:icon="@drawable/ic_launcher"
android:label="@string/nom_app"
android:theme="@style/AppTheme" >
<activity android:name=".MainActivity"
android:label="@string/titre_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

A.Hammache 33

You might also like