Introduction et Android Studio

publicité
Développement mobile - Android
Introduction et Android Studio
De nos jours les applications mobiles sont monnaie courante, il existe de nombreux
périphériques destinés à les utiliser :
- Smartphone
- Tablette
- Appareil photo
- Montre
- Télévision…
Il existe plusieurs méthodes pour développer de telles applications :
1. Le développement natif :
Il s’agit de développer au travers d’un IDE (comme vu précédemment) en Java
avec, par exemple, Eclipse pour Android ou Android Studio.
En objectif C pour IOS et en C# pour Windows Phone.
2. Le développement hybride :
Ce sont des solutions qui permettent, avec un seul code, de compiler sur les
différentes plateformes. La solution la plus connue étant Titanium Platform qui
permet d'écrire une application en utilisant du JavaScript.
3. Le développement HTML :
L’astuce consiste à développer une application en utilisant les langages web
classiques comme HTML, CSS et JavaScript. On va alors pouvoir compiler une
application qui ne sera en fait qu'une WebView (un élément qui peut contenir
une page Web) dans laquelle on va placer notre application créée en HTML.
Architecture Android :
Le langage de programmation utilisé est le Java, les applications Android s’appuient
également énormément sur l’utilisation de fichiers xml. Un fichier xml est un fichier qui est
structuré en niveaux, il est caractérisé par l’utilisation de balises (encadrées par des chevrons
« < » « > »). Cette syntaxe est indépendante du langage de programmation utilisé.
Le noyau (linux) permet :
- La gestion de la mémoire
- La gestion des processus
- La gestion du matériel (écran, clavier)
- La gestion des capteurs (appareil photo, GPS, accéléromètre)
Android dispose d’un moteur d'exécution (runtime), il offre des services d'exécution de
programmes tels que :
- Les entrées-sorties
- L'arrêt des processus
- L'utilisation des services du système d'exploitation
- Le traitement des erreurs de calcul
- La génération d'événements
- L'utilisation de services offerts dans un autre langage de programmation
Android n'utilise pas une machine virtuelle Java mais une machine virtuelle spécialement
étudiée pour les systèmes embarqués qui s'appelle « Dalvik ».
À partir de Lollipop Version 5, Android dispose d‘ART qui compile l'application au moment
du déploiement (Ahead-of-time compilation).
La couche Application Framework fournit de nombreux services de haut niveau à des
applications sous la forme de classes Java :
- Activity Manager, contrôle tous les aspects du cycle de vie de l'application et de l'activité
pile.
- Fournisseurs de contenu, permet aux applications de publier et de partager des données
avec d'autres applications.
Android Studio
Android Studio nécessite l’installation et l’utilisation d’un SDK (Software Development Kit)
Android. Le téléchargement du SDK est normalement proposé lors du premier lancement de
l’IDE mais il est trouvable facilement sur internet.
Une fois le logiciel prêt à être
utiliser il est possible de créer un
nouveau projet. Durant cette opération il
est demandé divers paramètres comme
le nom, le répertoire ou l’auteur du
projet. L’information importante à
prendre en compte et la version Android
minimum nécessaire pour faire tourner
l’application. Une version trop ancienne
risque de pas supporter certains
comportements mais à l’inverse une
version trop récente ne sera pas
accessible par tous les utilisateurs (ou le
plus grand nombre tout du moins). Il est
donc primordial de bien se renseigner
sur le nombre d’utilisateurs sur le
marché ayant la version choisie.
Organisation d’un projet Android et de l’IDE
Sur le haut de gauche de l’écran se situe un onglet
regroupant l’ensemble des éléments composant le projet.
On retrouve dans l’exemple tous les éléments d’un projet
type :
- Un manifest : Il définit le nom du package de
l’application (qui sert d’identifiant unique),
tous les composants de l'application
(Activities, Services, BroadCast Receivers,
Content providers), dans quels processus les
composants de l'application seront contenus,
les informations contenant les versions de
l'Android API requis, les permissions
nécessaires et les librairies utilisées par
l’application.
- Des fichiers Java (classes, interfaces, etc…).
- Les ressources :
 Les fichiers xml, définissant les
