Project Treble
Project Treble ist im Zuge der Veröffentlichung von Android 8.0 Oreo entstanden und markiert eine revolutionäre Veränderung des Aufbaus und der Struktur dieses Systems. Man kann es sich als eine Fragmentierung bzw. Aufteilung aus den bis dahin untrennbar miteinander verbundenen Teilen Framework und Implementierungen des Herstellers:
Die Vorteile von Project Treble
- Schnellere System-Updates
- Erhöhte Systemsicherheit
- Längere Hardware-Unterstützung
Wie funktioniert Project Treble?
Das Betriebssystem Android setzt sich im Wesentlichen aus folgenden Schichten zusammen:
- Apps - Dies sind Programme, die über Google Play heruntergeladen werden können. Sie werden von App-Programmierern entwickelt.
- Der Kern - Ist der Teil des Systems, der die Eingaben des Anwenders verarbeitet. An diesen Aufgaben arbeiten Softwareentwicklern bei Firmen wie z.B Qualcomm oder Mediatek.
- HAL (Hardware Abstraction Layer) - Dies beschreibt eine Schicht, die die Kommunikation zwischen Apps und dem Kern des Systems ermöglicht. Sie wird vom Gerätehersteller instand gesetzt und ausgearbeitet.
Wie Project Treble in der Praxis funktioniert:
Handys von verschiedenen Herstellern verwenden eine bestimmte Kamera. Das Objektivmodell Sony Exmor RS IMX378 zum Beispiel, findet sich auf den Smartphone-Modellen Google Pixel, Xiaomi Mi5S oder BlackBerry KEYone. Selbst wenn alle diese Modelle mit dem gleichen Betriebssystem laufen, sehen die Fotos auf jedem Gerät unterschiedlich aus. Dies liegt daran, dass jedes Telefon eine andere HAL verwendet. Im Grunde bearbeitet HAL eine Reihe an Software-Einstellungen und bestimmt etwa über Kontrast, Farbgebung uvm.
HAL ist für bestimmte spezifische Hardware und Software maßgeschneidert. Eine Änderung an entweder Hard- oder Software bewirkt, dass HAL nicht mehr ordnungsgemäß funktioniert. Project Treble hat deshalb konstante Schnittstellen definiert, über welche Hardware wie Kameras, Mikrofone etc. stets mit der Software kommunizieren und verständigen können. Sie können sich Project Treble als eine Art "Software-Konnektor" vorstellen, an den sich verschiedene Versionen eines weiteren Codes anhängen lassen.