Tests und Bewertungen

Android-Betriebssystem. Was ist Android? Sie funktionieren auf der Android-Plattform

Artikel und Lifehacks

Schon heute ist es schwierig, jemanden zu finden, der sich nicht gerne mit „intelligenter“ Technologie umgeben möchte. Der Satz „Ohne Telefon ist wie ohne Hände“ hört man immer häufiger und ein Leben ohne Player, Laptop oder andere beliebte Gadgets ist generell nicht mehr vorstellbar.

Daher sollte jeder über die neuen Produkte auf dem modernen Elektronikmarkt Bescheid wissen. Beispielsweise weiß nicht jeder, was die Android-Plattform ist, aber wir werden versuchen, es herauszufinden.

Was ist Android?

  • Android ist ein Betriebssystem, das ein mobiles Gerät (Telefon, Tablet-Computer, Smartphone) steuern kann. Die Android-Plattform wurde auf Basis des Linux-Kernels entwickelt.
  • Dies geschah aufgrund der Tatsache, dass Google im Jahr 2005 Android Inc. kaufte, es zu seiner Tochtergesellschaft machte und mit der Produktion gleichnamiger Plattformen für mobile Geräte begann. Seitdem hat sich die Plattform nur weiterentwickelt.
  • Android veröffentlicht sehr oft neue Versionen seines Programms. Bemerkenswert ist die Tatsache, dass die Anfangsbuchstaben des jeweiligen Namens neue Version entsprechen den Buchstaben des lateinischen Alphabets.
  • Heute steht die Android-Plattform weltweit an zweiter Stelle, gleich nach der Bedienung iOS-System, das für das iPhone entwickelt wurde.

Wozu dient Android?

  • Wie Sie wissen, ist das Betriebssystem das „Gehirn“ jedes elektronischen Geräts, das für die Ausführung aller menschlichen Befehle erforderlich ist.
  • Dementsprechend ist ein Android ein virtueller Roboter, der in einem mobilen Gerät sitzt und für die Ausführung aller in diesem Gerät ablaufenden Prozesse verantwortlich ist.
  • Der Vorteil dieser Plattform besteht darin, dass Android über eine praktische und sehr intuitive Benutzeroberfläche sowie ein flexibles Multitasking-System verfügt, mit dem Sie mehrere Anwendungen gleichzeitig ausführen und mit Einstellungen experimentieren können.
  • Unter anderem bieten zahlreiche, speziell für die Android-Plattform erstellte Anwendungen den zufriedenen Nutzern dieses Systems wahrlich grenzenlose Möglichkeiten.
  • Schließlich können Sie mit Hilfe dieser Anwendungen Einkäufe bezahlen, Fotos machen, Filme schauen oder Bücher lesen.
  • Nachdem wir verstanden haben, was Android ist, können wir daraus schließen, dass diese Plattform dafür geschaffen wurde kreative Menschen, denn zwei identische Mobilgeräte können völlig unterschiedlich aussehen.
  • Mit Android haben Sie immer alles dabei – einen persönlichen Fitnesstrainer, einen Arzt, ein Spielzeug oder einen Fernseher – und machen das menschliche Leben so angenehm wie möglich.

Haben Sie sich jemals gefragt, wie Fastboot oder ADB funktionieren? Oder warum ein Smartphone unter ist Android-Steuerung fast unmöglich in einen Ziegelstein zu verwandeln? Oder vielleicht wollten Sie schon lange wissen, wo die Magie des Xposed-Frameworks liegt und warum die Boot-Skripte /system/etc/init.d benötigt werden? Was ist mit der Wiederherstellungskonsole? Ist dies Teil von Android oder eine Sache für sich und warum eignet sich die regelmäßige Wiederherstellung nicht für die Installation von Firmware von Drittanbietern? Antworten auf all diese und viele weitere Fragen finden Sie in diesem Artikel.

So funktioniert Android

Informieren Sie sich über versteckte Möglichkeiten Softwaresysteme Sie können dies tun, indem Sie das Funktionsprinzip verstehen. In einigen Fällen ist dies schwierig, da der Systemcode möglicherweise geschlossen ist. Im Fall von Android können wir jedoch das gesamte System in- und auswendig untersuchen. In diesem Artikel werde ich nicht auf alle Nuancen von Android eingehen und mich nur darauf konzentrieren, wie das Betriebssystem startet und welche Ereignisse in der Zeit zwischen dem Drücken des Netzschalters und dem Erscheinen des Desktops stattfinden.

Unterwegs erkläre ich, was wir in dieser Ereigniskette ändern können und wie Entwickler benutzerdefinierter Firmware diese Funktionen nutzen, um Dinge wie die Optimierung von Betriebssystemparametern, die Erweiterung des Anwendungsspeicherplatzes, die Verbindung von Swap, verschiedene Anpassungen und vieles mehr zu implementieren. Mit all diesen Informationen können Sie Ihre eigene Firmware erstellen und verschiedene Hacks und Modifikationen implementieren.

Schritt eins. ABOOT und Partitionstabelle

Alles beginnt mit dem primären Bootloader. Nach dem Einschalten führt das System den im permanenten Speicher des Geräts gespeicherten Bootloader-Code aus. Dann übergibt es die Kontrolle an den aboot-Bootloader mit integrierter Unterstützung für das Fastboot-Protokoll, aber der Hersteller des mobilen Chips oder Smartphones/Tablets hat das Recht, einen anderen Bootloader seiner Wahl zu wählen. Rockchip verwendet beispielsweise einen eigenen Bootloader, der nicht Fastboot-kompatibel ist und zum Flashen und Verwalten proprietäre Tools benötigt.

Das Fastboot-Protokoll wiederum ist ein System zur Verwaltung des Bootloaders von einem PC aus, mit dem Sie Aktionen wie das Entsperren des Bootloaders, das Flashen eines neuen Kernels und die Wiederherstellung, die Installation von Firmware und viele andere ausführen können. Die Daseinsberechtigung von Fastboot besteht darin, ein Smartphone in einer Situation in seinen ursprünglichen Zustand zurückversetzen zu können, in der alle anderen Mittel versagen. Fastboot bleibt bestehen, auch wenn Sie aufgrund von Experimenten alle NAND-Speicherpartitionen mit Android und der Wiederherstellung von Ihrem Smartphone löschen.

Nachdem aboot die Kontrolle erhalten hat, überprüft es die Partitionstabelle und überträgt die Kontrolle an den Kernel, der in die Partition mit dem Namen boot geflasht wurde. Anschließend extrahiert der Kernel das RAM-Image aus derselben Partition in den Speicher und beginnt mit dem Laden von entweder Android oder der Wiederherstellungskonsole. Der NAND-Speicher in Android-Geräten ist in sechs bedingt erforderliche Abschnitte unterteilt:

  • boot – enthält den Kernel und die RAM-Disk, normalerweise etwa 16 MB groß;
  • Wiederherstellung – Wiederherstellungskonsole, besteht aus einem Kernel, einer Reihe von Konsolenanwendungen und einer Einstellungsdatei, Größe 16 MB;
  • System - enthält Android, bei modernen Geräten beträgt die Größe mindestens 1 GB;
  • Cache – dient zum Speichern zwischengespeicherter Daten, wird auch zum Speichern von Firmware während eines OTA-Updates verwendet und hat daher eine Größe, die der Größe der Systempartition ähnelt;
  • Benutzerdaten – enthält Einstellungen, Anwendungen und Benutzerdaten, der gesamte verbleibende NAND-Speicherplatz ist ihm zugewiesen;
  • misc – enthält ein Flag, das bestimmt, in welchem ​​Modus das System booten soll: Android oder Wiederherstellung.

Darüber hinaus kann es noch weitere Abschnitte geben, das allgemeine Markup wird jedoch in der Designphase des Smartphones festgelegt und im Fall von aboot in den Bootloader-Code eingenäht. Dies bedeutet, dass: 1) die Partitionstabelle nicht gelöscht werden kann, da sie jederzeit mit dem Befehl fastboot oem format wiederhergestellt werden kann; 2) Um die Partitionstabelle zu ändern, müssen Sie den Bootloader entsperren und mit neuen Parametern neu flashen. Es gibt jedoch Ausnahmen von dieser Regel. Beispielsweise speichert der Bootloader desselben Rockchip Informationen über Partitionen im ersten Block des NAND-Speichers, sodass ein Flashen des Bootloaders nicht erforderlich ist, um diese zu ändern.

Besonders interessant ist der Abschnitt „Verschiedenes“. Es besteht die Vermutung, dass es ursprünglich erstellt wurde, um verschiedene Einstellungen unabhängig vom Hauptsystem zu speichern, jedoch in im Moment wird nur für einen Zweck verwendet: um dem Bootloader anzuzeigen, von welcher Partition das System geladen werden soll – Booten oder Wiederherstellen. Diese Funktion wird insbesondere von der ROM Manager-Anwendung verwendet, um das System automatisch in die Wiederherstellung mit automatischer Installation der Firmware neu zu starten. Auf dieser Grundlage ist der Ubuntu Touch Dual-Boot-Mechanismus aufgebaut, der den Ubuntu-Bootloader in die Wiederherstellung flasht und es Ihnen ermöglicht, zu steuern, welches System beim nächsten Mal gestartet werden soll. Die sonstige Partition gelöscht – Android lädt, mit Daten gefüllt – Wiederherstellung lädt … also Ubuntu Touch.

Schritt zwei. Boot-Bereich

Wenn der Abschnitt „Misc“ kein Recovery-Boot-Flag hat, überträgt aboot die Kontrolle an den Code im Boot-Abschnitt. Dies ist nichts anderes als der Linux-Kernel; Es befindet sich am Anfang des Abschnitts und unmittelbar darauf folgt ein mit cpio- und gzip-Archivierern gepacktes RAM-Disk-Image, das die für den Betrieb von Android erforderlichen Verzeichnisse, das Init-Initialisierungssystem und andere Tools enthält. Auf der Boot-Partition gibt es kein Dateisystem; Kernel und RAM-Disk folgen einfach aufeinander. Der Inhalt der RAM-Disk ist:

  • data - Verzeichnis zum Mounten der gleichnamigen Partition;
  • dev – Gerätedateien;
  • proc – procfs wird hier gemountet;
  • res – eine Reihe von Bildern für das Ladegerät (siehe unten);
  • sbin – eine Reihe von Dienstprogrammen und Daemons (z. B. adbd);
  • sys – sysfs wird hier gemountet;
  • system – Verzeichnis zum Mounten der Systempartition;
  • Ladegerät – Anwendung zur Anzeige des Ladevorgangs;
  • build.prop – Systemeinstellungen;
  • init – Initialisierungssystem;
  • init.rc – Initialisierungssystemeinstellungen;
  • ueventd.rc – Einstellungen des in init enthaltenen uventd-Daemons.

