Vous êtes sur la page 1sur 67

Programmation Android

I. Introduction

Cours Android - F. Michel


1 / 68
N
Plan

1 Introduction

2 La plate-forme Android

3 Programmation Android

4 Hello World avec Android Studio

5 Hello World en ligne de commande

6 Édition du projet avec Android Studio

7 Exécution du projet

Cours Android - F. Michel


2 / 68
N
Introduction

Application mobile wikipédia

Caractéristiques
Cible : appareil électronique mobile (smartphone, tablette, etc.)
Contexte logiciel :
non connecté : agenda, baladeur, . . .
localisé : navigation GPS, travaux géolocalisés (e.g. photographie)
connecté : tout Internet. . . avec un contexte mobile !
...

Contexte matériel :
ressources plus faibles : CPU / RAM / DD / ROM
⇒ la consommation des ressources doit être minimale
⇒ Résolutions d’affichage hétéroclites ⇒ GUI adaptative
...

Cours Android - F. Michel


4 / 68
N
Introduction

Application mobile

Principaux OS
Android (Google) : Linux, version 8.1 (décembre 2017)
BlackBerry OS, QNX : Unix (arrêté en 2015)

iOS (Apple) noyau hybride XNU : Mach(libre) + BSD (Unix)

Ubuntu Touch (Canonical) : Linux (arrêté en avril 2017)

Windows 10 mobile (Microsoft) (arrêté en octobre 2017)


Tizen (Linux Foundation), supporté par Samsung (montres
connectées)

Firefox OS (Mozilla Corporation) : Linux (arrêté en 2015)


plus d’information

Cours Android - F. Michel


5 / 68
N
La plate-forme Android

Android

Origine
Initialement un OS pour appareil photo

Acheté par Google en 2005


Wikipédia

Cours Android - F. Michel


7 / 68
N
La plate-forme Android

Diffusion

Google I/O, mai 2017

Cours Android - F. Michel


8 / 68
N
La plate-forme Android

Répartition des différentes versions


(accès au Play Store)

Statistiques

Cours Android - F. Michel


9 / 68
N
La plate-forme Android

Architecture globale

Cours Android - F. Michel


10 / 68
N
La plate-forme Android

Libraries

Librairies C/C++ libres ⇒


Surface Manager : affichage 2D/3D
Media Framework : codecs basés sur librairie OpenCORE

SQLite : moteur de base de données relationelle

OpenGL|ES : implémentation OpenGL pour l’embarqué

FreeType : rendu bitmap de polices vectorielles


WebKit : moteur de rendu de pages Web

SGL : moteur graphique 2D

SSL : communications réseaux sécurisées

libc : dérivé de la librairie C (BSD) pour l’embarqué (Bionic libc)

Cours Android - F. Michel


11 / 68
N
La plate-forme Android

Architecture : Application Framework

Cours Android - F. Michel


12 / 68
N
La plate-forme Android

Application framework 1/2

Modules ⇒
Content Providers : gestion de l’accès aux données (appli et
autres applis)
View System : gestion des composants graphiques et des
événements utilisateurs liés
Activity Manager : cycle de vie et navigation entre applications

Location Manager : accès aux fonctions de localisation

Cours Android - F. Michel


13 / 68
N
La plate-forme Android

Application framework 2/2

Modules ⇒
Package Manager : accès aux API tierces installées

Notification Manager : gestion du système de notifications

Resource Manager : gestion des ressources (images, définition


des layouts, etc.)

Telephony Manager : accès aux services de téléphonie

Window Manager : gestion GUI (z-ordered, mise en page, etc.)

Cours Android - F. Michel


14 / 68
N
La plate-forme Android

Architecture : Android Runtime

Cours Android - F. Michel


15 / 68
N
La plate-forme Android

Construction d’un APK

Cours Android - F. Michel


16 / 68
N
Programmation Android

Prérequis
Créer une application Android :

