Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Basiert das Android-System auch auf Linux?

Basiert das Android-System auch auf Linux?

藏色散人
藏色散人Original
2023-04-20 10:25:269267Durchsuche

Das Android-System basiert auf dem Linux-System; Android ist der Name des Open-Source-Mobilbetriebssystems, das auf der von Google am 5. November 2007 angekündigten Linux-Plattform basiert. Die Plattform besteht aus einem Betriebssystem, Middleware, Benutzeroberfläche und Anwendungssoftware.

Basiert das Android-System auch auf Linux?

Die Betriebsumgebung dieses Tutorials: Linux5.9.8-System, Dell G3-Computer.

Basiert das Android-System auch auf dem Linux-System?

Einführung in das Android-Betriebssystem

Android ist der Name des Open-Source-Mobilbetriebssystems auf Basis der Linux-Plattform, das Google am 5. November 2007 angekündigt hat. Die Plattform besteht aus dem Betriebssystem, sie besteht aus Middleware, Benutzeroberfläche und Anwendungssoftware. Es übernimmt die Software-Stack-Architektur (Software-Stack, auch Software-Stack genannt) und ist hauptsächlich in drei Teile unterteilt. Die unterste Schicht basiert auf dem in der Sprache C entwickelten Linux-Kernel und stellt nur Grundfunktionen bereit. Die mittlere Schicht umfasst die Funktionsbibliothek Library und die in C++ entwickelte virtuelle Maschine. Die oberste Ebene ist verschiedene Anwendungssoftware, darunter Anrufprogramme, SMS-Programme usw. Die Anwendungssoftware wird von jedem Unternehmen entwickelt und verwendet Java als Teil des Programms.

Die ursprüngliche Bedeutung des Wortes Android bezieht sich auf „Roboter“. Später, nach der Entwicklung und Verbesserung, wurde es schrittweise auf Tablet-Computer und andere Bereiche ausgeweitet Entwickelt für mobile Endgeräte.

Systemarchitektur:

Die Systemarchitektur von Android basiert wie das Betriebssystem auf einer mehrschichtigen Architektur. Android ist in vier Schichten unterteilt, von High-Level bis Low-Level, nämlich die Anwendungsschicht, die Anwendungs-Framework-Schicht, die Systemlaufzeitschicht und die Linux-Kernel-Schicht.

1. Anwendungen

Android wird zusammen mit einer Reihe von Kernanwendungspaketen veröffentlicht, darunter Clients, SMS-Kurznachrichtenprogramme, Kalender, Karten, Browser, Kontaktverwaltungsprogramme usw. Alle Anwendungen werden in der JAVA-Sprache geschrieben.

2. Anwendungs-Framework

Entwickler haben auch vollen Zugriff auf das API-Framework, das von Kernanwendungen verwendet wird. Das Architekturdesign der Anwendung vereinfacht die Wiederverwendung von Komponenten; jede Anwendung kann ihre Funktionsblöcke veröffentlichen und jede andere Anwendung kann die veröffentlichten Funktionsblöcke verwenden (muss jedoch die Sicherheit des Frameworks einhalten). Ebenso ermöglicht der Anwendungswiederverwendungsmechanismus Benutzern das einfache Ersetzen von Programmkomponenten.

3. Systemlaufzeitbibliothek

Android enthält einige C/C++-Bibliotheken, die von verschiedenen Komponenten im Android-System verwendet werden können. Sie bieten Entwicklern Dienste über das Android-Anwendungsframework an.

4. Linux-Kernelschicht

Der Android-Kernel ist eine modifizierte Kernelversion, die auf dem Linux-Kernel basiert. Er stellt Gerätetreiber zur Unterstützung der Android-Plattform bereit.

Systemstruktur:

1. Systemkernel

Android läuft auf dem Linux-Kernel, ist aber kein GNU/Linux. Da die meisten der im Allgemeinen von GNU/Linux unterstützten Funktionen von Android nicht unterstützt werden, einschließlich Kairo, X11, Alsa, FFmpeg, GTK, Pango und Glibc usw., wurden sie entfernt. Android ersetzte Glibc durch Bionic, Cairo durch Skia, FFmpeg durch Opencore und so weiter. Um eine kommerzielle Anwendung zu erreichen, muss Android die durch die GNU GPL-Lizenz eingeschränkten Teile entfernen. Beispielsweise verschiebt Android den Treiber in den Userspace und trennt so den Linux-Treiber vollständig vom Linux-Kernel. Bionic/Libc/Kernel/ sind keine Standard-Kernel-Header-Dateien. Der Kernel-Header von Android wird mithilfe von Tools aus dem Linux-Kernel-Header generiert. Dies geschieht, um Konstanten, Datenstrukturen und Makros beizubehalten.