Dies ist sozusagen das Grundgerüst des Systems: eine Reihe von Verzeichnissen zum Verbinden von Dateisystemen von NAND-Speicherpartitionen und ein Initialisierungssystem, das den Rest der Arbeit des Systemstarts übernimmt. Das zentrale Element hierbei ist die Init-Anwendung und ihre init.rc-Konfiguration, auf die ich später ausführlich eingehen werde. In der Zwischenzeit möchte ich Ihre Aufmerksamkeit auf die Dateien „charger“ und „ueventd.rc“ sowie auf die Verzeichnisse „sbin“, „proc“ und „sys“ lenken.

Die Ladedatei ist eine kleine Anwendung, deren einzige Aufgabe darin besteht, das Batteriesymbol auf dem Bildschirm anzuzeigen. Es hat nichts mit Android zu tun und wird verwendet, wenn das Gerät im ausgeschalteten Zustand an das Ladegerät angeschlossen ist. In diesem Fall lädt Android nicht und das System lädt einfach den Kernel, verbindet die RAM-Disk und startet das Ladegerät. Letzterer zeigt ein Batteriesymbol an, dessen Bild in allen möglichen Zuständen in gewöhnlichen PNG-Dateien im res-Verzeichnis gespeichert wird.

Die Datei ueventd.rc ist eine Konfiguration, die bestimmt, welche Gerätedateien im sys-Verzeichnis während des Systemstarts erstellt werden sollen. Auf Kernelbasis Linux-Systeme Der Zugriff auf die Hardware erfolgt über spezielle Dateien im Dev-Verzeichnis, und der ueventd-Daemon, der Teil von init ist, ist für deren Erstellung in Android verantwortlich. In einer normalen Situation funktioniert es Automatikmodus, akzeptiert Befehle zum Erstellen von Dateien vom Kernel, einige Dateien müssen jedoch unabhängig erstellt werden. Sie sind in ueventd.rc aufgeführt.

Das sbin-Verzeichnis im Standard-Android enthält normalerweise nichts außer adbd, also dem ADB-Daemon, der für das Debuggen des Systems vom PC aus zuständig ist. Es wird früh beim Betriebssystemstart ausgeführt und ermöglicht die Erkennung mögliche Probleme in der Betriebssysteminitialisierungsphase. IN benutzerdefinierte Firmware In diesem Verzeichnis finden Sie eine Reihe anderer Dateien, z. B. mke2fs, die möglicherweise benötigt werden, wenn die Partitionen auf ext3/4 umformatiert werden müssen. Außerdem platzieren Modder dort oft eine BusyBox, mit der man Hunderte von Linux-Befehlen aufrufen kann.

Das proc-Verzeichnis ist Standard für Linux; in den nächsten Phasen des Bootens stellt init eine Verbindung zu procfs her, einem virtuellen Dateisystem, das Zugriff auf Informationen über alle Prozesse auf dem System bietet. Das System verbindet sysfs mit dem sys-Verzeichnis, wodurch der Zugriff auf Informationen über die Hardware und ihre Einstellungen geöffnet wird. Mit sysfs können Sie beispielsweise das Gerät in den Ruhezustand versetzen oder den verwendeten Energiesparalgorithmus ändern.

Die Datei build.prop dient zum Speichern von Android-Einstellungen auf niedriger Ebene. Später wird das System diese Einstellungen zurücksetzen und sie mit Werten aus der derzeit nicht zugänglichen Datei system/build.prop überschreiben.


Erkenntnisse aus dem Text

  • Fastboot bleibt bestehen, auch wenn Sie aufgrund von Experimenten den Inhalt aller NAND-Speicherbereiche von Ihrem Smartphone löschen
  • Der Wiederherstellungsbereich ist völlig autark und enthält ein Miniaturbetriebssystem, das in keiner Weise mit Android verwandt ist
  • Durch eine leichte Änderung der fstab-Datei können wir init zwingen, das System von der Speicherkarte zu starten

Schritt zwei, Alternative. Wiederherstellungsabschnitt

Wenn das Recovery-Boot-Flag im Abschnitt „Misc“ gesetzt ist oder der Benutzer das Smartphone einschaltet, während die Leiser-Taste gedrückt gehalten wird, übergibt aboot die Steuerung an den Code, der sich am Anfang des Wiederherstellungsabschnitts befindet. Sie enthält wie die Boot-Partition den Kernel und eine RAM-Disk, die in den Speicher entpackt wird und zum Stammverzeichnis des Dateisystems wird. Allerdings ist der Inhalt der RAM-Disk hier etwas anders.

Im Gegensatz zur Boot-Partition, die als Übergangsverbindung zwischen verschiedenen Ladephasen des Betriebssystems fungiert, ist die Wiederherstellungspartition völlig autark und enthält ein Miniaturbetriebssystem, das in keiner Weise mit Android verbunden ist. Recovery verfügt über einen eigenen Kern, einen eigenen Anwendungssatz (Befehle) und eine eigene Schnittstelle, die es dem Benutzer ermöglicht, Servicefunktionen zu aktivieren.

Bei einer standardmäßigen (Standard-)Wiederherstellung gibt es normalerweise nur drei solcher Funktionen: Installation der mit dem Schlüssel des Smartphone-Herstellers signierten Firmware, Löschen und Neustarten. Modifizierte Wiederherstellungen von Drittanbietern wie ClockworkMod und TWRP bieten viel mehr Funktionen. Sie können Dateisysteme formatieren, Firmware installieren, die mit beliebigen Schlüsseln signiert ist (sprich: benutzerdefiniert), Dateisysteme auf anderen Partitionen mounten (für Betriebssystem-Debugging-Zwecke) und Skriptunterstützung enthalten, mit der Sie den Firmware-Prozess und viele andere Funktionen automatisieren können.

Mithilfe von Skripten können Sie beispielsweise dafür sorgen, dass Recovery nach dem Booten automatisch die benötigte Firmware auf der Speicherkarte findet, diese installiert und einen Neustart in Android durchführt. Diese Funktion wird vom ROM Manager, dem Auto-Flasher und dem verwendet automatisches Update CyanogenMod und andere Firmware.

Die benutzerdefinierte Wiederherstellung unterstützt auch Sicherungsskripte, die sich im Verzeichnis /system/addon.d/ befinden. Vor dem Flashen sucht die Wiederherstellung nach Skripten und führt diese aus, bevor die Firmware geflasht wird. Dank solcher Skripte verschwinden Gapps nach der Installation einer neuen Firmware-Version nicht.

Fastboot-Befehle

Um auf Fastboot zuzugreifen, müssen Sie das Android SDK installieren, Ihr Smartphone per Kabel mit Ihrem PC verbinden und es einschalten, indem Sie beide Lautstärketasten gedrückt halten. Danach sollten Sie in das Unterverzeichnis „platform-tools“ im SDK gehen und den Befehl ausführen

Fastboot-Geräte

Der Gerätename wird auf dem Bildschirm angezeigt. Weitere verfügbare Befehle:

  • Fatsboot OEM entsperren- Entsperren des Bootloaders auf Nexus;
  • Datei.zip aktualisieren- Installation der Firmware;
  • Flash-Boot boot.img- Flashen des Boot-Partitions-Images;
  • Flash-Wiederherstellung Recovery.img- Flashen des Wiederherstellungspartitionsimages;
  • Flash-System system.img- Flashen des Systemabbilds;
  • OEM-Format- Wiederherstellung einer zerstörten Partitionstabelle;

Schritt drei. Initialisierung

Nachdem der Kernel die Kontrolle erhalten hat, verbindet er die RAM-Disk und startet nach der Initialisierung aller seiner Subsysteme und Treiber den Init-Prozess, der mit der Initialisierung von Android beginnt. Wie ich bereits sagte, verfügt init über eine Konfigurationsdatei init.rc, aus der der Prozess erfährt, was genau er tun muss, um das System hochzufahren. In modernen Smartphones hat diese Konfiguration eine beeindruckende Länge von mehreren hundert Zeilen und ist außerdem mit einem Trailer mehrerer untergeordneter Konfigurationen ausgestattet, die über die Importdirektive mit der Hauptkonfiguration verbunden sind. Das Format ist jedoch recht einfach und besteht im Wesentlichen aus einer Reihe von Befehlen, die in Blöcke unterteilt sind.

Jeder Block definiert eine Ladephase oder, im Android-Entwicklerjargon, eine Aktion. Blöcke werden durch eine On-Direktive, gefolgt vom Aktionsnamen, voneinander getrennt, z. B. on Early-init oder on post-fs. Der Befehlsblock wird nur ausgeführt, wenn der gleichnamige Trigger ausgelöst wird. Beim Booten aktiviert init nacheinander die Trigger „early-init“, „init“, „early-fs“, „fs“, „post-fs“, „early-boot“ und „Boot“ und startet so die entsprechenden Befehlsblöcke.


Wenn die Konfigurationsdatei mehrere weitere Konfigurationen enthält, die am Anfang aufgeführt sind (was fast immer der Fall ist), werden die darin enthaltenen Befehlsblöcke mit demselben Namen mit der Hauptkonfiguration kombiniert, sodass init dies tut, wenn der Trigger ausgelöst wird Befehle aus den entsprechenden Blöcken aller Dateien ausführen. Dies geschieht, um die Erstellung von Konfigurationsdateien für mehrere Geräte zu erleichtern, wenn die Hauptkonfiguration Befehle enthält, die für alle Geräte gelten, und die für jedes Gerät spezifischen Befehle in separate Dateien geschrieben werden.

Die bemerkenswerteste der zusätzlichen Konfigurationen heißt initrc.device_name.rc, wobei der Gerätename automatisch basierend auf dem Inhalt der Systemvariablen ro.hardware ermittelt wird. Dies ist eine plattformspezifische Konfigurationsdatei, die spezifische Befehlsblöcke enthält spezifisches Gerät. Zusätzlich zu den Befehlen, die für die Optimierung des Kernels zuständig sind, enthält es auch etwa Folgendes:

