SL4A - Architecture Android

La pile logicielle Android comprend différentes couches, chaque couche manifestant un comportement bien défini et fournissant des services spécifiques à la couche située au-dessus. La figure suivante présente une architecture générale d'Android avec ses principaux composants.

Noyau Linux

Android est construit sur le code du noyau Linux modifié pour fonctionner sur des systèmes embarqués par rapport au système Linux traditionnel. Les pilotes matériels de nombreux périphériques courants sont intégrés au noyau, garantissant ainsi la portabilité des périphériques. Il est basé sur un modèle d'autorisation sécurisé basé sur l'utilisateur, qui empêche une application de lire les informations d'une autre application ou d'interférer avec son exécution (par exemple CPU, mémoire, périphériques, etc.).

L'accès basé sur l'ID de groupe aux fonctionnalités réseau et Bluetooth, l'enregistreur, l'alarme, la gestion de l'alimentation, le tueur de mémoire faible, les mécanismes Binder IPC sont quelques améliorations notées du noyau.

Bibliothèques et runtime

Cela forme la deuxième couche de l'architecture. Il comprend un ensemble de bibliothèques C, C ++ optimisées pour le matériel, également appelées couche native. Les exemples incluent les bibliothèques de médias, SQLite, SSL, Bionic, WebKit, etc.

Le Runtime Android comprend deux composants différents: la VM Dalvik et les bibliothèques principales. La VM Dalvik fournit un environnement d'exécution pour les applications sur la plate-forme Android. L'ensemble des bibliothèques principales fournit la plupart des fonctionnalités disponibles dans les API Java.

Cadre d'application

Cette couche rend disponibles les bibliothèques en tant que services aux applications. Certains des composants les plus importants de cette couche incluent Location Manager, Resource Manager, Activity Manager et Notification Manager.

Applications

Par défaut, Android est livré avec un riche ensemble d'applications, y compris le navigateur, le programme SMS, le calendrier, le gestionnaire de contacts, les cartes, etc. Google Play propose des alternatives à ces applications, si l'utilisateur le souhaite.

Blocs de construction

Une application peut s'interfacer avec le système avec quatre blocs fonctionnels. Ils sont les suivants -

  • Activities- Les activités représentent un écran unique que l'utilisateur voit ou avec lequel il interagit visuellement. Par exemple, une application de messagerie peut avoir une activité qui affiche une liste de nouveaux e-mails, une autre activité pour rédiger un e-mail et une autre activité pour lire des e-mails.

  • Services- Une majorité du traitement est effectué par ces services pour votre application. C'est la logique derrière l'interface utilisateur. Par exemple, un service peut lire de la musique en arrière-plan pendant que l'utilisateur est dans une autre application, ou il peut récupérer des données sur le réseau sans bloquer l'interaction de l'utilisateur avec une activité.

  • Broadcast Receivers- Un composant qui peut être enregistré pour écouter les événements système ou d'application et émettre des notifications à ce sujet. Une instance de diffusion provenant du système est un 'low battery notification'alors qu'une diffusion au niveau de l'application pourrait être un'download successful'notification.

  • Content Providers- Un fournisseur de contenu gère et vous aide à partager des données entre plusieurs applications. Par exemple, un fournisseur de contenu peut être utilisé pour partager les données de contacts.

Ces composants interagissent les uns avec les autres via des messages appelés Intents.