Connaissances Techniques
Android (runtime + framework) ⇒ POO + Java

Outils logiciels
Java Runtime Environment (JRE) pour exécuter les outils
Android

Android SDK téléchargement

Android Virtual Device Manager (AVD), contenu dans le


Android SDK

un IDE
Cours Android - F. Michel
18 / 68
N
Programmation Android

Android SDK : téléchargement


décompression dans un répertoire, e.g. Android-sdk.
SDK_PATH dans la suite)

Lancement du SDK manager : SDK_PATH/tools/android (sans


argument) Cours Android - F. Michel
19 / 68
N
Programmation Android

Le SDK Manager : tools

Cours Android - F. Michel


20 / 68
N
Programmation Android

Le SDK Manager : Android APIs

Cours Android - F. Michel


21 / 68
N
Programmation Android

Le SDK Manager : Extras

Cours Android - F. Michel


22 / 68
N
Programmation Android

SDK_PATH/ après téléchargement


(plusieurs Go)

Cours Android - F. Michel


23 / 68
N
Programmation Android

Android Virtual Device Manager (AVD)

Lancement AVD : SDK_PATH/tools/android avd

Cours Android - F. Michel


24 / 68
N
Programmation Android

Outils requis

IDE pour programmer une application Android :

2 solutions :
Eclipse avec le plugin Andmore : taper android dans le marketplace d’Eclipse

Android Studio (supporté par Google) : https://developer.android.com/studio

Cours Android - F. Michel


25 / 68
N
Programmation Android

Android Studio

Contenu de l’archive (téléchargera tout le reste : tools, sdk, etc.)

Cours Android - F. Michel


26 / 68
N
Programmation Android

Android Studio

Cours Android - F. Michel


27 / 68
N
Hello World avec Android Studio

New project : 1. caractéristiques princi-


pales

Cours Android - F. Michel


29 / 68
N
Hello World avec Android Studio

2. Sélection de l’API Minimum

Cours Android - F. Michel


30 / 68
N
Hello World avec Android Studio

2. Sélection de l’API Minimum

Cours Android - F. Michel


31 / 68
N
Hello World avec Android Studio

3. Choix de l’activité héritée : Empty Acti-


vity (hello world)

Cours Android - F. Michel


32 / 68
N
Hello World avec Android Studio

4. Paramétrage des noms de fichiers

Cours Android - F. Michel


33 / 68
N
Hello World avec Android Studio

5. Vue globale

Cours Android - F. Michel


34 / 68
N
Hello World en ligne de commande

Création d’un projet en ligne de commande


$ android list targets ( API disponibles), ./sdkmanager

Cours Android - F. Michel


36 / 68
N
Hello World en ligne de commande

Création du projet

Cours Android - F. Michel


37 / 68
N
Hello World en ligne de commande

Contenu du projet

Dossier App
build/ : fichier générés

libs/ : librairies additionnelles

src/ : intégralité des sources pour le développement (appli + tests)

Cours Android - F. Michel


38 / 68
N
Hello World en ligne de commande

Contenu du projet

Dossier App/src/
androidTest/ : tests de l’application dans l’environnement android
test/ : tests internes à l’application
main : sources de l’application
main/java : sources Java, e.g. la classe qui lance l’activité
main/res : les ressources de l’application
drawable-(h)(m)(l)dpi/ images dans différentes résolutions
layout/ GUI design général
values/ valeurs des variables
menu/ définition des menus

main/AndroidManifest.xml : description et éléments-clés de


l’application (nom, activité principale, intents, etc.)

Cours Android - F. Michel


39 / 68
N
Hello World en ligne de commande

./app/src/main/AndroidManifest.xml : des-
cription

Cours Android - F. Michel


40 / 68
N
Hello World en ligne de commande

Éditeur pour les fichiers manifest

Cours Android - F. Michel


41 / 68
N
Édition du projet avec Android Studio

. . . /res/layout/activity_main.xml : disposi-
tion GUI