Mount_all ./fstab.Gerätename

Das bedeutet, dass init nun alle Dateisysteme mounten sollte, die in der Datei ./fstab.device_name aufgeführt sind, die die folgende Struktur hat:

Gerätename (Partition) Mountpunkt Dateisystem fs_options andere Optionen

Es enthält normalerweise Anweisungen zum Mounten von Dateisystemen von internen NAND-Partitionen in die Verzeichnisse /system (Betriebssystem), /data (Anwendungseinstellungen) und /cache (zwischengespeicherte Daten). Durch eine leichte Änderung dieser Datei können wir jedoch init zwingen, das System von der Speicherkarte zu starten. Teilen Sie dazu einfach die Speicherkarte in drei 4 Abschnitte auf: 1 GB/ext4, 2 GB/ext4, 1 GB/ext4 und den restlichen Fat32-Speicherplatz. Als nächstes müssen Sie die Namen der Speicherkartenpartitionen im Verzeichnis /dev ermitteln (z verschiedene Geräte sie sind unterschiedlich) und ersetzen Sie sie durch die ursprünglichen Gerätenamen in der fstab-Datei.


Am Ende des Boot-Init-Blocks wird er höchstwahrscheinlich auf den Standardbefehl class_start stoßen, der Sie darüber informiert, dass Sie dann alle in der Konfiguration aufgeführten Dienste starten sollten, die sich auf die Standardklasse beziehen. Die Beschreibung von Diensten beginnt mit der Dienstanweisung, gefolgt vom Namen des Dienstes und dem Befehl, der ausgeführt werden muss, um ihn zu starten. Im Gegensatz zu den in den Blöcken aufgeführten Befehlen müssen Dienste ständig ausgeführt werden, sodass Init während der gesamten Lebensdauer des Smartphones im Hintergrund bleibt und dies überwacht.

Modernes Android umfasst Dutzende von Diensten, zwei davon haben jedoch einen Sonderstatus und definieren das Ganze Lebenszyklus Systeme.

init.rc-Befehle

Der Init-Prozess verfügt über einen integrierten Satz von Befehlen, von denen viele Standard sind Linux-Befehle. Die bemerkenswertesten davon:

  • exec /Pfad/zu/Befehl- einen externen Befehl ausführen;
  • ifup-Schnittstelle- Erhöhen Sie die Netzwerkschnittstelle.
  • class_start klassenname- Dienste starten, die zur angegebenen Klasse gehören;
  • class_stop klassenname- Dienste einstellen;
  • insmod /path/to/module- Laden Sie das Kernelmodul;
  • Mounten Sie das FS-Geräteverzeichnis- Verbinden Sie das Dateisystem;
  • setprop-Namenswert- eine Systemvariable festlegen;
  • Starten Sie Dienstname- den angegebenen Dienst starten;
  • Triggername- den Trigger aktivieren (den angegebenen Befehlsblock ausführen);
  • Schreiben Sie die Zeile /path/to/file- Eine Zeile in eine Datei schreiben.

Schritt vier. Zygote und app_process

In einer bestimmten Ladephase wird init am Ende der Konfiguration auf etwa diesen Block stoßen:

Service Zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server class default socket zygote stream 660 root system onrestart write /sys/android_power/request_state wake onrestart write /sys/power/state on onrestart restart media onrestart restart netd

Dies ist eine Beschreibung des Zygote-Dienstes, einer Schlüsselkomponente jedes Android-Systems, die für die Initialisierung und den Start verantwortlich ist Systemdienstleistungen, Starten und Stoppen von Benutzeranwendungen und viele andere Aufgaben. Zygote wird mit einer kleinen Anwendung /system/bin/app_process gestartet, die im obigen Teil der Konfiguration sehr deutlich sichtbar ist. Die app_proccess-Aufgabe besteht darin, die virtuelle Dalvik-Maschine zu starten, deren Code sich in der gemeinsam genutzten Bibliothek /system/lib/libandroid_runtime.so befindet, und dann Zygote darauf auszuführen.

Sobald dies alles erledigt ist und Zygote die Kontrolle hat, beginnt es mit dem Aufbau der Java-Anwendungslaufzeit, indem es alle Java-Klassen des Frameworks lädt (derzeit über 2000 davon). Anschließend wird system_server gestartet, der die meisten (in Java geschriebenen) Systemdienste auf hoher Ebene enthält, einschließlich Window Manager. Statusleiste, Paketmanager und vor allem Aktivitätsmanager, der künftig für den Empfang von Signalen über den Start und das Ende von Anwendungen verantwortlich sein wird.

Danach öffnet Zygote den Socket /dev/socket/zygote, geht in den Ruhezustand und wartet auf Daten. Zu diesem Zeitpunkt sendet der zuvor gestartete Activity Manager einen Broadcast Intent Intent.CATEGORY_HOME, um die Anwendung zu finden, die für die Erstellung des Desktops verantwortlich ist, und gibt ihren Namen über den Socket an Zygote weiter. Letzterer wiederum verzweigt die Anwendung und führt sie auf der virtuellen Maschine aus. Voila, wir haben einen Desktop auf unserem Bildschirm, der vom Activity Manager gefunden und von Zygote gestartet wird, und eine Statusleiste, die von system_server als Teil des Status Bar-Dienstes gestartet wird. Nachdem Sie auf das Symbol getippt haben, sendet der Desktop eine Absicht mit dem Namen dieser Anwendung, der Aktivitätsmanager empfängt diese und übergibt den Befehl zum Starten der Anwendung an den Zygote-Daemon

INFO

In der Linux-Terminologie ist eine RAM-Disk eine Art virtuelle Festplatte Festplatte, nur im RAM vorhanden. Zu Beginn des Startvorgangs extrahiert der Kernel den Festplatteninhalt aus dem Image und mountet ihn als Root-Dateisystem (rootfs).

Während des Startvorgangs zeigt Android drei verschiedene Startbildschirme an: Der erste erscheint unmittelbar nach dem Drücken des Netzschalters und wird in den Linux-Kernel geflasht, der zweite wird während der frühen Phasen der Initialisierung angezeigt und in der Datei /initlogo.rle aufgezeichnet (kaum). wird heute verwendet), letzteres wird mit der Bootanimation-Anwendung gestartet und ist in der Datei /system/media/bootanimation.zip enthalten.

Zusätzlich zu den Standard-Triggern können Sie mit init eigene Trigger definieren, die durch eine Vielzahl von Ereignissen ausgelöst werden können: Anschließen eines Geräts an USB, Ändern des Status eines Smartphones oder Ändern des Status von Systemvariablen.

Unter anderem beendet der Activity Manager auch Hintergrundanwendungen, wenn nicht genügend Speicher vorhanden ist. Schwellenwerte für den freien Speicher sind in der Datei /sys/module/lowmemorykiller/parameters/minfree enthalten.

Das alles sieht vielleicht etwas verwirrend aus, aber das Wichtigste ist, sich drei einfache Dinge zu merken:

In vielerlei Hinsicht unterscheidet sich Android stark von anderen Betriebssystemen und es ist schwer, es auf den ersten Blick zu erkennen. Wenn Sie jedoch verstehen, wie alles funktioniert, sind die Möglichkeiten einfach endlos. Im Gegensatz zu iOS und Windows Phone Das Betriebssystem von Google verfügt über eine sehr flexible Architektur, die es Ihnen ermöglicht, sein Verhalten erheblich zu ändern, ohne Code schreiben zu müssen. In den meisten Fällen reicht es aus, die notwendigen Konfigurationen und Skripte zu korrigieren.

Android-Betriebssystem von Google

Geschichte der Android-Entwicklung, Android-Updates, Android Market

Abschnitt 1. Eigenschaften des Android-Betriebssystems.

Android ist tragbares (Netzwerk-)Betriebssystem für Kommunikatoren, Tablet-Computer, elektronische Bücher, digitale Player, Uhren, Netbooks und Smartbooks, basierend auf dem Linux-Kernel.

Android ist ein relativ junges Betriebssystem, das auf einer Vielzahl mobiler Geräte verwendet wird.

Eigenschaften des Android-Betriebssystems

Es wurde ursprünglich von Android Inc. entwickelt, das später von Google aufgekauft wurde. Anschließend initiierte Google die Gründung der Open Handset Alliance (OHA), die sich nun mit der Unterstützung und Weiterentwicklung der Plattform beschäftigt. Mit Android können Sie Java-Anwendungen erstellen, die das Gerät über von Google entwickelte Bibliotheken steuern. Das Android Native Development Kit erstellt Anwendungen, die in C und anderen Sprachen geschrieben sind.

Auf 75 % der im dritten Quartal 2012 verkauften Smartphones war ein Betriebssystem installiert Android-System.

Unter Android finden Sie sowohl Kommunikatoren (die häufigste Klasse) als auch Tablet-PCs (Tablets), Netbooks oder Smartbooks. Außerdem hören die Hersteller nicht auf zu experimentieren und integrieren das Betriebssystem in verschiedene Geräte. Eine Android-Uhr oder TV-Set-Top-Box wird niemanden mehr überraschen.

Das Betriebssystem wurde von Android Inc. entwickelt, das dann von Google übernommen und an OHA – Open Handset Alliance – übertragen wurde, eine Vereinigung, die sich der Entwicklung und Implementierung offener Mobilfunkstandards widmet. Zu OHA gehören neben Google auch Giganten wie HTC, Intel, Motorola, Qualcomm, Samsung, LG, T-Mobile und Nvidia.

Video:

Obwohl das Betriebssystem auf dem Linux-Kernel basiert, nutzt es nicht alle Fähigkeiten dieses Betriebssystems. Der Grund dafür ist die Verwendung der virtuellen Dalvik-Maschine, in der alles funktioniert Software. Doch mit der Veröffentlichung des Native Development Kit haben Entwickler die Möglichkeit, native Anwendungen in C und anderen Programmiersprachen zu erstellen.


Update-VerlaufAndroid

Die erste Android-Version wurde bereits im September 2008 vorgestellt und nur für den Communicator T-Mobile G1 (HTC Dream). Außerdem erhielt es ein Update auf Version 1.1, das sechs Monate später angekündigt wurde.

