• Aucun résultat trouvé

Support d’introduction au développement Android avec Android studio

N/A
N/A
Protected

Academic year: 2021

Partager "Support d’introduction au développement Android avec Android studio"

Copied!
67
0
0

Texte intégral

(1)

I. Introduction

1 / 68 Cours Android - F. Michel

(2)

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

2 / 68 Cours Android - F. Michel

(3)

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

. . .

4 / 68 Cours Android - F. Michel

(4)

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

5 / 68 Cours Android - F. Michel

(5)

Android

Origine

Initialement un OS pour appareil photo

Acheté par Google en 2005

Wikipédia

7 / 68 Cours Android - F. Michel

(6)

Diffusion

Google I/O, mai 2017

8 / 68 Cours Android - F. Michel

(7)

Répartition des différentes versions

(accès au

Play Store

)

Statistiques

9 / 68 Cours Android - F. Michel

(8)

Architecture globale

10 / 68 Cours Android - F. Michel

(9)

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)

11 / 68 Cours Android - F. Michel

(10)

Architecture : Application Framework

12 / 68 Cours Android - F. Michel

(11)

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

13 / 68 Cours Android - F. Michel

(12)

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.)

14 / 68 Cours Android - F. Michel

(13)

Architecture : Android Runtime

15 / 68 Cours Android - F. Michel

(14)

Construction d’un APK

16 / 68 Cours Android - F. Michel

(15)

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

18 / 68 Cours Android - F. Michel

(16)

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)

19 / 68 Cours Android - F. Michel

(17)

Le SDK Manager : tools

20 / 68 Cours Android - F. Michel

(18)

Le SDK Manager : Android APIs

21 / 68 Cours Android - F. Michel

(19)

Le SDK Manager : Extras

22 / 68 Cours Android - F. Michel

(20)

SDK_PATH/ après téléchargement

(plusieurs Go)

23 / 68 Cours Android - F. Michel

(21)

Android Virtual Device Manager (AVD)

Lancement AVD :

SDK_PATH/tools/android avd

24 / 68 Cours Android - F. Michel

(22)

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

25 / 68 Cours Android - F. Michel

(23)

Android Studio

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

26 / 68 Cours Android - F. Michel

(24)

Android Studio

27 / 68 Cours Android - F. Michel

(25)

New project : 1. caractéristiques

princi-pales

29 / 68 Cours Android - F. Michel

(26)

2. Sélection de l’API Minimum

30 / 68 Cours Android - F. Michel

(27)

2. Sélection de l’API Minimum

31 / 68 Cours Android - F. Michel

(28)

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

Acti-vity (hello world)

32 / 68 Cours Android - F. Michel

(29)

4. Paramétrage des noms de fichiers

33 / 68 Cours Android - F. Michel

(30)

5. Vue globale

34 / 68 Cours Android - F. Michel

(31)

Création d’un projet en ligne de commande

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

36 / 68 Cours Android - F. Michel

(32)

Création du projet

37 / 68 Cours Android - F. Michel

(33)

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)

38 / 68 Cours Android - F. Michel

(34)

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.)

39 / 68 Cours Android - F. Michel

(35)

./app/src/main/AndroidManifest.xml :

des-cription

40 / 68 Cours Android - F. Michel

(36)

Éditeur pour les fichiers manifest

41 / 68 Cours Android - F. Michel

(37)

. . . /res/layout/activity_main.xml :

disposi-tion GUI

43 / 68 Cours Android - F. Michel

(38)

Éditeur de layout (text mode)

44 / 68 Cours Android - F. Michel

(39)

Éditeur de layout (design mode)

45 / 68 Cours Android - F. Michel

(40)

strings.xml : valeurs des variables

46 / 68 Cours Android - F. Michel

(41)

Éditeur pour strings.xml

47 / 68 Cours Android - F. Michel

(42)

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

48 / 68 Cours Android - F. Michel

(43)

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

49 / 68 Cours Android - F. Michel

(44)

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).

51 / 68 Cours Android - F. Michel

(45)

Exécution du projet

52 / 68 Cours Android - F. Michel

(46)

Exécution en ligne de commande

Compilation OK

Déploiement :

53 / 68 Cours Android - F. Michel

(47)

Une fois déployée

54 / 68 Cours Android - F. Michel

(48)

Résultat

55 / 68 Cours Android - F. Michel

(49)

Exécution sur un émulateur : outil AVD

Dans un terminal :

$ android avd

56 / 68 Cours Android - F. Michel

(50)

Définition déjà présentes

57 / 68 Cours Android - F. Michel

(51)

Création d’une AVD

en ligne de commande

58 / 68 Cours Android - F. Michel

(52)

Start

59 / 68 Cours Android - F. Michel

(53)

Sous Android Studio

60 / 68 Cours Android - F. Michel

(54)

Sous Android Studio

61 / 68 Cours Android - F. Michel

(55)

Sous Android Studio

62 / 68 Cours Android - F. Michel

(56)

Sous Android Studio

63 / 68 Cours Android - F. Michel

(57)

Sous Android Studio

64 / 68 Cours Android - F. Michel

(58)

Sous Eclipse :

65 / 68 Cours Android - F. Michel

(59)

Exécution

66 / 68 Cours Android - F. Michel

(60)

L’application est maintenant disponible

sur la cible (virtuelle ou non)

67 / 68 Cours Android - F. Michel

(61)

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

68 / 68 Cours Android - F. Michel

(62)

Création d’un projet avec Eclipse

File

New

Android Application Project

69 / 74 Cours Android - F. Michel

(63)

Paramétrage

70 / 74 Cours Android - F. Michel

(64)

Paramétrage : Icon

plus d’information

71 / 74 Cours Android - F. Michel

(65)

Paramétrage : Blank Activity (hello world)

72 / 74 Cours Android - F. Michel

(66)

Paramétrage

73 / 74 Cours Android - F. Michel

(67)

Résultat

74 / 74 Cours Android - F. Michel

Références

Documents relatifs

Home Invest Belgium is a Belgian REIT (SIR/GVV) lisd on Euronext Brussels since 1999 [HOMI].. The company is specialising in the acquisition, development, letting and management

En conséquence, la satisfaction et la conformité en matière d’autonomie et de direction par le sens ne se joueraient pas seulement aux niveaux du système de contrôle et du

purge queue for execute and punch jobs purge queue for print jobs (4 hour hold) purge queue for network jobs (4 hour hold) purge queue for message jobs (4 hour hold) FLNT line

Réalisée en distanciel, cette formation comprend 4 modules de 2 heures en classe virtuelle (formation distancielle synchrone) + 30 minutes de bilan à distance... Objectifs de

A l’issue de chaque journée de formation le candidat est amené à s’engager dans son propre processus de progression en se fixant ses objectifs et son plan d’amélioration

Cette confrontation des deux « logiques » est d'intérêt majeur pour l'économie et les sciences de gestion, dont l'objet est précisément de scruter les

Cette confrontation des deux « logiques » est d'intérêt majeur pour l'économie et les sciences de gestion, dont l'objet est précisément de scruter les

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des