Cours Android - F. Michel


43 / 68
N
Édition du projet avec Android Studio

Éditeur de layout (text mode)

Cours Android - F. Michel


44 / 68
N
Édition du projet avec Android Studio

Éditeur de layout (design mode)

Cours Android - F. Michel


45 / 68
N
Édition du projet avec Android Studio

strings.xml : valeurs des variables

Cours Android - F. Michel


46 / 68
N
Édition du projet avec Android Studio

Éditeur pour strings.xml

Cours Android - F. Michel


47 / 68
N
Édition du projet avec Android Studio

/src/. . . /MainActivity.java : activité

Cours Android - F. Michel


48 / 68
N
Édition du projet avec Android Studio

/build/. . . /R.java : définition d’identifiants

Cours Android - F. Michel


49 / 68
N
Exécution du projet

Exécution sur un vrai dispositif

Mise en place du dispositif pour le développement


connexion usb : drivers windows configuration linux

sous linux, la commande lsusb liste les connexions usb


plus d’information

activation USB debugging sur le dispositif :


Settings > Developer options
à partir de Android 4.2 : Settings > About phone (7 tappes
successives).

Cours Android - F. Michel


51 / 68
N
Exécution du projet

Exécution du projet

Cours Android - F. Michel


52 / 68
N
Exécution du projet

Exécution en ligne de commande

Compilation OK ⇒ Déploiement :

Cours Android - F. Michel


53 / 68
N
Exécution du projet

Une fois déployée

Cours Android - F. Michel


54 / 68
N
Exécution du projet

Résultat →

Cours Android - F. Michel


55 / 68
N
Exécution du projet

Exécution sur un émulateur : outil AVD

Dans un terminal : $ android avd

Cours Android - F. Michel


56 / 68
N
Exécution du projet

Définition déjà présentes

Cours Android - F. Michel


57 / 68
N
Exécution du projet

Création d’une AVD en ligne de commande

Cours Android - F. Michel


58 / 68
N
Exécution du projet

Start →

Cours Android - F. Michel


59 / 68
N
Exécution du projet

Sous Android Studio

Cours Android - F. Michel


60 / 68
N
Exécution du projet

Sous Android Studio

Cours Android - F. Michel


61 / 68
N
Exécution du projet

Sous Android Studio

Cours Android - F. Michel


62 / 68
N
Exécution du projet

Sous Android Studio

Cours Android - F. Michel


63 / 68
N
Exécution du projet

Sous Android Studio

Cours Android - F. Michel


64 / 68
N
Exécution du projet

Sous Eclipse :

Cours Android - F. Michel


65 / 68
N
Exécution du projet

Exécution

Cours Android - F. Michel


66 / 68
N
Exécution du projet

L’application est maintenant disponible


sur la cible (virtuelle ou non)

Cours Android - F. Michel


67 / 68
N
Résumé global

Résumé global

La technologie Android :
Noyau Linux
Programmation Java

Programmation Android
des outils pour le développement : SDK manager / AVD / un IDE.
une structure de projet standardisée (manifest, src, res, etc.)
des dispositifs pour le déploiement (virtuels et réels)

Ce cours reprend largement les tutoriaux en ligne proposés par Google : Android developers

Cours Android - F. Michel


68 / 68
N
Résumé global

Création d’un projet avec Eclipse


File → New → Android Application Project →

Cours Android - F. Michel


69 / 74
N
Résumé global

Paramétrage

Cours Android - F. Michel


70 / 74
N
Résumé global

Paramétrage : Icon plus d’information

Cours Android - F. Michel


71 / 74
N
Résumé global

Paramétrage : Blank Activity (hello world)

Cours Android - F. Michel


72 / 74
N
Résumé global

Paramétrage

Cours Android - F. Michel


73 / 74
N
Résumé global

Résultat

Cours Android - F. Michel


74 / 74
N

Vous aimerez peut-être aussi