Die rasante Entwicklung des Betriebssystems begann mit den Versionen Cupcake (1.5) und Donut (1.6). Version 2.0 Eclair wurde zu einer Zwischenversion und Version 2.1 trug genau den gleichen Namen. Unter dessen Kontrolle wurden einige der beliebtesten Geräte vorgestellt – das Nexus One und sein „Bruder“ HTC Desire.

Dann wurde Android 2.2 Froyo veröffentlicht, das den Benutzern Unterstützung für die Webtechnologien HTML5 und Flash 10.1 bot, wodurch sie sich einen erheblichen Vorteil gegenüber ihren Mitbewerbern verschaffen konnten.

Als nächstes stellte das Unternehmen Android 2.3 Gingerbread mit einer aktualisierten Benutzeroberfläche, Unterstützung für den NFC-Standard, mehreren Kameras und hochauflösenden Displays vor.


Die größten globalen Änderungen sehen wir jedoch bei Android 3.0 Honeycomb, einer speziellen Version für Tablets. Es verfügt über eine völlig andere Benutzeroberfläche, 3D-Effekte, einen benutzerfreundlichen Browser und viele weitere Verbesserungen.

Leider wird Android 3.0 Honeycomb nur für Tablets verfügbar sein. Auf Kommunikatoren können wir nur portierte Versionen sehen oder ...

Derzeit ist die Version Android 2.4 nur aus Gerüchten bekannt. Aber vielleicht wird es ein Analogon zur Tablet-Version, angepasst für Smartphones und Kommunikatoren.

Video:

Seit der Veröffentlichung der ersten Version im September 2008 wurden mehrere Systemaktualisierungen durchgeführt. Bei diesen Updates geht es in der Regel um die Behebung erkannter Fehler und das Hinzufügen neuer Funktionen zum System. Jede Version des Systems erhält einen eigenen Codenamen zum Thema Dessert. Codenamen werden in alphabetischer Reihenfolge vergeben.


Bis November 2012 wurden 14 Versionen des Systems veröffentlicht. Neueste Version- 4.2 Jelly Bean („Lutscher mit Kaufüllung“).

Es gibt eine Community von Enthusiasten, die völlig offene Versionen der Android-Firmware entwickeln (wie CyanogenMod, MIUI, Virtuous Quattro, VillainROM, Open Kang Project, Replicant).

Modifizierte Versionen von Android (auch „Firmware“ oder „benutzerdefinierte Firmware“ genannt) werden erstellt für:

Entfernen von Google-Diensten vom Android-Gerät (z. B. Datensynchronisierung) – um die Lokalisierung von Benutzerdaten nur auf dem Android-Gerät sicherzustellen – Eliminierung der Möglichkeit der Übertragung von Identifikationsinformationen (IMEI, Telefonnummer, GPS-Koordinaten usw.) an Server Google;

schnellere und häufigere (im Vergleich zu den Herstellern der Geräte selbst) Bereitstellung neuer Versionen des Android-Betriebssystems. Es ist nicht ungewöhnlich, dass ein Hersteller die Unterstützung eines Modells einstellt, das er für veraltet oder unrentabel hält, und Benutzer, die neue Funktionen sehen möchten, müssen sich an die Arbeit von Enthusiasten wenden, obwohl viele systemisch veraltete Telefone die Möglichkeit haben, weiter aktualisiert zu werden (Nexus One). ist ein Paradebeispiel).

Video:

Ergänzungen zur Android-Firmware mit neuen Einstellungen und Funktionen. Beispielsweise die Unterstützung von FLAC Lossless Audio, die Möglichkeit, heruntergeladene Anwendungen auf einer MicroSD-Karte zu speichern (für Android bis Version 2.2) usw.


Um ein Android-Gerät zu flashen, ist Root-Zugriff erforderlich (dies wird als Rooting bezeichnet), was eine bessere Kontrolle über das System und die standardmäßig installierten Anwendungen ermöglicht. Für den Root-Zugriff ist das Entsperren des Bootloaders nicht erforderlich (mit einem entsperrten Bootloader können Sie zwei oder mehr Betriebssysteme auf dem Gerät starten). Durch die geänderte Firmware können Benutzer älterer Telefone Anwendungen verwenden, die nur für neuere Versionen verfügbar sind. Dies erhöht die Stabilität und Geschwindigkeit und beseitigt häufig Herstellerfehler.

Alle Hersteller von Android-Geräten blockieren den Root-Zugriff (und die Möglichkeit des Flashens) zunächst mit Hardware, motiviert durch den Wunsch, den Benutzer vor der Installation von Malware und das Gerät vor Schäden zu schützen. Aufgrund des weit verbreiteten Einsatzes komplexer Hackertechniken zur Umgehung dieses Schutzes waren die Hersteller jedoch gezwungen, sich auf halbem Weg zu treffen und die Möglichkeit zu schaffen, Telefone offiziell zu entsperren (Sony Ericsson – Unlocking the Bootloader Service, HTC – Unlocking Your Bootloader Service). Das Risiko eines möglichen Ausfalls des Telefons während des Entsperrvorgangs geht auf den Benutzer über, der im Falle der Entsperrung des Bootloaders den Bedingungen zustimmt, die auf einen vorzeitigen Verlust der Garantie des Telefons hinweisen. Und einige Hersteller gingen sogar noch weiter und taten alles, damit ein fortgeschrittener Benutzer nicht nur andere Firmware installieren, sondern auch seine eigene erstellen konnte (detaillierte Anweisungen zum Ersetzen von Firmware, Software, Dokumentation zur Architektur der Softwareplattform, Original-Firmware-Code usw.). bereitgestellt) und unterstützen die Entwicklung alternativer Firmware (Sony Ericsson sponsert CyanogenMod). Darüber hinaus entfällt dadurch (eine Initiative von Sony Ericsson) die Notwendigkeit, ungetestete Hacking-Tools für den Flash-Vorgang zu verwenden (z. B. für HTC).

Im Interessenkonflikt der beiden Parteien (Hersteller der Telefone selbst sowie Google und Nutzer) lässt sich folgende Motivation ausmachen:

Hersteller wollen „Werbe“-Anwendungen auf Telefonen installieren, die nicht ohne Rooting entfernt werden können;

Video:

Google möchte möglichst viele Informationen über den Nutzer sammeln: nicht nur persönliche Daten wie Adressen E-Mail oder der Verlauf der Besuche von Websites, aber auch Informationen über die Bewegung des Benutzers (GPS-Koordinaten oder, wenn der GPS-Empfänger ausgeschaltet ist, der Standort des Geräts basierend auf Mobilfunkmastsignalen) in Echtzeit, was zu einem Gerichtsverfahren führte.

Die Hersteller bemühen sich nicht um eine schnelle Aktualisierung des Betriebssystems und stellen nach etwa sechs Monaten den Support für das Produkt ein, wodurch Käufer gezwungen werden, auf neue Telefonmodelle umzusteigen.

Am 24. September 2009 wandte sich Google mit einem Brief an die CyanogenMod-Entwickler und forderte die Entfernung von Teilen des Systems und Closed-Source-Anwendungen (wie Market, GPS-Navigation, Karten usw.) aus der alternativen Firmware. Infolgedessen wurden „geschlossene“ Anwendungen aus der Android-Version von CyanogenMod entfernt, und während des Installationsprozesses von CyanogenMod hat der Benutzer die Möglichkeit, zusätzlich ein Softwarepaket von Google zu installieren oder zusätzlich alternative Versionen von „geschlossenen“ Programmen (an alternative Version von „Maps“ usw.), die Streitigkeiten erlaubte und den Nutzern die Möglichkeit bot, von Google-Anwendungen frei zu sein oder nicht.


Geschichte der Android-Entwicklung

Juli – Google kauft Android Inc.

5. September – Die Gründung der Unternehmensgruppe Open Handset Alliance (OHA) wurde offiziell bekannt gegeben, deren Zweck die Entwicklung offener Standards für mobile Geräte ist. Derzeit vereint OHA 34 Unternehmen, darunter die größten Mobilfunkanbieter T-Mobile und Mobiltelefonhersteller HTC-Geräte, Intel, Sprint Nextel, KDDI, NTT DoCoMo, China Mobile, Chipentwickler Broadcom, Marvell, NVIDIA, Qualcomm, SiRF, Texas Instruments, LG, Motorola, Samsung Electronics sowie ein globaler Riese der IT-Branche und einer der wichtigsten Inspiratoren der Allianz, Google-Unternehmen. Gleichzeitig mit der Einführung von OHA wurde die offene mobile Plattform Android, basierend auf dem Linux-Kernel, angekündigt.

12. November – Die erste Version des Android-Entwicklerpakets „Early Look“ SDK wurde vorgestellt und zum Download angeboten.


23. September – Google-Unternehmen zusammen mit Mobilfunkanbieter T-Mobile und der taiwanesische Hersteller HTC kündigten das erste Gerät auf Basis der Android 1.0-Plattform an – das T-Mobile G1 Smartphone (HTC Dream).

Das erste vollwertige SDK 1.0, Release 1, wurde veröffentlicht.

12. Januar – Android 2.1 veröffentlicht. Einige Quellen nennen diese Version „Flan“, sie ist jedoch Teil der „Eclair“-Version.

Mai – Android 2.2 (FroYo) veröffentlicht

Dezember – Android 2.3 (Gingerbread) veröffentlicht

15. August – Google einigte sich mit dem Vorstand von Motorola Mobility auf den Kauf des Telekommunikationskonzerns für 12,5 Milliarden US-Dollar.

Die Schriftfamilien Droid und Roboto wurden speziell für die Android-Plattform entwickelt.

Der Name jeder Version des Android-Betriebssystems ab 1.5 ist der Name eines Desserts. Die Anfangsbuchstaben der Namen in der Reihenfolge der Versionen entsprechen den Buchstaben des lateinischen Alphabets: 1.5 Cupcake, 1.6 Donut, 2.0/2.1 Eclair, 2.2 Froyo (kurz für Frozen Yogurt), 2.3 Gingerbread, 3.0 Honeycomb, 4.0 Ice Cream Sandwich, 4.1/4.2 Jelly Bean, 5.0 Key Lime Pie („Key Lime Pie“), Lollipop („Lollipop“), Melasse („Melasse“) und Nougat („Nougat“) (Kursivschrift weist auf zukünftige und/oder unbestätigte Versionen hin).

Die ersten beiden waren die Namen berühmter Roboter: 1.0 Astro („Astro Boy“) und 1.1 Bender („Futurama“), wurden jedoch aus Urheberrechtsgründen in „Desserts“ geändert.

