Accueil / Articles PiApplications. / La plate-forme Android

Présentation générale de la plate-forme Android.

Qu'est-ce qu'Android ? On pourrait résumer Android par Sun Microsystems en avait rêvé, Google l'a fait !

Plus sérieusement, Android est une plate-forme logicielle complète destinée à équiper les appareils mobiles à faible ressources comme les smartphones, les tablettes mais aussi les équipements multimédia comme la télévision ou encore les équipements dits "connectés" et faisant partie de l'équipement individuel (montre, etc.). Ces appareils ont de nombreux périphériques en commun comme la téléphonie, l'objectif de caméra et photo, une connexion USB, etc. Android fournit les piles logicielles nécessaires au fonctionnement de tous ces périphériques.

Par plate-forme logicielle complète, il faut comprendre système d'exploitation, machine virtuelle et logiciels élémentaires.

Le système d'exploitation est un micro noyau Linux adapté au type de microprocesseur qui équipe l'appareil. Ce système d'exploitation est complété des pilotes de périphériques adaptés au matériel ainsi qu'un certain nombre de librairies en code C compilé. Pour vous en convaincre, il existe de nombreuses applications de "terminal" gratuites qui permettent d'ouvrir une session sur vos appareils Android. Vous pourrez alors y taper des commandes Linux et vous rendre compte que le noyau Linux est assez complet. Même des commandes comme top sont disponibles.

Au dessus de ce système d'exploitation enrichi, s'exécute une machine virtuelle Java (JVM). Cette JVM est équipée de librairies qui font le lien entre le système d'exploitation d'une part et les pilotes de périphériques ou les piles logicielles installées d'autre part.

La force d'Android provient sans aucun doute du fait qu'il s'agit d'une plate-forme "Libre" (noyau Linux sous licence GNU et JVM sous licence Apache). Cette dernière licence permet aux constructeurs de matériels d'effectuer les adaptations de logiciel nécessaires à leurs produits. La communauté du "Libre" a bénéficié des travaux d'amélioration du noyau Linux pour Android (intégrés à partir de la version 3.3).

La JVM initiale (nommée Dalvik) produit un byte-code différent de celui de Java. Le code source Java et compilé en byte-code Java puis un outil du SDK Android le transforme en fichiers dex Dalvik. Les librairies graphiques J2SE (AWT et Swing) du monde Java ne sont pas utilisables. Android fournit ses propres librairies graphiques. Ces librairies permettent de construire les interfaces de façon déclarative (façon FXML [JavaFX] ou XAML [WFC]).

Jusque là, Android est une amélioration "standardisée" de technologies existantes. La grande innovation concerne la dynamique de fonctionnement des applications et leur gestion par le système. Les applications sont empilées et c'est celle qui est sur le haut de la pile qui accède aux périphériques de communication avec l'utilisateur. Il n'y a donc pas de multi fenêtrage mais un partage de certaines ressources. Tout ceci se fait selon un mécanisme événementiel étendu.

Pour Android 4.4 (Kitcat), Google a développé ART(Android RunTime) qui améliore la JVM Dalvik mais en est totalement distincte. Android 5.0 voit la fin de Dalvik au profit d'ART (2014). Avec ART les applications (fichiers [.apk]) ne sont plus lancées directement. Elles sont décompressées puis exécutées via de nouvelles API. Bien que leur taille augmente de 20 à 30% les gains en performances sont significatifs en raison de la baisse des opérations d'entrées/sorties. Ceci a un deuxième avantage en terme de consommation car la mémoire vive consomme peu alors que les opérations d'entrées/sorties épuisent la batterie.

Il est possible de déployer des applications écrite en C/C++ ou en Java sur les appareils dotés d'Android. Toutefois, ces applications doivent se conformer à une spécification d'architecture et suivre un processus particulier de déploiement.

(c) PiApplications 2016