Cours android

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


Télécharger Support d’introduction au développement Android avec Android studio

★★★★★★★★★★3.5 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Télécharger aussi :


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

...

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

. . .

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

La plate-forme Android

Android

Origine

Initialement un OS pour appareil photo

Acheté par Google en 2005

La plate-forme Android

Répartition des différentes versions (accès au Play Store)

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)

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

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



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

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)

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) : android.com/studio

Android Studio

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

... ... ...

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)

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

Hello World en ligne de commande

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

...

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

...

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

... ... ...

Les ressources :

Android est destiné à être utilisé sur un très grand nombre de supports différents, et il faut par conséquent s’adapter à ces supports. Imaginons qu’une application ait à afficher une image. Si on prend une petite image, il faut l’agrandir pour qu’elle n’ait pas une dimension ridicule sur un grand écran. Mais en faisant cela, l’image perdra en qualité. Une solution serait donc d’avoir une image pour les petits écrans, une pour les écrans moyens et une pour les grands écrans. C’est ce genre de précautions qu’il faut prendre quand on veut développer pour les appareils mobiles. Un des moyens d’adapter nos applications à tous les terminaux est d’utiliser les ressources. Les ressources sont des fichiers organisés d’une manière particulière de façon à ce qu’Android sache quelle ressource utiliser pour s’adapter au matériel sur lequel s’exécute l’application. Comme je l’ai dit précédemment, adapter nos applications à tous les types de terminaux est indispensable. Cette adaptation passe par la maîtrise des ressources. Pour déclarer des ressources, on passe très souvent par le format XML, c’est pourquoi un point sur ce langage est nécessaire.

Le format XML

Si vous maîtrisez déjà le XML, vous pouvez passer directement à la suite.

Les langages de balisage

Le XML est un langage de balisage un peu comme le HTML — le HTML est d’ailleurs indirectement un dérivé du XML. Le principe d’un langage de programmation (Java, C++, etc.) est d’effectuer des calculs, puis éventuellement de mettre en forme le résultat de ces calculs dans une interface graphique. À l’opposé, un langage de balisage (XML, donc) n’effectue ni calcul, ni affichage, mais se contente de mettre en forme des informations. Concrètement, un langage de balisage est une syntaxe à respecter, de façon à ce qu’on sache de manière exacte la structuration d’un fichier. Et si on connaît l’architecture d’un fichier, alors il est très facile de retrouver l’emplacement des informations contenues dans ce fichier et de pouvoir les exploiter. Ainsi, il est possible de développer un programme appelé interpréteur qui récupérera les données d’un fichier (structuré à l’aide d’un langage de balisage).

  1. Les bases indispensables à toute application

Par exemple pour le HTML, c’est un navigateur qui interprète le code afin de donner un sens aux instructions ; si vous lisez un document HTML sans interpréteur, vous ne verrez que les sources, pas l’interprétation des balises.

Un exemple pratique

Imaginons un langage de balisage très simple, que j’utilise pour stocker mes contacts téléphoniques :

1 Anaïs Romain Thomas Xavier

Ce langage est très simple : les prénoms de mes contacts sont séparés par une espace. Ainsi, quand je demanderai à mon interpréteur de lire le fichier, il saura que j’ai 4 contacts parce que les prénoms sont séparés par des espaces. Il lit une suite de caractères et dès qu’il tombe sur une espace, il sait qu’on va passer à un autre prénom.

Là, l’interpréteur sait que pour chaque ligne, la première suite de caractères correspond à un prénom qui se termine par un deux-points, puis on trouve le numéro de téléphone qui se termine par un retour à la ligne. Et, si j’ai bien codé mon interpréteur, il sait que le premier prénom est « Anaïs » sans prendre l’espace à la fin, puisque ce n’est pas un caractère qui rentre dans la composition d’un prénom. Si j’avais écrit mon fichier sans syntaxe particulière à respecter, alors il m’aurait été impossible de développer un interpréteur qui puisse retrouver les informations.



146