Im Februar 2011 führten Geräte mit Android-Betriebssystem die Liste der beliebtesten Smartphones in Großbritannien souverän an und ließen das iPhone 4 mit iOS hinter sich. Laut Experten ist dies der erste Schritt des Android-Betriebssystems zur weltweiten Führung im Mobilfunkmarkt Betriebssysteme.

Die offiziellen Android-Websites geben immer noch keine Angaben zu den Mindesthardwareanforderungen für die Ausführung des Betriebssystems (es gibt nur Hardwareanforderungen für das Android Development Kit).

Wenn Sie auf der offiziellen Android-Website unten links mit der Maus über den Roboter fahren, führt er verschiedene Bewegungen aus und winkt beim Klicken mit der Hand.

In der Version Android 1.6 haben die Entwickler das Native Development Kit hinzugefügt, mit dem Sie Ihre eigenen Low-Level-Module für das System in C/C++ schreiben können und dabei auf Standard-Linux-Bibliotheken zurückgreifen. Obwohl beispielsweise die Standard-C-Bibliothek auf der Android-Plattform, bekannt als Bionic, kein Standard ist und vollständig mit libc kompatibel ist.

Video:

Zugreifen Google Play und andere Dienste von Google müssen proprietäre Anwendungen verwenden, zu deren Installation der Telefonhersteller auf dem Telefon erst nach Abschluss eines Vertrags mit Google berechtigt ist.

Android-Konkurrenten haben die Plattform kritisiert und ihr vorgeworfen, sie sei zu fragmentiert und behindere Entwickler. Google bestritt alle Vorwürfe mit der Begründung, es gäbe keine derartigen Probleme, habe aber dennoch ein Tool zur Überwindung von Fragmentierungsproblemen veröffentlicht.

Die Entscheidung von Google, den Android 3.0 Honeycomb-Code nicht öffentlich zu veröffentlichen, der nur Mitgliedern der Open Handset Alliance oder auf individueller Anfrage nach Unterzeichnung der Vereinbarung zur Verfügung steht, wurde kritisiert. Google begründet dies mit der Nichtverfügbarkeit der Plattform und einer Maßnahme, um deren unvorsichtige Umsetzung zu verhindern.

Richard Stallman erklärte: „Es ist klar und einfach: Mit Ausnahme des Linux-Kernels ist Android 3 proprietäre Software“ und „Obwohl Android-Telefone heute nicht so schlecht sind wie Apple- oder Windows-Smartphones, kann man nicht sagen, dass sie Ihre Freiheit respektieren.“ " Laut Google ist der geschlossene Code von Android 3.0 eine vorübergehende Maßnahme, aber auch nach der Veröffentlichung von Version 4 waren die Quellen von 3.0 nicht offen.

Laut Lookout Security Mobile wurden allein im Jahr 2011 rund eine Million US-Dollar von Android-Smartphone-Nutzern gestohlen.

Am 21. Oktober 2008 veröffentlichte die OHA Alliance den Quellcode der Android-Plattform. Die Veröffentlichung umfasste den gesamten Android-Stack: das Betriebssystem, die Middleware und die wichtigsten in Java geschriebenen Endanwendungen. Die Gesamtgröße des Android-Quellcodes betrug 2,1 GB. Die „bevorzugte Lizenz“ für Android-Quellcode ist die Apache-Lizenz 2.0. Nach der Veröffentlichung von Android 3.0 Honeycomb kündigte der Präsident der mobilen Abteilung von Google, Andy Rubin, an, dass sich der Open-Source-Code der neuen Version des Systems verzögern werde, da das System schlecht für die Ausführung auf Kommunikatoren vorbereitet und erforderlich sei erhebliche Optimierungen. Diese Entscheidung stieß bei Analysten auf Kritik: Beispielsweise bezeichnete ZDNet-Kolumnist Christopher Dawson den Schritt von Google als enttäuschend. Doch den Versprechungen des Unternehmens zufolge öffnete Google im Herbst 2011 die Quellcodes der nächsten Version des Systems – Android 4.0 Ice Cream Sandwich.


Android-Geräte

Das erste Gerät mit Android war das von HTC entwickelte HTC Dream-Smartphone (offiziell veröffentlicht). Mobilfunkanbieter T-Mobile namens T-Mobile G1), dessen Präsentation am 23. September 2008 stattfand. Bald folgten zahlreiche Aussagen anderer Smartphone-Hersteller über ihre Absicht, Geräte auf Android-Basis herauszubringen. Mit der Veröffentlichung der dritten Android-Version (Honeycomb), die auf Tablets ausgerichtet ist, begannen immer mehr Hersteller, die Veröffentlichung von Tablets auf dieser Plattform anzukündigen. Google produziert in Zusammenarbeit mit verschiedenen Giganten der Mobilfunkbranche auch eigene Geräte der „Google Nexus“-Serie. Diese Geräte sind die ersten, die Updates auf neue Versionen erhalten.

Neben Smartphones und Tablets ist das Android-Betriebssystem auch auf anderen Geräten installiert. So kam Ende 2009 der erste Bilderrahmen mit Android-Betriebssystem auf den Markt. Im Juni 2011 kündigte das italienische Unternehmen Blue Sky die Veröffentlichung der intelligenten Armbanduhr i’mWatch mit Android-Betriebssystem an. Im August 2012 stellte Nikon die weltweit erste Kamera vor, die auch auf der Google-Plattform läuft. Die bereits erwähnte „Google Nexus“-Reihe umfasst nicht nur Smartphones und Tablets, sondern auch den auf Android laufenden Mediaplayer Nexus Q.


Darüber hinaus haben Enthusiasten Android auf eine Reihe bekannter Geräte portiert, darunter beispielsweise die Windows Mobile-Smartphones HTC Touch Dual und HTC TyTN II, auf denen Android im Emulationsmodus ausgeführt wurde. Die vollständige Portierung wurde auch auf Geräten wie Internet-Tablets mit Maemo – Nokia N810 und Nokia N900 (ein Port namens Nitdroid) – sowie auf Smartphones Nokia N9 mit der MeeGo-Plattform und HTC HD2 mit dem Betriebssystem durchgeführt Windows-System Mobile, auf dem das Android-Betriebssystem sowohl von einer microSD-Karte als auch vom internen NAND-Speicher ausgeführt werden kann. Gleichzeitig installiertes System verfügt über die volle, uneingeschränkte Funktionalität. Darüber hinaus gibt es eine erfolgreiche Erfahrung mit der Installation von Android auf einigen Apple-Geräten – iPhone, iPod touch und iPad verwenden Sonderprogramm namens Openiboot, das darauf ausgelegt ist, eine Vielzahl von Betriebssystemen auf diesen Geräten auszuführen, darunter auch Android. Auf Geräten mit dem Betriebssystem Bada erscheint eine Vorabversion der Firmware mit eingeschränkter Funktionalität. Koolu begann nicht nur mit der Portierung von Android auf den Neo FreeRunner, sondern baute sein Geschäft auch auf den Verkauf dieser Smartphones mit vorinstallierter Google-Mobilplattform auf. Die erste offizielle und öffentliche Beta-Veröffentlichung einer Android-Portierung von Koolus Neo FreeRunner erfolgte im Dezember 2008. Android wurde auch auf die x86-Architektur portiert.


Quellen

Wikipedia – Die freie Enzyklopädie, WikiPedia

android.com – Android-Website

proandroid.net – Android-Anwendungen

youhtc.ru – Alles für NTS-Telefone

Haben Sie sich jemals gefragt, wie Fastboot oder ADB funktionieren? Oder warum ist es fast unmöglich, ein Smartphone mit Android in einen Ziegelstein zu verwandeln? Oder vielleicht wollten Sie schon lange wissen, wo die Magie des Xposed-Frameworks liegt und warum die Boot-Skripte /system/etc/init.d benötigt werden? Was ist mit der Wiederherstellungskonsole? Ist dies Teil von Android oder eine Sache für sich und warum eignet sich die regelmäßige Wiederherstellung nicht für die Installation von Firmware von Drittanbietern? Antworten auf all diese und viele weitere Fragen finden Sie in diesem Artikel.

So funktioniert Android

Sie können die verborgenen Fähigkeiten von Softwaresystemen kennenlernen, indem Sie das Funktionsprinzip verstehen. In einigen Fällen ist dies schwierig, da der Systemcode möglicherweise geschlossen ist. Im Fall von Android können wir jedoch das gesamte System in- und auswendig untersuchen. In diesem Artikel werde ich nicht auf alle Nuancen von Android eingehen und mich nur darauf konzentrieren, wie das Betriebssystem startet und welche Ereignisse in der Zeit zwischen dem Drücken des Netzschalters und dem Erscheinen des Desktops stattfinden.

Unterwegs erkläre ich, was wir in dieser Ereigniskette ändern können und wie Entwickler benutzerdefinierter Firmware diese Funktionen nutzen, um Dinge wie die Optimierung von Betriebssystemparametern, die Erweiterung des Anwendungsspeicherplatzes, die Verbindung von Swap, verschiedene Anpassungen und vieles mehr zu implementieren. Mit all diesen Informationen können Sie Ihre eigene Firmware erstellen und verschiedene Hacks und Modifikationen implementieren.

Schritt eins. ABOOT und Partitionstabelle

Alles beginnt mit dem primären Bootloader. Nach dem Einschalten führt das System den im permanenten Speicher des Geräts gespeicherten Bootloader-Code aus. Dann übergibt es die Kontrolle an den aboot-Bootloader mit integrierter Unterstützung für das Fastboot-Protokoll, aber der Hersteller des mobilen Chips oder Smartphones/Tablets hat das Recht, einen anderen Bootloader seiner Wahl zu wählen. Rockchip verwendet beispielsweise einen eigenen Bootloader, der nicht Fastboot-kompatibel ist und zum Flashen und Verwalten proprietäre Tools benötigt.

Das Fastboot-Protokoll wiederum ist ein System zur Verwaltung des Bootloaders von einem PC aus, mit dem Sie Aktionen wie das Entsperren des Bootloaders, das Flashen eines neuen Kernels und die Wiederherstellung, die Installation von Firmware und viele andere ausführen können. Die Daseinsberechtigung von Fastboot besteht darin, ein Smartphone in einer Situation in seinen ursprünglichen Zustand zurückversetzen zu können, in der alle anderen Mittel versagen. Fastboot bleibt bestehen, auch wenn Sie aufgrund von Experimenten alle NAND-Speicherpartitionen mit Android und der Wiederherstellung von Ihrem Smartphone löschen.

