Android - Architecture

Le système d'exploitation Android est une pile de composants logiciels qui est approximativement divisée en cinq sections et quatre couches principales, comme indiqué ci-dessous dans le diagramme d'architecture.

Noyau Linux

Au bas des couches se trouve Linux - Linux 3.6 avec environ 115 correctifs. Cela fournit un niveau d'abstraction entre le matériel du périphérique et il contient tous les pilotes matériels essentiels tels que la caméra, le clavier, l'affichage, etc. , qui simplifient l'interfaçage avec le matériel périphérique.

Bibliothèques

En plus du noyau Linux, il y a un ensemble de bibliothèques comprenant le moteur de navigateur Web open-source WebKit, la bibliothèque bien connue libc, la base de données SQLite qui est un référentiel utile pour le stockage et le partage de données d'application, des bibliothèques pour lire et enregistrer de l'audio et de la vidéo, SSL bibliothèques responsables de la sécurité Internet, etc.

Bibliothèques Android

Cette catégorie englobe les bibliothèques basées sur Java qui sont spécifiques au développement Android. Des exemples de bibliothèques de cette catégorie incluent les bibliothèques de cadre d'application en plus de celles qui facilitent la création d'interface utilisateur, le dessin graphique et l'accès à la base de données. Voici un résumé de certaines bibliothèques principales Android disponibles pour le développeur Android:

  • android.app - Donne accès au modèle d'application et est la pierre angulaire de toutes les applications Android.

  • android.content - Facilite l'accès au contenu, la publication et la messagerie entre les applications et les composants d'application.

  • android.database - Utilisé pour accéder aux données publiées par les fournisseurs de contenu et comprend des classes de gestion de base de données SQLite.

  • android.opengl - Une interface Java vers l'API de rendu graphique 3D OpenGL ES.

  • android.os - Fournit aux applications un accès aux services du système d'exploitation standard, y compris les messages, les services système et la communication inter-processus.

  • android.text - Utilisé pour rendre et manipuler du texte sur un écran de périphérique.

  • android.view - Les blocs de construction fondamentaux des interfaces utilisateur des applications.

  • android.widget - Une riche collection de composants d'interface utilisateur prédéfinis tels que des boutons, des étiquettes, des vues de liste, des gestionnaires de disposition, des boutons radio, etc.

  • android.webkit - Un ensemble de classes destiné à permettre aux capacités de navigation Web d'être intégrées aux applications.

Après avoir couvert les bibliothèques principales basées sur Java dans l'environnement d'exécution Android, il est maintenant temps de porter notre attention sur les bibliothèques basées sur C / C ++ contenues dans cette couche de la pile de logiciels Android.

Runtime Android

Il s'agit de la troisième section de l'architecture et disponible sur la deuxième couche à partir du bas. Cette section fournit un composant clé appeléDalvik Virtual Machine qui est une sorte de machine virtuelle Java spécialement conçue et optimisée pour Android.

La VM Dalvik utilise les fonctionnalités principales de Linux telles que la gestion de la mémoire et le multi-threading, qui sont intrinsèques au langage Java. La VM Dalvik permet à chaque application Android de s'exécuter dans son propre processus, avec sa propre instance de la machine virtuelle Dalvik.

Le moteur d'exécution Android fournit également un ensemble de bibliothèques de base qui permettent aux développeurs d'applications Android d'écrire des applications Android à l'aide du langage de programmation Java standard.

Cadre d'application

La couche Application Framework fournit de nombreux services de niveau supérieur aux applications sous la forme de classes Java. Les développeurs d'applications sont autorisés à utiliser ces services dans leurs applications.

Le framework Android comprend les services clés suivants -

  • Activity Manager - Contrôle tous les aspects du cycle de vie de l'application et de la pile d'activités.

  • Content Providers - Permet aux applications de publier et de partager des données avec d'autres applications.

  • Resource Manager - Fournit un accès à des ressources intégrées sans code telles que des chaînes, des paramètres de couleur et des dispositions d'interface utilisateur.

  • Notifications Manager - Permet aux applications d'afficher des alertes et des notifications à l'utilisateur.

  • View System - Un ensemble extensible de vues utilisé pour créer des interfaces utilisateur d'application.

Applications

Vous trouverez toutes les applications Android dans la couche supérieure. Vous écrirez votre application pour être installée sur cette couche uniquement. Des exemples de telles applications sont les livres de contacts, le navigateur, les jeux, etc.