Les fondamentaux Android
Article posté le 21-07-2014 dans la catégorie
Android
Attention, le contenu cet article est peut-être obsolète !
Les bases à connaître concernant le développement sous AndroidLe développement sous Android est devenu de plus en plus ouvert tout en restant assez complexe pour les non initiés. Voici donc un petit memento des éléments à connaître avant le grand saut.
1- Qu'est-ce qu'Android ?
Pour faire simple, il s'agit d'un système d'exploitation, qui tourne avec un noyau Linux, utilisant des blibliothèques C++, avec par dessus une couche de ce qui s'apparente à du Java. Je dis "à ce qui s'apparente", car Oracle, détenteur de Java, et Google, détentrice de l'entreprise Android, créée en 2003, et à l'origine du projet*. En effet, Oracle reproche à Google de ne pas respecter les spécifications du language Java (à l'heure où j'écris ces lignes, Oracle vient de gagner en appel). Vous devez donc comprendre que le développeur lambda codera dans ce qui ressemble très fortement à du Java, avec des spécificités. Dans des cas poussés, il pourra aussi coder en C++, mais ça, je ne l'aborderai pas.
*Cependant, Android n'est pas que Google. Android est le fruit de l'Open Handset Alliance qui compte environ 80 membres.
2- Comment cela fonctionne ?
L'image ci-dessus, issue de la documentation officielle, montre les composants de l'architecture Android.
Ce que vous devez savoir, c'est que lorsque vous codez en Java puis que vous compilez, le compilateur va générer le fameux bytecode. Ce code, la machine virtuelle Java va l'interpréter en language machine. C'est ce qui permet de faire tourner Java sur toutes les plate-fromes.
Sur Android, c'est le même système sauf que le Java utilisé est une variante du Java SE amputé de certaines fonctions qui n'ont rien à faire sur un mobile. La machine virtuelle a ainsi été adaptée, cette dernière se nomme ici Dalvik.
3- Arobrescence du projet
Dans votre projet Android, vous avez une belle petite liste de dossiers. Voici les prinicpaux éléments à connaître:
- src : Sources : contient vos packages qui contiennet eux-mêmes vos classes Java
- res : Ressources : contient les éléments de votre application : images, valeurs diverses :
- drawable : Images et éléments graphique de l'application. Il existe plusieurs répertoires en fonction de la taille de l'écran du terminal (voir plus bas)
- layout : contient des fichiers .xml contenant eux-mêmes les informations sur la structure graphique de votre application
- values : d'autres fichiers xml contenant des valeurs de référence. Par exemple si dans votre code Java vous demandez à afficher la chaine @Toto, Anrdoid ira chercher cette valeur dans string.xml.
A savoir aussi :
- A la racine du projet, se trouve un fichier AndroidManifest.xml : il contient la configuration de votre application
- Dans le répertoire gen, vous trouverez un fichier R.java. Il contient la référence à chacun des élements que vous créez : image, layouts... C'est à ce fichier que vous ferez appel pour utiliser ces éléments. Le fichier R.java ne doit pas être modifié manuellement, c'est votre IDE qui s'en occupe tout seul.
Concernant le répertoire res, voici ce qui est conseillé :
- un répertoire drawable-hdpi (Haute définition)
- un répertoire drawable-mdpi (Moyennedéfinition)
- un répertoire drawable-ldpi (Basse définition)
- un répertoire layout (Apparence en mode portait)
- un répertoire layout-land (Apparence en mode paysage)
4- Un peu de vocabulaire
Voici les mot-clés que vous devez connaîte afin de ne pas être trop perdu :
- Widget : C'est trompeur. Sur Android comme ailleurs un Widget est un gadget affichant des informations sur le bureau. Mais dans le cadre du développement Android, il s'agit d'éléments visuels, comme une zone de saisie, un bouton... Chaque widget possède plusieurs attributs XML et méthodes utilisables dans le code Java.
- Vues : il s'agit d'une zone où l'on affiche des informations, elle contient par exempel des widgets.
- Layout : contient une vue : architecture de cette dernière.
- Fragment : Un layout peut appeler plusieurs vues (découpage en zones), il s'agit alors de fragments.
- Activité : il s'agit d'une classe Java contenant le code à exécuter, pour l'utilisateur c'est une fenêtre proposant une tâche à accomplir. Les activités ont souvent une interface graphique différente les unes des autres. L'application en peut en afficher qu'une seule à la fois. Chaque activité à trois états:
- active ou running
- paused
- stopped
- Context : Chaque activité contient des informations sur l'état actuel de l'application : on appelle cela le Context. A a tendance à résumé par Acitvité = Context + Code + Layout et Vues.
- Intent : Il s'agit d'un agent chargé de la communication entre composant du système Andoid. Par exemple dans votre appli, vous voulez appelez quelqu'un, un intent va se charger de lancer l'application d'appel.
- Toast : Widget à part qui permet d'afficher un message sans avoir à créer de vue. Par exemple: batterie faible.
Pour chacune des notions vues ici, viendront des petits tutoriels.
Cet article vous a plu? Découvrez d'autres articles :