Nachdem aboot die Kontrolle erhalten hat, überprüft es die Partitionstabelle und überträgt die Kontrolle an den Kernel, der in die Partition mit dem Namen boot geflasht wurde. Anschließend extrahiert der Kernel das RAM-Image aus derselben Partition in den Speicher und beginnt mit dem Laden von entweder Android oder der Wiederherstellungskonsole. Der NAND-Speicher in Android-Geräten ist in sechs bedingt erforderliche Abschnitte unterteilt:

  • boot – enthält den Kernel und die RAM-Disk, normalerweise etwa 16 MB groß;
  • Wiederherstellung – Wiederherstellungskonsole, besteht aus einem Kernel, einer Reihe von Konsolenanwendungen und einer Einstellungsdatei, Größe 16 MB;
  • System - enthält Android, bei modernen Geräten beträgt die Größe mindestens 1 GB;
  • Cache – dient zum Speichern zwischengespeicherter Daten, wird auch zum Speichern von Firmware während eines OTA-Updates verwendet und hat daher eine Größe, die der Größe der Systempartition ähnelt;
  • Benutzerdaten – enthält Einstellungen, Anwendungen und Benutzerdaten, der gesamte verbleibende NAND-Speicherplatz ist ihm zugewiesen;
  • misc – enthält ein Flag, das bestimmt, in welchem ​​Modus das System booten soll: Android oder Wiederherstellung.
Darüber hinaus kann es noch weitere Abschnitte geben, das allgemeine Markup wird jedoch in der Designphase des Smartphones festgelegt und im Fall von aboot in den Bootloader-Code eingenäht. Dies bedeutet, dass: 1) die Partitionstabelle nicht gelöscht werden kann, da sie jederzeit mit dem Befehl fastboot oem format wiederhergestellt werden kann; 2) Um die Partitionstabelle zu ändern, müssen Sie den Bootloader entsperren und mit neuen Parametern neu flashen. Es gibt jedoch Ausnahmen von dieser Regel. Beispielsweise speichert der Bootloader desselben Rockchip Informationen über Partitionen im ersten Block des NAND-Speichers, sodass ein Flashen des Bootloaders nicht erforderlich ist, um diese zu ändern.

Teil des Bootloader-Codes, der die Partitionstabelle definiert


Besonders interessant ist der Abschnitt „Verschiedenes“. Es besteht die Vermutung, dass es ursprünglich zum Speichern verschiedener Einstellungen unabhängig vom Hauptsystem erstellt wurde, derzeit jedoch nur für einen Zweck verwendet wird: dem Bootloader anzuzeigen, von welcher Partition das System geladen werden soll – Booten oder Wiederherstellen. Diese Funktion wird insbesondere von der ROM Manager-Anwendung verwendet, um das System automatisch in die Wiederherstellung mit automatischer Installation der Firmware neu zu starten. Auf dieser Grundlage ist der Ubuntu Touch Dual-Boot-Mechanismus aufgebaut, der den Ubuntu-Bootloader in die Wiederherstellung flasht und es Ihnen ermöglicht, zu steuern, welches System beim nächsten Mal gestartet werden soll. Die sonstige Partition gelöscht – Android lädt, mit Daten gefüllt – Wiederherstellung lädt … also Ubuntu Touch.

Schritt zwei. Boot-Bereich

Wenn der Abschnitt „Misc“ kein Recovery-Boot-Flag hat, überträgt aboot die Kontrolle an den Code im Boot-Abschnitt. Dies ist nichts anderes als der Linux-Kernel; Es befindet sich am Anfang des Abschnitts und unmittelbar darauf folgt ein mit cpio- und gzip-Archivierern gepacktes RAM-Disk-Image, das die für den Betrieb von Android erforderlichen Verzeichnisse, das Init-Initialisierungssystem und andere Tools enthält. Auf der Boot-Partition gibt es kein Dateisystem; Kernel und RAM-Disk folgen einfach aufeinander. Der Inhalt der RAM-Disk ist:

  • data - Verzeichnis zum Mounten der gleichnamigen Partition;
  • dev – Gerätedateien;
  • proc – procfs wird hier gemountet;
  • res – eine Reihe von Bildern für das Ladegerät (siehe unten);
  • sbin – eine Reihe von Dienstprogrammen und Daemons (z. B. adbd);
  • sys – sysfs wird hier gemountet;
  • system – Verzeichnis zum Mounten der Systempartition;
  • Ladegerät – Anwendung zur Anzeige des Ladevorgangs;
  • build.prop – Systemeinstellungen;
  • init – Initialisierungssystem;
  • init.rc – Initialisierungssystemeinstellungen;
  • ueventd.rc – Einstellungen des in init enthaltenen uventd-Daemons.
Dies ist sozusagen das Grundgerüst des Systems: eine Reihe von Verzeichnissen zum Verbinden von Dateisystemen von NAND-Speicherpartitionen und ein Initialisierungssystem, das den Rest der Arbeit des Systemstarts übernimmt. Das zentrale Element hierbei ist die Init-Anwendung und ihre init.rc-Konfiguration, auf die ich später ausführlich eingehen werde. In der Zwischenzeit möchte ich Ihre Aufmerksamkeit auf die Dateien „charger“ und „ueventd.rc“ sowie auf die Verzeichnisse „sbin“, „proc“ und „sys“ lenken.

Die Ladedatei ist eine kleine Anwendung, deren einzige Aufgabe darin besteht, das Batteriesymbol auf dem Bildschirm anzuzeigen. Es hat nichts mit Android zu tun und wird verwendet, wenn das Gerät im ausgeschalteten Zustand an das Ladegerät angeschlossen ist. In diesem Fall lädt Android nicht und das System lädt einfach den Kernel, verbindet die RAM-Disk und startet das Ladegerät. Letzterer zeigt ein Batteriesymbol an, dessen Bild in allen möglichen Zuständen in gewöhnlichen PNG-Dateien im res-Verzeichnis gespeichert wird.

Die Datei ueventd.rc ist eine Konfiguration, die bestimmt, welche Gerätedateien im sys-Verzeichnis während des Systemstarts erstellt werden sollen. In Systemen, die auf dem Linux-Kernel basieren, erfolgt der Zugriff auf die Hardware über spezielle Dateien im Dev-Verzeichnis, und der ueventd-Daemon, der Teil von init ist, ist für deren Erstellung in Android verantwortlich. Im Normalfall arbeitet es im automatischen Modus und akzeptiert Befehle zum Erstellen von Dateien vom Kernel, einige Dateien müssen jedoch unabhängig erstellt werden. Sie sind in ueventd.rc aufgeführt.

Das sbin-Verzeichnis im Standard-Android enthält normalerweise nichts außer adbd, also dem ADB-Daemon, der für das Debuggen des Systems vom PC aus zuständig ist. Es wird in einem frühen Stadium des Betriebssystemstarts ausgeführt und ermöglicht es Ihnen, mögliche Probleme während der Betzu erkennen. In benutzerdefinierten Firmwares finden Sie in diesem Verzeichnis eine Reihe weiterer Dateien, beispielsweise mke2fs, die möglicherweise erforderlich sind, wenn Partitionen auf ext3/4 neu formatiert werden müssen. Außerdem platzieren Modder dort oft eine BusyBox, mit der man Hunderte von Linux-Befehlen aufrufen kann.

Das proc-Verzeichnis ist Standard für Linux; in den nächsten Phasen des Bootens stellt init eine Verbindung zu procfs her, einem virtuellen Dateisystem, das Zugriff auf Informationen über alle Prozesse auf dem System bietet. Das System verbindet sysfs mit dem sys-Verzeichnis, wodurch der Zugriff auf Informationen über die Hardware und ihre Einstellungen geöffnet wird. Mit sysfs können Sie beispielsweise das Gerät in den Ruhezustand versetzen oder den verwendeten Energiesparalgorithmus ändern.

Die Datei build.prop dient zum Speichern von Android-Einstellungen auf niedriger Ebene. Später wird das System diese Einstellungen zurücksetzen und sie mit Werten aus der derzeit nicht zugänglichen Datei system/build.prop überschreiben.


Root-Bereich der OUYA TV-Set-Top-Box


Schritt zwei, Alternative. Wiederherstellungsabschnitt

Wenn das Recovery-Boot-Flag im Abschnitt „Misc“ gesetzt ist oder der Benutzer das Smartphone einschaltet, während die Leiser-Taste gedrückt gehalten wird, übergibt aboot die Steuerung an den Code, der sich am Anfang des Wiederherstellungsabschnitts befindet. Sie enthält wie die Boot-Partition den Kernel und eine RAM-Disk, die in den Speicher entpackt wird und zum Stammverzeichnis des Dateisystems wird. Allerdings ist der Inhalt der RAM-Disk hier etwas anders.

Im Gegensatz zur Boot-Partition, die als Übergangsverbindung zwischen verschiedenen Ladephasen des Betriebssystems fungiert, ist die Wiederherstellungspartition völlig autark und enthält ein Miniaturbetriebssystem, das in keiner Weise mit Android verbunden ist. Recovery verfügt über einen eigenen Kern, einen eigenen Anwendungssatz (Befehle) und eine eigene Schnittstelle, die es dem Benutzer ermöglicht, Servicefunktionen zu aktivieren.

Bei einer standardmäßigen (Standard-)Wiederherstellung gibt es normalerweise nur drei solcher Funktionen: Installation der mit dem Schlüssel des Smartphone-Herstellers signierten Firmware, Löschen und Neustarten. Modifizierte Wiederherstellungen von Drittanbietern wie ClockworkMod und TWRP bieten viel mehr Funktionen. Sie können Dateisysteme formatieren, Firmware installieren, die mit beliebigen Schlüsseln signiert ist (sprich: benutzerdefiniert), Dateisysteme auf anderen Partitionen mounten (für Betriebssystem-Debugging-Zwecke) und Skriptunterstützung enthalten, mit der Sie den Firmware-Prozess und viele andere Funktionen automatisieren können.

