Android - Architektur

Das Android-Betriebssystem ist ein Stapel von Softwarekomponenten, der grob in fünf Abschnitte und vier Hauptschichten unterteilt ist, wie unten im Architekturdiagramm gezeigt.

Linux Kernel

Am Ende der Ebenen befindet sich Linux - Linux 3.6 mit ungefähr 115 Patches. Dies bietet eine Abstraktionsebene zwischen der Gerätehardware und enthält alle wichtigen Hardwaretreiber wie Kamera, Tastatur, Anzeige usw. Außerdem übernimmt der Kernel alle Dinge, in denen Linux wirklich gut ist, wie z. B. Netzwerke und eine Vielzahl von Gerätetreibern , die die Schnittstelle zur Peripherie-Hardware entlasten.

Bibliotheken

Neben dem Linux-Kernel gibt es eine Reihe von Bibliotheken, darunter die Open-Source-Webbrowser-Engine WebKit, die bekannte Bibliothek libc und die SQLite-Datenbank, die ein nützliches Repository für die Speicherung und gemeinsame Nutzung von Anwendungsdaten darstellt, Bibliotheken zum Abspielen und Aufzeichnen von Audio und Video sowie SSL Bibliotheken, die für die Internetsicherheit usw. verantwortlich sind.

Android-Bibliotheken

Diese Kategorie umfasst die Java-basierten Bibliotheken, die für die Android-Entwicklung spezifisch sind. Beispiele für Bibliotheken in dieser Kategorie sind die Anwendungsframework-Bibliotheken sowie solche, die das Erstellen von Benutzeroberflächen, das Zeichnen von Grafiken und den Datenbankzugriff erleichtern. Eine Zusammenfassung einiger wichtiger Android-Kernbibliotheken, die dem Android-Entwickler zur Verfügung stehen, lautet wie folgt:

  • android.app - Bietet Zugriff auf das Anwendungsmodell und ist der Eckpfeiler aller Android-Anwendungen.

  • android.content - Erleichtert den Zugriff auf Inhalte, das Veröffentlichen und das Versenden von Nachrichten zwischen Anwendungen und Anwendungskomponenten.

  • android.database - Wird für den Zugriff auf Daten verwendet, die von Inhaltsanbietern veröffentlicht wurden, und umfasst SQLite-Datenbankverwaltungsklassen.

  • android.opengl - Eine Java-Schnittstelle zur OpenGL ES 3D-Grafik-Rendering-API.

  • android.os - Bietet Anwendungen Zugriff auf Standard-Betriebssystemdienste, einschließlich Nachrichten, Systemdienste und Kommunikation zwischen Prozessen.

  • android.text - Dient zum Rendern und Bearbeiten von Text auf einer Geräteanzeige.

  • android.view - Die grundlegenden Bausteine ​​von Anwendungsbenutzeroberflächen.

  • android.widget - Eine umfangreiche Sammlung vorgefertigter Komponenten der Benutzeroberfläche wie Schaltflächen, Beschriftungen, Listenansichten, Layout-Manager, Optionsfelder usw.

  • android.webkit - Eine Reihe von Klassen, mit denen Webbrowsing-Funktionen in Anwendungen integriert werden können.

Nachdem wir die Java-basierten Kernbibliotheken in der Android-Laufzeit behandelt haben, ist es jetzt an der Zeit, unsere Aufmerksamkeit auf die C / C ++ - basierten Bibliotheken zu lenken, die in dieser Schicht des Android-Software-Stacks enthalten sind.

Android-Laufzeit

Dies ist der dritte Abschnitt der Architektur und auf der zweiten Ebene von unten verfügbar. Dieser Abschnitt enthält eine Schlüsselkomponente namensDalvik Virtual Machine Dies ist eine Art Java Virtual Machine, die speziell für Android entwickelt und optimiert wurde.

Die Dalvik VM nutzt Linux-Kernfunktionen wie Speicherverwaltung und Multithreading, die in der Java-Sprache enthalten sind. Mit der Dalvik-VM kann jede Android-Anwendung in einem eigenen Prozess mit einer eigenen Instanz der virtuellen Dalvik-Maschine ausgeführt werden.

Die Android-Laufzeit bietet auch eine Reihe von Kernbibliotheken, mit denen Entwickler von Android-Anwendungen Android-Anwendungen mit der Standard-Programmiersprache Java schreiben können.

Anwendungsframework

Die Application Framework-Schicht bietet Anwendungen in Form von Java-Klassen viele übergeordnete Dienste. Anwendungsentwickler dürfen diese Dienste in ihren Anwendungen nutzen.

Das Android-Framework enthält die folgenden Schlüsseldienste:

  • Activity Manager - Steuert alle Aspekte des Anwendungslebenszyklus und des Aktivitätsstapels.

  • Content Providers - Ermöglicht Anwendungen, Daten zu veröffentlichen und mit anderen Anwendungen zu teilen.

  • Resource Manager - Bietet Zugriff auf nicht in Code eingebettete Ressourcen wie Zeichenfolgen, Farbeinstellungen und Layouts der Benutzeroberfläche.

  • Notifications Manager - Ermöglicht Anwendungen, dem Benutzer Warnungen und Benachrichtigungen anzuzeigen.

  • View System - Eine erweiterbare Reihe von Ansichten, die zum Erstellen von Anwendungsbenutzeroberflächen verwendet werden.

Anwendungen

Sie finden alle Android-Anwendungen auf der obersten Ebene. Sie schreiben Ihre Anwendung so, dass sie nur auf dieser Ebene installiert wird. Beispiele für solche Anwendungen sind Kontaktbücher, Browser, Spiele usw.