• Aucun résultat trouvé

Programmation Android

N/A
N/A
Protected

Academic year: 2022

Partager "Programmation Android"

Copied!
44
0
0

Texte intégral

(1)

Programmation Android

Wafa Badreddine

[email protected]

(2)

Plan

Présentation d’Android

Qu’est ce qu’Android ?

Qui utilise Android ?

Concepts de base

Composants d’une application Android

Architecture logicielle d’Android

Activité

Cycle de vie

« Hello World » avec Android

(3)

Open Handset Alliance

Date de création : Le 5 novembre 2007 à l’initiative de Google

Objectifs : Développer des normes ouvertes pour les appareils de téléphonie mobile

Membres : 34 grands acteurs opérateurs de téléphonie mobile, fabricants de semi-conducteurs, d’appareils mobiles, de logiciels…

(4)

Qu’est ce qu’Android

Un système d’exploitation

Un système d’exploitation orienté dispositif 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.

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

Kit de développement (SDK Android) disponible et propose de nombreux outils pour le développement d'applications Android et de nombreuses API utiles.

Android est basé sur JAVA et toutes ses applications sont développées en JAVA

(5)

De plus en plus d’équipements

(6)

Concurrents Android

Apple avec iOS

Research In Motion (RIM) avec BlackBerry OS

Microsoft avec Windows Phone

Samsung avec Bada (même si Samsung utilise aussi Android)

HP avec Palm webOS devenu webOS (Arrêté en 2011)

Nokia avec Symbian OS (Arrêté en 2011, Nokia utilisera désormais Windows Phone).

(7)

Composants d’une application Android

Activité (Activity)

Brique de base d’une interface utilisateur

Présenter une interface utilisateur visuelle pour un projet ciblé que l'utilisateur peut entreprendre

Equivalent d’une fenêtre (Windows, Linux) ou d’une boîte de dialogue

Une activité peut éventuellement ne pas avoir d’interface utilisateur (cas des services par exemple)

Exemple: une liste d'éléments de menu que les utilisateurs peuvent choisir

(8)

Service (Service)

Tourne en arrière-plan pour une durée indéterminée

Logiciel autonome prévu pour durer (contrairement aux activités, fournisseurs de contenus, récepteur d’intentions).

Ne nécessite pas d’interface utilisateur.

Exemples: Service vérifiant périodiquement des mises-à-jour de flux RSS - Service permettant d’écouter une playlist (indépendamment de toute activité)

(9)

Fournisseur de contenu (Content provider)

Niveau d’abstraction pour toutes données stockées sur le terminal

Stocker et récupérer des données et les rendre accessibles à toutes les applications

Exemple: Android est livré avec un certain nombre de fournisseurs de contenu pour les types de données courants (par exemple, audio, vidéo, images, informations de contact personnelles, etc.).

Android encourage la mise à disposition de ses propres données aux autres programmes

Le content provider le permet en proposant un contrôle sur la façon dont on accédera aux données

(10)

Intention (Intent)

Une intention est un message système qu’on peut qualifier d’événement

Emis par le terminal pour prévenir les applications de la survenue d’événements (cas des événements systèmes) ou par tout autre application (cas des événements applicatifs).

Système: Insertion d’une carte SD, Reception d’un SMS, …

Applicatif : « Le logiciel X démarre », « L’utilisateur arrive à Paris en utilisant les informations de géolocalisation du terminal », …

Tenir le contenu d'un message

Exemple: transmet une demande d'activité pour présenter une image à l'utilisateur ou laisser l'utilisateur éditer du texte

(11)

Manifeste (Manifest)

Point de départ de toute application Android

L’application doit déclarer tous ses composants, notamment les activités et services, dans un fichier AndroidManifest.xml

Le fichier Manifest indique au système qu’un composant qui veut se lancer existe déjà

Précise comment ces composants sont reliés à Android (que fait-on apparaitre dans le menu ? …)

Précise les permissions de l’application (contrôle de la webcam, accès au réseaux, accès au service de localisation...)

(12)

Architecture Logicielle d’Android

(13)

Qu’est ce qu’une activité (1/2)

Une application Android est généralement composée de plusieurs activités liées les unes aux autres

