Actualité Android
bann aa

ANDROID : la structure de l'OS de Google expliquée simplement

par
Source: Google Android

Android… Un nom prononcé par tous aujourd’hui. Android est partout, sur les smartphones, les tablettes, les TV, beaucoup de sites spécialisés en parlent, les gens également. Mais enfin, que savons-nous réellement d’Android ?

3. Bibliothèques

Android possède de nombreuses bibliothèques natives (comparables au DLL sous Windows). Elles fournissent un accès direct aux ressources du système et forment une couche d’abstraction permettant le fonctionnement du framework d’Android. C’est en quelque sorte la « base » de l’ensemble du système au niveau supérieur.

Ces bibliothèques sont codées en C/C++. Une des plus importantes est la bibliothèque nommée Libc. Celle-ci n’a rien avoir avec la GNU Libc que les utilisateurs de Linux connaissent. Google a développé sa propre bibliothèque C appelée Bionic Libc. Elle n’intègre pas l’ensemble des fonctions POSIX. Ils ont donc « allégé » cette bibliothèque. Ainsi, elle ne prend en charge que l’architecture processeur x86 et ARM. En outre, elle possède des spécifications propres à la machine virtuelle Dalvik qui est incompatible avec la norme POSIX.

Les autres bibliothèques sont moins importantes pour la compréhension de ce dossier. Google en a implémenté certaines comme SQLite, FreeType, ou Webkit, et en a créé d’autres plus spécifiques à Android en particulier le Media Framework. Cette bibliothèque gère tout ce qui se rapporte aux données multimédia. 

Le Surface Manager consiste en un ensemble de fonctions permettant d’afficher des éléments à l’écran. C’est l’équivalent d’un serveur X pour un système Linux.

lib

 

4. Dalvik

Entre les bibliothèques et le framework se situe la machine virtuelle « Dalvik ». Attention, il ne s’agit pas d’une machine virtuelle Java. Dalvik exécute du bytecode qui est créé à partir de programmes écrits en Java. Les programmes compilés sont créés au format Dalvik exécutable (.dex) via l’outil dx intégré au SDK.

Cependant, Dalvik est comparable à une machine virtuelle Java dans son mode de fonctionnement à ceci près que Dalvik utilise des registres et non une pile. 

Dalvik propose 30 % d’instructions en moins qu’une JVM classique, mais avec des instructions 35 % plus grandes. Il en résulte une charge de travail moins importante, et le temps d’exécution est deux fois plus rapide qu’avec des machines Java standard.

Pour économiser aussi de la mémoire, Dalvik a été conçu pour gérer plusieurs processus et partager la bibliothèque principale entre ces processus. Tout est fait pour économiser le plus de cycles processeur.

Enfin, depuis la version 2.3 d’Android, Dalvik possède un « ramasse-miettes » permettant une gestion du multitâche accrue.

Dalvik est très lié au framework, via de nombreux « liens », ce que vous allez voir dans la partie qui suit.

Commenter 6 commentaires

Troufiniou
Très bon dossier ! Mais j'ai juste une question, le SDK ne permet pas d'avoir des accès au Kernel lors de développement d'applications ? Elle permet juste un accès au Framework c'est ça ?
Signaler Citer
eykxas
Troufiniou Wrote:Très bon dossier ! Mais j'ai juste une question, le SDK ne permet pas d'avoir des accès au Kernel lors de développement d'applications ? Elle permet juste un accès au Framework c'est ça ?


Comme tu l'as fait remarquer, le sdk ne donne accès qu'au framework, mais il faut aussi savoir ce qu'est que le framework. Car dans Android, le framework désigne deux choses :

Le Framework, une partie de l'environnement d'execution

et le framework Android, qui est l'environnement de programmation (donc le sdk, souvent associé à eclipse).

Le noyau n'est pas accessible sauf si le bootloader du téléphone est débloqué ou que le fabriquant a mis à disposition ses outils concernant le kernel.
Signaler Citer
eykxas
Oui c'est possible (en théorie), mais je vous demanderai de poser ces questions sur le forum, pas ici.

Nous sommes ici pour parler du dossier, et pour moi, d'avoir des retours pour parfaire mes prochains sujets.
Signaler Citer