2. Hardware-Abstraktionsschicht

Androids HAL (Hardware-Abstraktionsschicht) kann Hardware-Treibermodule in geschlossener Quellform bereitstellen. Der Zweck von HAL besteht darin, das Android-Framework vom Linux-Kernel zu trennen, damit Android nicht zu sehr auf den Linux-Kernel angewiesen ist, um das Konzept der Kernel-Unabhängigkeit zu erreichen. Außerdem kann die Entwicklung des Android-Frameworks ohne Berücksichtigung der Treiberimplementierung erfolgen.

3. Zwischensoftware

Die Kommunikationsbrücke zwischen dem Betriebssystem und der Anwendung. Die Anwendung ist in zwei Schichten unterteilt: Funktionsschicht (Bibliothek) und virtuelle Maschine (Virtual Machine). Bionic ist die verbesserte Version von libc für Android. Android beinhaltet auch Webkit, das sogenannte Webkit ist die Engine hinter Apples Safari-Browser. Surface Flinger zeigt 2D- oder 3D-Inhalte auf dem Bildschirm an. Android nutzt die Toolchain (Toolchain) für Googles eigene BionicLibc.

Android verwendet OpenCORE als grundlegendes Multimedia-Framework. Open CORE kann in 7 Hauptblöcke unterteilt werden: PVPlayer, PVAuthor, Codec, PacketVideo Multimedia Framework (PVMF), Operating System Compatibility Library (OSCL), Common und OpenMAX.

Android verwendet Skia als Kerngrafik-Engine, gepaart mit OpenGL/ES. Die Funktionen von Skia und LinuxCairo sind gleichwertig, im Vergleich zu Linux Cairo sind die Funktionen von Skia jedoch nur rudimentär. Im Jahr 2005 wurde Skia von Google übernommen. Anfang 2007 wurde der Skia GL-Quellcode veröffentlicht. Skia ist auch die Grafik-Engine von Google Chrome.

Die Multimedia-Datenbank von Android verwendet das SQLite-Datenbanksystem. Datenbanken werden in öffentliche Datenbanken und private Datenbanken unterteilt. Benutzer können die gemeinsam genutzte Datenbank über die ContentResolver-Klasse (Column) abrufen.

Die mittlere Schicht von Android ist größtenteils in Java implementiert und verwendet eine spezielle Dalvik Virtual Machine. Die virtuelle Dalvik-Maschine ist eine „registerbasierte“ virtuelle Java-Maschine. Alle Variablen werden im temporären Register gespeichert und die Anweisungen der virtuellen Maschine sind relativ reduziert.

Die virtuelle Dalvik-Maschine kann mehrere Instanzen haben (Instanz). Jede Android-Anwendung wird mit einer eigenen virtuellen Dalvik-Maschine ausgeführt, sodass das System beim Ausführen des Programms optimiert werden kann. Die virtuelle Dalvik-Maschine führt keinen Java-Bytecode (Bytecode) aus, sondern eine Datei namens .dex-Format.

4. Sicherheitsberechtigungsmechanismus

Android selbst ist ein Betriebssystem mit getrennten Berechtigungen. Bei dieser Art von Betriebssystem läuft jede Anwendung mit einer eindeutigen Systemidentität (Linux-Benutzer-ID und Gruppen-ID). Jeder Teil des Systems verwendet außerdem seine eigene unabhängige Identifikationsmethode. Auf diese Weise isoliert Linux Anwendungen von Anwendungen und Anwendungen von Systemen.

Anwendungskomponenten:

Die vier Hauptkomponenten der Android-Entwicklung sind:

1. Aktivität: Wird zum Ausdrücken von Funktionen verwendet.

2. Dienst: Führt Dienste im Hintergrund aus und stellt keine Schnittstellenpräsentation bereit.

3. Rundfunkempfänger (BroadcastReceiver): Wird zum Empfangen von Rundfunksendungen verwendet.

4. Inhaltsanbieter: Unterstützt das Speichern und Lesen von Daten in mehreren Anwendungen, äquivalent zu einer Datenbank.

Verwandte Empfehlungen: „Linux-Video-Tutorial

Das obige ist der detaillierte Inhalt vonBasiert das Android-System auch auf Linux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Was ist Linux KDE?Nächster Artikel:Was ist Linux KDE?