Exemple : Soit une application d’envoi de SMS

Une activité pour choisir un contact dans le répertoire

Une activité pour la saisie du message

Une activité pour afficher le journal des envois

(14)

Qu’est ce qu’une activité (2/2)

D’un point de vue opérationnel :

Une activité doit hériter de la classe android.app.Activity

Une activité est indépendante des autres activités MAIS :

Il faut designer une activité de départ (celle qui sera utilisée en 1er)

L’activité affichée au lancement de l’application est appelée

«activité main »

Il faut chainer les activités (une activité doit activer la suivante)

Chaque activité peut en lancer une autre pour effectuer différentes actions et respecte un cycle de vie

(15)

Cycle de vie d’une activité

(16)
(17)
(18)
(19)
(20)
(21)
(22)
(23)

Fichier Manifest

Le fichier Manifest indique au système qu’un composant qui veut se lancer existe déjà

L’application doit déclarer tous ses composants, notamment les activités, dans un fichier AndroidManifest.xml

Ce fichier comprend:

les informations concernant les permissions requises par l’application,

le niveau minimum de l’API,

les caractéristiques logicielles et matérielles et les librairies requises

(24)
(25)

Layout XML

La structure visuelle d’une activité est décrite dans un fichier .xml appelé layout

XML: eXtensible Markup Language

Langage de balisage extensible pour structurer des données

Chaque activité a son propre fichier layout pour la décrire

Par exemple, on associera l’activité MainActivity au fichier activity_main.xml qui est généré automatiquement lors de la création de l’activité

(26)

Choix du Layout:

LinearLayout : Il organise les différents éléments de votre interface sur une ligne ou sur une ´ colonne.

AbsoluteLayout : Cette mise en page vous laisse définir les coordonnées exactes des éléments qui le composent.

RelativeLayout : Il permet de définir la position des éléments en fonction de la position de leurs éléments parents. On ne peut pas avoir de dépendance circulaire dans la taille dans le RelativeLayout.

TableLayout : Cette mise en page peut se faire en colonne et en ligne.

(27)

Les widgets:

EditText : Un champ de texte modifiable

Toast : Un pop up message qui s’affiche sur l’écran

ImageView : Une image

CheckBox : Une case à cocher

Button : Un bouton cliquable

RadioButton : sélecteurs/interrupteurs.

ImageButton : Une image qui se comporte comme un bouton

DatePicker : Un sélecteur de dates

SlidingDrawer : Un élément qui se présente sous forme d’un tiroir qu’on

(28)

Exemple Fichier .xml

(29)
(30)
(31)
(32)
(33)

Hello World

(34)
(35)
(36)
(37)
(38)

Contenu du répertoire 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)

res/menu/ : Répertoire qui contient les descriptions XML des menus

res/raw/ : Repertoire qui contient les fichiers généraux (un fichier CSV contenant les informations de compte par exemple)

res/values/ : Répertoire qui contient les messages, les dimensions…

res/xml/ : Répertoire qui contient les autres fichiers XML que vous souhaitez fournir

(39)
(40)
(41)
(42)
(43)
(44)

Merci pour votre attention

Références

Documents relatifs

Il prévoit nolam!llpnt.·.. des

d) informer le Client que ce dernier engage sa responsabilité en cas de non-respect ou de mauvaise appli- cation des conditions relatives à l’accès et à l’utilisation du

• L’application doit déclarer ce que l’application contient (ses composants, notamment les activités et services,…) dans un fichier AndroidManifest.xml. • Le

Il s'agit de développer un système qui sera utilisé dans un cadre médicale par la clinique de l'Ecole Supérieur d'Ostéopathie (à 500m de l'ESIEE) pour évaluer quantitativement

Il s'agit de développer un système qui sera utilisé dans un cadre médicale par la clinique de l'Ecole Supérieur d'Ostéopathie (à 500m de l'ESIEE) pour évaluer quantitativement

« c:\classe.txt » et logiquement F à raison d’un élève par ligne (avec 4<N≤39) pour cela on vous demande de faire le programme Pascal qui permet de remplir puis d’afficher

Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur.. Sinon

Together we have developed Android TM , the first complete, open, and free mobile