animations
 Les images
 Les fichiers audio
- Les fichiers xml, servant à la mise en forme.
- Les fichiers xml, servant à stocker des
données comme des styles ou divers valeurs en
fonction des langues par exemple.
- Des polices d’écriture.
Permissions :
Comme expliqué plus haut le manifest est un élément central du projet. Il définit énormément
de choses et doit être mise à jour en permanence pour que l’application puisse fonctionner
correctement. Par exemple il est important d’ajouter les permissions nécessaires pour pouvoir
utiliser les fonctionnalités suivantes :
- Géolocalisation (GPS) :
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
-
Access au matériel :
<uses-permission
<uses-permission
<uses-permission
<uses-permission
<uses-permission
-
android:name="android.permission.BLUETOOTH" />
android:name="android.permission.CAMERA" />
android:name="android.permission.FLASHLIGHT" />
android:name="android.permission.VIBRATE" />
android:name="android.permission.BATTERY_STATS" />
Audio :
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
-
Réseau :
<uses-permission
<uses-permission
<uses-permission
<uses-permission
<uses-permission
-
Envoi et réception de SMS/MMS :
<uses-permission
<uses-permission
<uses-permission
<uses-permission
-
android:name="android.permission.ACCESS_NETWORK_STATE" />
android:name="android.permission.CHANGE_NETWORK_STATE" />
android:name="android.permission.ACCESS_WIFI_STATE" />
android:name="android.permission.CHANGE_WIFI_STATE" />
android:name="android.permission.INTERNET" />
android:name="android.permission.READ_SMS" />
android:name="android.permission.RECEIVE_MMS" />
android:name="android.permission.RECEIVE_SMS" />
android:name="android.permission.RECEIVE_WAP_PUSH" />
Modification de paramètres :
<uses-permission android:name="android.permission.SET_ORIENTATION" />
<uses-permission android:name="android.permission.SET_TIME_ZONE" />
<uses-permission android:name="android.permission.SET_WALLPAPER" />
-
Téléphonie :
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.CALL_PRIVILEGED" />
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/>
-
Accès aux données personnelles :
<uses-permission
<uses-permission
<uses-permission
<uses-permission
<uses-permission
<uses-permission
android:name="android.permission.READ_CONTACTS" />
android:name="android.permission.WRITE_CONTACTS" />
android:name="android.permission.READ_CALENDAR" />
android:name="android.permission.WRITE_CALENDAR" />
android:name="android.permission.READ_HISTORY_BOOKMARKS"/>
android:name="android.permission.WRITE_HISTORY_BOOKMARKS"/>
Ressources :
L’ensemble des ressources du projet sont à placer dans le dossier « res ». Ce dernier est
décomposé en sous-dossier comme le montre l’image ci-dessus. Chaque dossier correspond à
un type de ressources mais il est possible d’en créer de nouveaux selon les besoins du
développeur (anim pour les fichiers xml décrivant les animations, etc…).
À l’issue de tous ces fichiers de description XML, l’API génère automatiquement une classe
statique (appelée R) dans laquelle un identifiant est créé pour chacun des éléments trouvés :
- Fichiers (images, textes..) placés dans drawable , raw et xml
- Éléments d'interface définis dans les fichiers placés dans layout et menu
- Valeurs définies dans les fichiers placés dans values.
- Animations définies dans les fichiers placés dans anim
Dans le code en java, on accède alors à ces ressources par leur identifiant dans cette classe R
sous la forme : R.id.nomDeLaRessource.
Il est cependant nécessaire de définir à quel layout (fichier xml de mise en forme) le fichier
Java fait référence : setContentView(R.layout.nomLayout);
Téléchargement