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 sagit de développer au travers dun 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 :
Lastuce 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 utili est le Java, les applications Android sappuient
également énormément sur lutilisation de fichiers xml. Un fichier xml est un fichier qui est
structuré en niveaux, il est caractérisé par lutilisation 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 dun 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 linstallation et lutilisation dun SDK (Software Development Kit)
Android. Le téléchargement du SDK est normalement proposé lors du premier lancement de
lIDE 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 lauteur du
projet. Linformation importante à
prendre en compte et la version Android
minimum nécessaire pour faire tourner
lapplication. Une version trop ancienne
risque de pas supporter certains
comportements mais à linverse 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 dutilisateurs sur le
marché ayant la version choisie.
Organisation dun projet Android et de lIDE
Sur le haut de gauche de lécran se situe un onglet
regroupant lensemble des éléments composant le projet.
On retrouve dans lexemple tous les éléments dun projet
type :
- Un manifest : Il définit le nom du package de
lapplication (qui sert didentifiant 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 lapplication puisse fonctionner
correctement. Par exemple il est important dajouter 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 android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission 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 android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
- Envoi et réception de SMS/MMS :
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_MMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission 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 android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="android.permission.READ_HISTORY_BOOKMARKS"/>
<uses-permission android:name="android.permission.WRITE_HISTORY_BOOKMARKS"/>
Ressources :
Lensemble des ressources du projet sont à placer dans le dossier « res ». Ce dernier est
décomposé en sous-dossier comme le montre limage ci-dessus. Chaque dossier correspond à
un type de ressources mais il est possible den 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);
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !