0% ont trouvé ce document utile (0 vote)
66 vues49 pages

Android Cours 2

Ce document décrit les bases d'Android, notamment son historique, son architecture, ses composants clés comme les activités, les intents, les services, ainsi que la structure d'un projet Android.

Transféré par

Mamadou Diouck Sow
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
66 vues49 pages

Android Cours 2

Ce document décrit les bases d'Android, notamment son historique, son architecture, ses composants clés comme les activités, les intents, les services, ainsi que la structure d'un projet Android.

Transféré par

Mamadou Diouck Sow
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Android: Les Bases

Assane SECK
Ingénieur-Informaticien
1
Sommaire
 Hitorique
 Architecture
 Avantage
 Dalvik VM / Android Runtime
 Composants
 Activity
 CONTENT PROVIDERS
 INTENTS
 SERVICES
 Structure projet Android
 AndroidManifest
 Versionning
 Emulateurs

2
Historique
 En 2003 était le nom d’une PME, rachetée par Google en 2005
 Objectif de OS plus intelligent: Interaction et Géolocalisation
 En Janvier 2007, Apple dévoilait l'iPhone
 En Novembre 2007 l'Open Handset Alliance (OHA) avec 35
Entreprises dont Google l’Initiateur
 Le logiciel vedette est appelé Android.

3
Architecture

4
Avantages
 Open source
Le contrat de licence pour Android respecte les principes de l'open source, c'est-à-dire que
vous pouvez à tout moment télécharger les sources et les modifier selon vos goûts

 Gratuit (ou presque)


 Facile à développer
Toutes les API mises à disposition facilitent et accélèrent grandement le travail. Ces APIs sont
très complètes et très faciles d'accès

 Facile à vendre
Le Play Store (anciennement Android Market) est une plateforme immense et très visitée ; c'est
donc une mine d'opportunités pour quiconque possède une idée originale ou utile

 Flexible
Le système est extrêmement portable, il s'adapte à beaucoup de structures différentes. Les
smartphones, les tablettes, la présence ou l'absence de clavier ou de trackball, différents
processeurs... On trouve même des fours à micro-ondes qui fonctionnent à l'aide d'Android !

 5 Ingénieux
Dalvik VM
 La plus part des téléphones portables ont des mémoires inférieures à
des ordinateurs

 JVM optimisée pour mobile

 La Dalvik VM execute de fichiers .dex, contrairement à des fichiers


.class avec une JVM normale (Compilation a chaque execution)

 Dan Bornstein et son équipe chez Google

 L’ART (Android Runtime) compilation juste à l’installation

 Dalvik est un petit village au nord de l’Islande


6
Structure d’un projet Android

7
Composants

 Activity
 Content providers
 Intents
 Services
 Broadcast Receivers
 Autres
 Stockage, services système, réseau, multimédia, GPS,
phone services,...

8
Activity
 Partie importante de l’interface graphique Android
 Peut être considéré comme un «dialogue» ou une
«fenêtre»

9
CONTENT PROVIDERS

 Niveau d’abstraction pour données stockées sur le device

 Est accessible à travers différentes applications

 L’utilisation est recommandée

10
INTENTS
 Messages système qui forment la «colle» d’Android
 Un message que l’on passe à Android pour lui dire "je
veux que tu fasses... quelque chose (Ouvrir une activité,
etc)

 Peut être utilisé pour:


 Envoyer et recevoir des event ou actions
 Changements de matériels, d’état, données entrantes,
événement,...
 Lancer des activités
 Il est possible de réagir aux intents

11
SERVICES

 Les activity ont une durée de vie courte

 Les services ont une durée de vie plus longue

 S’éxecute indépendamment d’une Activity

 Exemples:
 Mise à jour RSS
 Lecture de musique en fond

12
Autres...
 Stockage: fichiers packagé avec l’application (icones, fichiers
d’aide,...),
 bases de données et fonctionnalités pour stockage de fichier sur
support SD ou autre.
 Réseau: les devices sont souvent connectés. Android dispose de
différents moyens d’utiliser ceci au travers de sockets, HTTPClient
ou le navigateur webkit.
 Multimédia: playback et enregistrement audio/video, prise de
photos,...
 Localisation: GPS, réseau, passif...
 Services téléphoniques: appels, SMS, etc.

13
AndroidManifest.xml

 Fichier XML qui décrit l’application.

 Quels composants sont utilisés et comment sont-ils


interconnectés

 Activities

 Services

 ...

14
bin/

 Contient l’application une fois compilée

 bin/classes/ contient les classes Java

 bin/classes.dex contient l’exécutable compilé depuis les


classes Java

 bin/yourapp.ap_ contient les ressources au format ZIP

 bin/yourapp.apk est l’application effective.

15
gen/
 Code source généré par les outils Android
 Forme le lien entre les ressources et le code Java
 R.java : Ce fichier est automatiquement généré par le
SDK Android à chaque pré-compilation.
 BuildConfig.java: Sera automatiquement mis à jour lors
de la création de la version finale de l’Apk afin de
desactiver les logs.

