PRÉSENTATION DE LA PLATEFORME
ANDROID
MOHAMED BOURAOUI
BOURAWI.MOHAMED@GMAIL.COM
AU 2015 - 2016
PRÉSENTATION D’ANDROID
PRÉSENTATION D’ANDROID
PRÉSENTATION D’ANDROID : MATÉRIELS
PRÉSENTATION D’ANDROID
• Un système d’exploitation orienté dispositifs mobiles
• il s’agit donc d’un ensemble de logiciels qui sert d’interface entre
le matériel (les composants du téléphone, d’une tablette...) et les
logiciels applicatifs (ceux que vous allez développer).
• Un système d’exploitation open source
• disponibilité du code,
• importante communauté d’utilisateurs.
• Un système d’exploitation basé sur le noyau Linux
• Environnement de développement gratuit
• Programmation en Java ou en langage C,
PRÉSENTATION D’ANDROID: ARCHITECTURE
PRÉSENTATION D’ANDROID: VERSIONS
Version Codename API Distribution
2.2 Froyo 8 0.2%
2.3.3 -
2.3.7
Gingerbread 10 3.8%
4.0.3 -
4.0.4
Ice Cream
Sandwich
15 3.3%
4.1.x Jelly Bean 16 11.0%
4.2.x 17 13.9%
4.3 18 4.1%
4.4 KitKat 19 37.8%
5.0 Lollipop 21 15.5%
5.1 22 10.1%
6.0 Marshmallow 23 0.3%
PRÉSENTATION D’ANDROID: DISTRIBUER DES APPLICATIONS
 Google Play Store (ancien Android Market)
PRÉSENTATION D’ANDROID: DISTRIBUER DES APPLICATIONS
 Autres plateformes
LE SYSTÈME D’EXPLOITATION ANDROID
 L‘écosystème d'Android s'appuie sur deux piliers:
 le langage Java
 le SDK qui permet d'avoir un environnement de développement
facilitant la tâche du développeur
 Le kit de développement donne accès à des exemples, de la
documentation mais surtout à l'API de programmation du système et à un
émulateur pour tester ses applications.
 Stratégiquement, Google utilise la licence Apache pour Android ce qui
permet la redistribution du code sous forme libre ou non et d'en faire un
usage commercial.
STRUCTURE D’UN PROJET ANDROID
STRUCTURE D’UN PROJET ANDROID : LA RACINE
Répertoire /
• AndroidManifest.xml : Le fichier qui décrit l’application
• java/ : Répertoire qui contient code source Java de l’application
• res/ : Répertoire qui contient les ressources (icônes, layouts...)
• build.gradle : Le script Gradle qui permet de compiler l’application et de
l’installer sur le terminal
• gradle.properties et local.properties : Deux fichiers de propriétés utilisés
par le script Gradle
STRUCTURE D’UN PROJET ANDROID : LES RESSOURCES
res/
• res/drawable/ : Répertoire qui contient les images (JPG, PNG...)
• res/layout/ : Répertoire qui contient les descriptions XML de la
composition de l’IHM (les layouts)
LES RESSOURCES
 Les ressources de l'applications sont utilisées dans le code au travers de la
classe statique R
 La classe R s’agit d’une classe statique régénérée à chaque fois que des
ressources sont ajoutées au projet.
 Les ressources sont utilisées de la manière suivante:
 Cette méthode permet de retourner l’identifiant de la ressource
 Par exemple, pour récupérer une ressource de type String d’identifiant
« hello »
android.R.type_ressource.nom_ressource
Resources res = getResources();
String chaine= res.getString(R.string.hello);
LES RESSOURCES (2)
 Une méthode spécifique pour les objets graphiques permet de les
récupérer à partir de leur id, c’est la méthode findViewById.
 Cette méthode permet d’agit sur des instances d’objets graphiques