Mithilfe von Skripten können Sie beispielsweise dafür sorgen, dass Recovery nach dem Booten automatisch die benötigte Firmware auf der Speicherkarte findet, diese installiert und einen Neustart in Android durchführt. Diese Funktion wird vom ROM-Manager, den Auto-Flasher-Tools sowie dem automatischen Update-Mechanismus für CyanogenMod und andere Firmware verwendet.

Die benutzerdefinierte Wiederherstellung unterstützt auch Sicherungsskripte, die sich im Verzeichnis /system/addon.d/ befinden. Vor dem Flashen sucht die Wiederherstellung nach Skripten und führt diese aus, bevor die Firmware geflasht wird. Dank solcher Skripte verschwinden Gapps nach der Installation einer neuen Firmware-Version nicht.

Schritt drei. Initialisierung

Nachdem der Kernel die Kontrolle erhalten hat, verbindet er die RAM-Disk und startet nach der Initialisierung aller seiner Subsysteme und Treiber den Init-Prozess, der mit der Initialisierung von Android beginnt. Wie ich bereits sagte, verfügt init über eine Konfigurationsdatei init.rc, aus der der Prozess erfährt, was genau er tun muss, um das System hochzufahren. In modernen Smartphones hat diese Konfiguration eine beeindruckende Länge von mehreren hundert Zeilen und ist außerdem mit einem Trailer mehrerer untergeordneter Konfigurationen ausgestattet, die über die Importdirektive mit der Hauptkonfiguration verbunden sind. Das Format ist jedoch recht einfach und besteht im Wesentlichen aus einer Reihe von Befehlen, die in Blöcke unterteilt sind.

Jeder Block definiert eine Ladephase oder, im Android-Entwicklerjargon, eine Aktion. Blöcke werden durch eine On-Direktive, gefolgt vom Aktionsnamen, voneinander getrennt, z. B. on Early-init oder on post-fs. Der Befehlsblock wird nur ausgeführt, wenn der gleichnamige Trigger ausgelöst wird. Beim Booten aktiviert init nacheinander die Trigger „early-init“, „init“, „early-fs“, „fs“, „post-fs“, „early-boot“ und „Boot“ und startet so die entsprechenden Befehlsblöcke.


Teil der init.rc-Konfiguration von CyanogenMod


Wenn die Konfigurationsdatei mehrere weitere Konfigurationen enthält, die am Anfang aufgeführt sind (was fast immer der Fall ist), werden die darin enthaltenen Befehlsblöcke mit demselben Namen mit der Hauptkonfiguration kombiniert, sodass init dies tut, wenn der Trigger ausgelöst wird Befehle aus den entsprechenden Blöcken aller Dateien ausführen. Dies geschieht, um die Erstellung von Konfigurationsdateien für mehrere Geräte zu erleichtern, wenn die Hauptkonfiguration Befehle enthält, die für alle Geräte gelten, und die für jedes Gerät spezifischen Befehle in separate Dateien geschrieben werden.

Die bemerkenswerteste der zusätzlichen Konfigurationen heißt initrc.device_name.rc, wobei der Gerätename automatisch basierend auf dem Inhalt der Systemvariablen ro.hardware ermittelt wird. Dabei handelt es sich um eine plattformspezifische Konfigurationsdatei, die gerätespezifische Befehlsblöcke enthält. Zusätzlich zu den Befehlen, die für die Optimierung des Kernels zuständig sind, enthält es auch etwa Folgendes:

Code:

Mount_all ./fstab.Gerätename

Das bedeutet, dass init nun alle Dateisysteme mounten sollte, die in der Datei ./fstab.device_name aufgeführt sind, die die folgende Struktur hat:

Code:

Gerätename (Partition) Mountpunkt Dateisystem fs_options andere Optionen

Es enthält normalerweise Anweisungen zum Mounten von Dateisystemen von internen NAND-Partitionen in die Verzeichnisse /system (Betriebssystem), /data (Anwendungseinstellungen) und /cache (zwischengespeicherte Daten). Durch eine leichte Änderung dieser Datei können wir jedoch init zwingen, das System von der Speicherkarte zu starten. Teilen Sie dazu einfach die Speicherkarte in drei 4 Abschnitte auf: 1 GB/ext4, 2 GB/ext4, 1 GB/ext4 und den restlichen Fat32-Speicherplatz. Als Nächstes müssen Sie die Namen der Speicherkartenpartitionen im Verzeichnis /dev ermitteln (sie unterscheiden sich je nach Gerät) und sie durch die ursprünglichen Gerätenamen in der fstab-Datei ersetzen.


Typischer Inhalt einer fstab-Datei


Am Ende des Boot-Init-Blocks wird er höchstwahrscheinlich auf den Standardbefehl class_start stoßen, der Sie darüber informiert, dass Sie dann alle in der Konfiguration aufgeführten Dienste starten sollten, die sich auf die Standardklasse beziehen. Die Beschreibung von Diensten beginnt mit der Dienstanweisung, gefolgt vom Namen des Dienstes und dem Befehl, der ausgeführt werden muss, um ihn zu starten. Im Gegensatz zu den in den Blöcken aufgeführten Befehlen müssen Dienste ständig ausgeführt werden, sodass Init während der gesamten Lebensdauer des Smartphones im Hintergrund bleibt und dies überwacht.

Modernes Android umfasst Dutzende Dienste, zwei davon haben jedoch einen Sonderstatus und bestimmen den gesamten Lebenszyklus des Systems.

Schritt vier. Zygote und app_process

In einer bestimmten Ladephase wird init am Ende der Konfiguration auf etwa diesen Block stoßen:

Code:

Service Zygote /system/bin/app_process -Xzygote /system/bin --zygote --start-system-server class default socket zygote stream 660 root system onrestart write /sys/android_power/request_state wake onrestart write /sys/power/state on onrestart restart media onrestart restart netd

Dies ist eine Beschreibung des Zygote-Dienstes, einer Schlüsselkomponente jedes Android-Systems, die für die Initialisierung, das Starten von Systemdiensten, das Starten und Stoppen von Benutzeranwendungen und viele andere Aufgaben verantwortlich ist. Zygote wird mit einer kleinen Anwendung /system/bin/app_process gestartet, die im obigen Teil der Konfiguration sehr deutlich sichtbar ist. Die app_proccess-Aufgabe besteht darin, die virtuelle Dalvik-Maschine zu starten, deren Code sich in der gemeinsam genutzten Bibliothek /system/lib/libandroid_runtime.so befindet, und dann Zygote darauf auszuführen.

Sobald dies alles erledigt ist und Zygote die Kontrolle hat, beginnt es mit dem Aufbau der Java-Anwendungslaufzeit, indem es alle Java-Klassen des Frameworks lädt (derzeit über 2000 davon). Anschließend wird system_server gestartet, der die meisten übergeordneten (in Java geschriebenen) Systemdienste enthält, darunter Window Manager, Status Bar, Package Manager und vor allem Activity Manager, der in Zukunft für den Empfang von Start und Ende verantwortlich sein wird Signalanwendungen.

Danach öffnet Zygote den Socket /dev/socket/zygote, geht in den Ruhezustand und wartet auf Daten. Zu diesem Zeitpunkt sendet der zuvor gestartete Activity Manager einen Broadcast Intent Intent.CATEGORY_HOME, um die Anwendung zu finden, die für die Erstellung des Desktops verantwortlich ist, und gibt ihren Namen über den Socket an Zygote weiter. Letzterer wiederum verzweigt die Anwendung und führt sie auf der virtuellen Maschine aus. Voila, wir haben einen Desktop auf unserem Bildschirm, der vom Activity Manager gefunden und von Zygote gestartet wird, und eine Statusleiste, die von system_server als Teil des Status Bar-Dienstes gestartet wird. Nachdem Sie auf das Symbol getippt haben, sendet der Desktop eine Absicht mit dem Namen dieser Anwendung, der Aktivitätsmanager empfängt diese und übergibt den Befehl zum Starten der Anwendung an den Zygote-Daemon

Das alles sieht vielleicht etwas verwirrend aus, aber das Wichtigste ist, sich drei einfache Dinge zu merken:

  • Der Android-Startvorgang ist in zwei Hauptphasen unterteilt: vor Zygote und danach. Vor dem Start von Zygote initialisiert das System Betriebssystemkomponenten auf niedriger Ebene. Dabei handelt es sich um Vorgänge wie das Verbinden (Mounten) von Dateisystemen, das Starten von Low-Level-Diensten (z. B. rild, das für die Arbeit mit einem GSM-Modem verantwortlich ist, SurfaceFlinger, das steuert, was auf dem Bildschirm angezeigt wird, vold, das die verbundenen steuert Dateisysteme). Sobald Zygote gestartet ist, beginnt die Initialisierung ausschließlich auf Java-Komponenten, die 80 % des Betriebssystems ausmachen. Dies wird insbesondere vom bekannten Xposed-Framework verwendet, das bei der Installation app_process durch eine eigene modifizierte Version ersetzt, die in der Lage ist, Aufrufe beliebiger Java-Klassen abzufangen und durch andere zu ersetzen. Aus diesem Grund verfügen Xposed-Module über so umfangreiche Modifikationsmöglichkeiten Aussehen und Android-Verhalten. Tatsächlich ändern sie nichts am System, sondern zwingen es lediglich dazu, Komponenten von Drittanbietern anstelle ihrer eigenen zu verwenden.
  • Java-Anwendungen werden nie von Grund auf neu gestartet. Wenn Zygote vom Aktivitätsmanager eine Anfrage zum Starten einer Anwendung erhält, startet es keine neue virtuelle Maschine, sondern teilt sich einfach auf, kopiert sich also selbst und startet sie dann auf der empfangenen Kopie der virtuellen Maschine die richtige Anwendung. Dieses Funktionsprinzip ermöglicht erstens eine Reduzierung des Speicherverbrauchs auf ein Minimum, da Linux während eines Forks Speicher im Copy-on-Write-Modus kopiert (der neue Prozess bezieht sich auf den Speicher des alten), und zweitens eine deutliche Beschleunigung den Start der Anwendung beschleunigen: Das Verzweigen des Prozesses ist viel schneller als das Starten einer neuen virtuellen Maschine und das Laden der von der Anwendung benötigten Java-Klassen.
  • Android verwendet überall Absichten. Android-Komponenten verwenden niemals direkte Aufrufe von Prozeduren und Klassen, um miteinander zu kommunizieren. Stattdessen wird ein Nachrichtensystem (Intents) verwendet, das neben einem hohen Maß an Sicherheit auch viele weitere Vorteile bietet, wie beispielsweise die Möglichkeit, eine Anwendung aufzurufen, ohne etwas davon zu wissen. Ich habe oben bereits geschrieben, dass das System zum Starten des Desktops lediglich die Absicht Intent.CATEGORY_HOME senden muss, auf die jede Anwendung, die die Launcher-Funktion ausführen kann, antwortet. Der „Teilen“-Button funktioniert wie viele andere Komponenten des Systems auf die gleiche Weise.