16
libs/
 Librairies Java (JARs)

 Fichiers .so Utilisé principalement avec Ant

 Mettre toutes librairies éventuelles dans ce répertoire


pour une meilleure réorganisation

17
src/
 Code source Java de l’application

 Ce dossier contient les sources de votre application


(code JAVA) et les packages.

 com.example.projet: un package de votre application.


Vous pouvez avoir plusieurs packages dans votre
application.

 MainActivity.java : Notre activité principale dans cet


exemple.
18
res/
 Resources du projet
 Fichiers statiques package dans l’application
 res/drawable-xxx/ : Contient vos images dans les
différentes résolutions (basse, moyenne, haute et trés
haute).
 res/layout/ : spécifications interface graphique
 res/menu/ : spécifications XML pour les menus
 res/values/ : strings, dimensions, couleurs et autres
 ic_launcher.png : L’icône de votre application.
 assets : Contient des données non internationalisées qui
seront utilisées dans votre application (images, vidéos,
licence…etc).
19
Qu’est-ce le manifest ?

 L’élément racine de l’application

 Déclaration d’activités, services,...

 Comment ces différents morceaux s’interconnectent

 Exemple: launcher

20
Exemple basique de manifest

21
Element root du manifest
 Package de l’application
 Forme la base de l’application
 Il est possible de référencer relativement les classes en utilisant un point
 Example : .SampleActivity
 Le package name doit être unique. L’Android Market n’accepte pas les
 applications qui ont le même package name.
 <manifest
 xmlns:android="http://schemas.android.com/apk/res/android"
 package="com.example.projet">
 ...
 </manifest>

22
Permissions, applications et
instrumentations
 uses-permission : quelles sont les permissions que
l’application utilise ?
 permission : de quelles permissions l’application a-t-elle
besoin?
 instrumentation : code qui devrait être exécuté à
certains moments clés
 (activities, logging, JUnit, etc.)
 uses-library : librairies supplémentaires
 uses-sdk : quel SDK est utilisé?
 dernier élément important: l’élément application

23
Permissions, applications et
instrumentations

24
Element application
 Peut contenir différentes activity

 android:name classée, en partant du package name (avec


un point) ou en utilisant le nom entier

 android: label titre pour l’activity

 intent-filter: sous quelle condition l’activity peut-elle être


lancée

 action: La classe de traitement pour la condition

 category: Spécifie la catégorie de l’action


25
Element application

26
Element application
 Autres:
 receivers : des non-activités qui doivent être appelées à
un moment clé, en fonction d’un intent. Exemple:
réception d’un SMS.

 providers : Un contentProvider sert à stocker et


récupérer des données et ainsi les rendre accessibles à
toutes les applications. Partager des données entres
différentes applications. Exemple: la gestion des contacts

 services: Si votre application souhaite effectuer des


opérations ou des calculs en dehors de l’interaction
27utilisateur. Exemple: Surfer sur le net et lire son
Element uses-sdk
 Android évolue
 Chaque SDK a des nouvelles fonctions, classes, paramètres,...
 Ceux-ci ne peuvent pas être utilisés par des précédentes version SDK
 Ce tag assure que l’application est exécutée sur un device d’une certaine
version ou plus haute
 minSdkVersion: API niveau minimum supporté
 targetSdkVersion: API niveau ciblé
 maxSdkVersion: API niveau maximum supporté (optionel)

28
USES-SDK

29
Element uses-feature
 Décrit une caractéristique matérielle ou logicielle utilisée
par l’application
 Nécessaire pour indiquer quels sont les pré requis pour
une application
 Bluetooth, appareil photo,...
 Contient
 android:name : nom du feature
 android:required : si le feature doit être présent ou pas
Valeur par défaut de android:required est true

30
VERSIONNER SON APPLICATION
 Se fait sur l’élément manifest
 android:versionCode : Numéro integer incrémenté à
chaque nouvelle version
 android:versionName : Nom pour cette version
(alphanumérique)
 1.1
 2.0b
 ...

31
CIBLES/EMULATEURS
 AVD: «Android Virtual Device»
 Window-Android Virtual Device Manager

32
CIBLES/EMULATEURS
 AVD: «Android Virtual Device»
 Créez un AVD d’un API cible de votre choix

33
CIBLES/EMULATEURS: POINTS
D’ATTENTION
 Tester sur un maximum de cibles différents

 Quand une nouvelle cible est disponible, testez votre


application dessus

 Les émulateurs sont bien, mais parfois il faut mieux tester


sur un vrai téléphone

 Vitesses différentes dans émulateur (dues aux


caractéristiques de la machine et du type d’émulateur)

34
CREER UNE APPLICATION ANDROID

35
Genymotion
Genymotion
Genymotion
Genymotion
Genymotion
Genymotion
Genymotion
Genymotion

43
Genymotion

44
Genymotion

45
Genymotion

46
Genymotion

Activé le compte Genymotion depuis son email de création de compte

Lancé le genymotion qui était sur le Bureau

47
Genymotion

48
Apk location

49

Vous aimerez peut-être aussi