crées via leur définition XML
TextView texte = (TextView)findViewById(R.id.le_texte);
texte.setText(« Bonjour!");
LES RESSOURCES (3) : LES CHAINES
 Les chaines constantes de l’application se situent dans le fichier
res/values/string.xml.
 La récupération de la chaine se fait via le code:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Bonjour</string>
<string name="app_name">BonjourM21</string>
</resources>
Resources res = getResources();
String hw = res.getString(R.string.hello);
LES RESSOURCES : INTERNATIONALISATION
 L’exploitation du fichier strings.xml pour la déclaration des chaines de
caractères est très utile pour l’internationalisation de l’application.
 Pour ce faire, il suffit de créer des répertoires values-XX ou XX est le code de
la langue qu’on souhaite implanter.
 On obtient par exemple pour les langages anglais et français l’arborescence
suivante:
MyProject/
res/
values/
strings.xml
values-en/
strings.xml
values-fr/
strings.xml
STRUCTURE D’UN PROJET ANDROID : LE MANIFEST
 Fichier XML
 Précise l’architecture de l’application
 Chaque application doit en avoir un
 AndroidManifest.xml est dans la racine du projet
STRUCTURE D’UN PROJET ANDROID : LE MANIFEST
 Précise le nom du package java utilisant l’application. Cela sert
d’identifiant unique !
 Décrit les composants de l’application
 Liste des activités…
 Précise les classes qui les implémentent
 …
 Définit les permissions de l’application
 Droit de passer des appels
 Droit d’accéder à Internet
 Droit d’accéder au GPS
STRUCTURE D’UN PROJET ANDROID : LE MANIFEST
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.mohamed.authentification" >
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".Login"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar" >
….
</activity>
<activity
android:name=".Admin"
android:label="@string/title_activity_admin"
android:theme="@style/AppTheme.NoActionBar" >
</activity>
</application>
</manifest>
18
COMPILATION ET DÉPLOIEMENT

Présentation de la plateforme Android

  • 1.
    PRÉSENTATION DE LAPLATEFORME ANDROID MOHAMED BOURAOUI BOURAWI.MOHAMED@GMAIL.COM AU 2015 - 2016
  • 2.
  • 3.
  • 4.
  • 5.
    PRÉSENTATION D’ANDROID • Unsystème d’exploitation orienté dispositifs mobiles • il s’agit donc d’un ensemble de logiciels qui sert d’interface entre le matériel (les composants du téléphone, d’une tablette...) et les logiciels applicatifs (ceux que vous allez développer). • Un système d’exploitation open source • disponibilité du code, • importante communauté d’utilisateurs. • Un système d’exploitation basé sur le noyau Linux • Environnement de développement gratuit • Programmation en Java ou en langage C,
  • 6.
  • 7.
    PRÉSENTATION D’ANDROID: VERSIONS VersionCodename API Distribution 2.2 Froyo 8 0.2% 2.3.3 - 2.3.7 Gingerbread 10 3.8% 4.0.3 - 4.0.4 Ice Cream Sandwich 15 3.3% 4.1.x Jelly Bean 16 11.0% 4.2.x 17 13.9% 4.3 18 4.1% 4.4 KitKat 19 37.8% 5.0 Lollipop 21 15.5% 5.1 22 10.1% 6.0 Marshmallow 23 0.3%
  • 8.
    PRÉSENTATION D’ANDROID: DISTRIBUERDES APPLICATIONS  Google Play Store (ancien Android Market)
  • 9.
    PRÉSENTATION D’ANDROID: DISTRIBUERDES APPLICATIONS  Autres plateformes
  • 10.
    LE SYSTÈME D’EXPLOITATIONANDROID  L‘écosystème d'Android s'appuie sur deux piliers:  le langage Java  le SDK qui permet d'avoir un environnement de développement facilitant la tâche du développeur  Le kit de développement donne accès à des exemples, de la documentation mais surtout à l'API de programmation du système et à un émulateur pour tester ses applications.  Stratégiquement, Google utilise la licence Apache pour Android ce qui permet la redistribution du code sous forme libre ou non et d'en faire un usage commercial.
  • 11.
  • 12.
    STRUCTURE D’UN PROJETANDROID : LA RACINE Répertoire / • AndroidManifest.xml : Le fichier qui décrit l’application • java/ : Répertoire qui contient code source Java de l’application • res/ : Répertoire qui contient les ressources (icônes, layouts...) • build.gradle : Le script Gradle qui permet de compiler l’application et de l’installer sur le terminal • gradle.properties et local.properties : Deux fichiers de propriétés utilisés par le script Gradle
  • 13.
    STRUCTURE D’UN PROJETANDROID : LES RESSOURCES res/ • res/drawable/ : Répertoire qui contient les images (JPG, PNG...) • res/layout/ : Répertoire qui contient les descriptions XML de la composition de l’IHM (les layouts)
  • 14.
    LES RESSOURCES  Lesressources de l'applications sont utilisées dans le code au travers de la classe statique R  La classe R s’agit d’une classe statique régénérée à chaque fois que des ressources sont ajoutées au projet.  Les ressources sont utilisées de la manière suivante:  Cette méthode permet de retourner l’identifiant de la ressource  Par exemple, pour récupérer une ressource de type String d’identifiant « hello » android.R.type_ressource.nom_ressource Resources res = getResources(); String chaine= res.getString(R.string.hello);
  • 15.
    LES RESSOURCES (2) Une méthode spécifique pour les objets graphiques permet de les récupérer à partir de leur id, c’est la méthode findViewById.  Cette méthode permet d’agit sur des instances d’objets graphiques crées via leur définition XML TextView texte = (TextView)findViewById(R.id.le_texte); texte.setText(« Bonjour!");
  • 16.
    LES RESSOURCES (3): LES CHAINES  Les chaines constantes de l’application se situent dans le fichier res/values/string.xml.  La récupération de la chaine se fait via le code: <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Bonjour</string> <string name="app_name">BonjourM21</string> </resources> Resources res = getResources(); String hw = res.getString(R.string.hello);
  • 17.
    LES RESSOURCES :INTERNATIONALISATION  L’exploitation du fichier strings.xml pour la déclaration des chaines de caractères est très utile pour l’internationalisation de l’application.  Pour ce faire, il suffit de créer des répertoires values-XX ou XX est le code de la langue qu’on souhaite implanter.  On obtient par exemple pour les langages anglais et français l’arborescence suivante: MyProject/ res/ values/ strings.xml values-en/ strings.xml values-fr/ strings.xml
  • 18.
    STRUCTURE D’UN PROJETANDROID : LE MANIFEST  Fichier XML  Précise l’architecture de l’application  Chaque application doit en avoir un  AndroidManifest.xml est dans la racine du projet
  • 19.
    STRUCTURE D’UN PROJETANDROID : LE MANIFEST  Précise le nom du package java utilisant l’application. Cela sert d’identifiant unique !  Décrit les composants de l’application  Liste des activités…  Précise les classes qui les implémentent  …  Définit les permissions de l’application  Droit de passer des appels  Droit d’accéder à Internet  Droit d’accéder au GPS
  • 20.
    STRUCTURE D’UN PROJETANDROID : LE MANIFEST <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.mohamed.authentification" > <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".Login" android:label="@string/app_name" android:theme="@style/AppTheme.NoActionBar" > …. </activity> <activity android:name=".Admin" android:label="@string/title_activity_admin" android:theme="@style/AppTheme.NoActionBar" > </activity> </application> </manifest> 18
  • 21.

Notes de l'éditeur

  • #7 ART (Android RunTime) développé par google, remplace Dalvik et plus performant Librairies: openGL, Sqlite, FreeType OpenGL: bibliothèque, conçue pour les applications embarquées pour les images 2D et 3D (jeux, interfaces…) FreeType est une bibliothèque logicielle, qui met en œuvre un moteur de rendu de police de caractères.
  • #8 Gingerbread: Dernière version dédiée uniquement aux smartphones Ice Cream unifiée pour smartphones, tablettes et Google TV  Jelly Bean: reconnaissance vocale sans connexion internet, nouvelle interface de l'appareil photo… KitKat: Consommation en ressource moins élevée nécessitant moins de RAM, nouvelles icônes plus soignées, la barre du bas et celle de statut deviennent transparentes sur certains menus et changent de couleur en fonction du contenu affiché. Lollipop: Material Design,  Android TV, Android Auto, économiseur de batterie, anti-vol Marshmallow: Autonomie en veille, animation de démarrage , Google Now on Tap, support natif du capteur d'empreinte digitale
  • #12 Build.gradle : un script gradle pour indiquer des configurations pour le build du projet Build.gradle (module) : à configurer, version sdk minimum, les différentes librairies à utiliser … settings.gradle : à jamais toucher, permet à gradle de savoir ce qu’il doit inclure dans son processus d’assemblage (build) Proguard-rules: optionel ds le projet, intervient dans les optimisations et la sécurisation dans la génération de l’apk (reverse engineering difficile) Gradle et local.properties:
  • #18 Android chargera le fichier de resources approprié en fonction de la langue du système.
  • #20 Service: activité sans interface (pas forcément), exemple: Service permettant d’écouter une playlist (indépendamment de toute activité) broadcast receivers: des récepteurs d'Intents, permet de déclarer être capable de répondre à des Intents Intents: msg système (évènement), prévient une application qu’un évènement est survenue (insertion carte SD, l’utilsateur arrive à Zaghouan. Le but des Intents est de déléguer une action à un autre composant, une autre application ou une autre activité de l'application courante.