Was ist Android und warum wird es benötigt? Viele Einsteiger stellen beim Kauf eines modernen Gadgets, sei es ein Tablet oder ein Smartphone, eine ähnliche Frage. Es lohnt sich, die Situation zu klären und einige Vorteile dieser Plattform hervorzuheben.

Geschichte des Aussehens

Heutzutage gibt es viele Geräte, die auf der Android-Plattform laufen. Dieses Betriebssystem ist für Smartphones und Tablets, Uhren und E-Reader, Spielekonsolen und sogar Google-Brillen konzipiert. Vielleicht erscheinen bald Fernseher und Autos mit Android-Unterstützung.

Die Geschichte der Entwicklung des Betriebssystems begann im Jahr 2003. Damals wurde eine kleine Organisation namens Android Inc. gegründet. Seine Gründer waren Rich Miner, Chris White, Andy Rubin und Nick Sears. Schon damals waren einige Entwicklungen im Gange, die im neuen Betriebssystem umgesetzt werden sollten. Das Unternehmen übte seine Tätigkeit unter strengster Geheimhaltung aus.

Der Organisation ging bald das Geld aus und es gab keine nennenswerten Erfolge bei der Betriebssystementwicklung. Aufgrund fehlender Ergebnisse konnten keine Investoren gewonnen werden. Nach einiger Zeit interessierte sich Google für die Entwicklung. Im Jahr 2005 ging das Unternehmen in den Besitz des Suchriesen über.

Danach wurde die Open Handset Alliance Corporation gegründet. Es umfasst führende Hersteller mobiler Geräte. Die Android-Plattform wurde erstmals 2007 eingeführt. Wie Sie wissen, basiert es auf dem Linux-Kernel. Die erste Version dieses Betriebssystems wurde 2008 veröffentlicht.

Was ist das

Android ist das Betriebssystem, das Smartphones, Tablets und viele andere Geräte antreibt. Dank dieses Betriebssystems kann selbst das günstigste Telefon neue Funktionen erhalten. Das System ermöglicht Ihnen die Installation verschiedener nützliche Programme, mit dem Sie alle Funktionen des Geräts optimal nutzen können.

Die gesamte benötigte Software kann hier heruntergeladen werden Spielemarkt. Diese Website enthält mehr als 700.000 Programme. Ein breites Sortiment ermöglicht es Ihnen, jede Anwendung zu finden, die Sie benötigen. Mit dem Betriebssystem können Sie problemlos auf das Internet zugreifen, Videodateien ansehen und über kommunizieren soziale Netzwerke, Musik hören, Fotos machen und diese sofort auf Ihrem Konto veröffentlichen oder E-Books lesen.

Es ist erwähnenswert, dass das Betriebssystem völlig kostenlos ist. Darüber hinaus ist es sehr einfach zu bedienen. Es wird nicht lange dauern, die Benutzeroberfläche zu verstehen. Dank all seiner Vorteile ist es das am weitesten verbreitete der Welt geworden. Im Jahr 2014 wurden mehr als 86 % der auf dieser Plattform betriebenen Geräte verkauft.

Video: Android-Telefon

Betriebssystemanwendung

Seit dem Aufkommen des Android-Betriebssystems bis heute haben die Entwickler nicht tatenlos zugeschaut. Die Plattform wird ständig verbessert. Gleichzeitig wird die Funktionalität durch die Einführung neuer Features erweitert.

Foto: Android 4.0 ist die neueste mobile Version

Die Plattform ist so beliebt und benutzerfreundlich geworden, dass viele Unternehmen, die moderne Gadgets entwickeln, beschlossen haben, ihre Geräte auf Basis dieses Betriebssystems herauszubringen.

Die Verwendung von Android ist nicht so schwierig, wie es scheint. Mit seiner Hilfe können Sie auf Ihrem Gerät fast die gleichen Aktionen ausführen wie auf Ihrem Computer.

Das System bietet mehrere Standardanwendungen. Unter ihnen sind:

  • Browser;
  • E-Mail;
  • Kalender;
  • Sprachsuche;
  • soziale Netzwerke;
  • Navigator;
  • Wetter;
  • Nachricht.

Alle Anwendungen von Google.

Ein weiteres nettes Plus ist die Möglichkeit, Ihren Desktop selbst anzupassen. Sie können Ihrem Gerät einen zusätzlichen Bildschirm hinzufügen, auf dem Sie Verknüpfungen oder Widgets platzieren können. Sie können auch jedes beliebige Thema oder Hintergrundbild installieren und so die Benutzeroberfläche ändern.

Warum ist es gut?

Dieses Betriebssystem hat eine Reihe von Vorteilen. Die wichtigsten sind:


Phasen der Android-Entwicklung

Nach der Vorstellung der ersten Version der Plattform wurde diese im Laufe des nächsten Jahres verfeinert, wodurch einige Systemfehler behoben wurden.

Im Jahr 2009 wurden fünf aktualisierte Versionen eingeführt:


Das Jahr 2010 war geprägt von der Veröffentlichung zweier weiterer Versionen. Sie waren:


Die nächste Entwicklung der Hersteller war die Plattform 3.0, die 2011 vorgestellt wurde. Das neue Betriebssystem wurde speziell für Tablets entwickelt.


Dieses System unterscheidet sich von den vorherigen:
  • verbesserte Schnittstelle;
  • die Möglichkeit, Links mit Google Chrome zu synchronisieren;
  • externe Tastaturunterstützung;
  • es ist jetzt möglich, die Größe von Widgets auf dem Bildschirm zu ändern;
  • Arbeiten Sie auf einem Multi-Core-Prozessor.

Die Entwickler hörten hier nicht auf und erstellten Android 4.0, das den Namen „Ice Cream Sandwich“ erhielt. Diese Plattform ist universeller geworden. Es kann sowohl auf einem Telefon als auch auf einem Tablet verwendet werden.

Foto: Android 4.0 „Ice Cream Sandwich“

Das Betriebssystem verfügt über viele neue Funktionen und Verbesserungen:

  • Das Benachrichtigungsfeld wurde geändert;
  • eine Möglichkeit zur Kontrolle des Internetverkehrs wurde hinzugefügt;
  • eine Sprachdiktierfunktion ist erschienen;
  • Rechtschreibprüfungssystem;
  • Die Kameraanwendung wurde verbessert – ein Panorama-Aufnahmemodus, verschiedene Effekte und ein Bildstabilisator sind erschienen;
  • der Browser wurde aktualisiert;
  • Unterstützung für Screenshots;
  • aktualisiertes Sicherheits- und Gadget-Schutzsystem.

In den Jahren 2012 und 2013 arbeiteten die Hersteller an der Entwicklung des Jelly Bean OS..

Die nächsten Versionen waren 4.1, 4.2, 4.3. Die neuen Änderungen betrafen hauptsächlich die Geschwindigkeit der Schnittstelle. Dank neuer Entwicklungen konnte die Produktivität gesteigert werden. Jetzt arbeiten GPU und Zentralprozessor parallel.

Die aktualisierte Version der Plattform verfügt über:


Ende 2013 wurde ein weiteres angekündigt Android-Version 4.4 „Kitkat“. Die neue Plattform wurde für die Ausführung auf günstigeren Geräten optimiert RAM 512 MB.

Auch hier gibt es einige Änderungen:

  • Bei Smartphones stehen nun ganz oben auf der Liste die Kontakte, mit denen der Nutzer häufiger kommuniziert;
  • der Sprachassistent ist immer aktiv;
  • automatische Anrufer-ID;
  • Untertitel werden jetzt im Videoplayer angezeigt;
  • der Datei-Downloader hat ein aktualisiertes Design;
  • Unterstützung für Schrittzähleranwendungen;
  • Zahlreiche Fehler und Mängel wurden behoben.

Die neueste Entwicklung des Unternehmens ist Version 5. Das neue Betriebssystem heißt „Lollipop“. Das Hauptaugenmerk lag auf dem Materialdesign, das sich durch seine Vielseitigkeit auszeichnet.

Konkurrenten

Die Hauptkonkurrenten, mit denen die Android-Plattform um die Palme kämpfen muss, sind:

  • Apple iPhoneOS;
  • Microsoft Windows Mobile;
  • RIM BlackBerry OS;
  • Maemo/MeeGo;
  • Samsung Bada OS;
  • Palm webOS;
  • Symbian-Betriebssystem.

Heute ist Android vor iOS die am weitesten verbreitete mobile Plattform der Welt. Allerdings ist bald eine Präsentation des neuen Ubuntu Phone OS geplant. Vielleicht wird es ein weiterer ernstzunehmender Konkurrent von Android.

Android-Geräte

Im Jahr 2008 kam das erste Gerät auf den Markt, das mit Android lief. Das Gerät wurde von HTC entwickelt. Es war ein Smartphone namens HTC Dream. Danach äußerten mehrere weitere Telefonhersteller den Wunsch, zu produzieren mobile Geräte mit Unterstützung für dieses Betriebssystem.

Bald wurde ein Tablet auf Basis der Android-Plattform angekündigt. Im Jahr 2009 kam ein Bilderrahmen auf den Markt, der auf diesem Betriebssystem lief. Darüber hinaus entwickelte die Organisation Blue Sky nach zwei Jahren eine neue Armbanduhr mit dem Namen i’m Watch. Sie unterstützen auch dieses System.

Auch die Kamerahersteller beschlossen, Schritt zu halten und stellten die weltweit erste Kamera vor, die auf Android läuft.

Das neue Produkt wurde von Nikon veröffentlicht. Darüber hinaus laufen auf dieser Plattform Spielekonsolen, E-Books und Mediaplayer. Es wird erwartet, dass bald weitere Geräte erscheinen werden.

Bei diesem Entwicklungstempo wird die Android-Plattform zum absoluten Spitzenreiter unter anderen Betriebssystemen werden und alle Konkurrenten hinter sich lassen.