Vorteile von Android™ vs. Linux

Technische Grundlagen

Android™ basiert auf dem Linux-Kernel, optimiert ihn aber besonders auf eingebetteten Systemen & mobilen Plattformen.

Android nutzt den Linux-Kernel mit einigen Anpassungen. Es unterscheidet sich jedoch grundlegend von üblichen Linux Distributionen, wie bspw. Debian / Raspbian / Alpine Linux.

Üblicherweise nutzen Distributionen die GNU C Bibliothek (glibc), und einen X-Server (bspw. Xorg) für grafische Anwendungen.

Android enthält diese Komponenten nicht. Daher kann "normale" Linux-Software auf Android nicht ausgeführt werden.

Google basiert auf der bionisch C Bibliothek statt glibc - welche Vorteile hinsichtlich der Größe und der Ausführungsgeschwindigkeit bietet.

Android ist auf mobile Plattformen optimiert, und bringt seine eigene Virtual Machine mit (Dalvik), die es erlaubt in Java geschriebene Anwendungen auszuführen.

Diese Anwendungen sind gegen die Android API implementiert - Android schafft damit sein eigenes Ökosystem.

Android enthält keine Shell (Kommandozeileninterface, bspw. Bash) - es muss ggf. eine App installiert werden um eine Shell zu emulieren.

Standardmäßig erlaubt Android dem Benutzer keine Root-Rechte. Es ist als ein Einzelplatzsystem konzipiert worden, im Gegensatz zu modernen Linux Distributionen die auf mehrere Nutzer ausgerichtet sind. (Ein Erbe von Unix, das auf großen Maschinen lief, die von mehreren Studierenden, Professoren, etc. geteilt wurden).

Das Standard-Dateisystem von Android ist YAFFS - speziell für NAND Flash optimiert. Linux Distributionen setzen üblicherweise auf ext3 / ext4.

Google Chrome OS basiert übrigens auch auf einem Linux-Kernel, hat aber ebenso keinen X-Server.

Vorteile von Android

  • einheitliche UI (grafisches Benutzerinterface)
    • UI ist für Touchscreens optimiert
  • Umfangreiches Ökosystem von Android-Apps (900.000+)

Vor allem die Optimierung der UI und der Apps für Touchscreens ist ein wichtiger Punkt, beispielsweise für POS Geräte. Android konnte durch diese neue Ausrichtung die Anwendungen von Anfang an mit den Sensoren, Eingabe- und Ausgabe-Möglichkeiten einer modernen mobilen Plattform versorgen, und eine umfangreiche API für die Entwickler bereitstellen.

In manchen Fällen könnte die von Ihnen vorgesehene Anwendung (bspw. Mini-Digital Signage am Messestand) bereits durch eine Android App umsetzbar sein, ohne zusätzliche Entwicklungskosten.

  • Vertraute Nutzung

Durch die weite Verbreitung im Consumer Bereich sind Android-basierende Lösungen für die Endnutzer einfach zu nutzen, und begegnen mehr Akzeptanz, als Custom-Lösungen. (Dasselbe Argument gilt natürlich auch für Windows-basierende Anwendungen, allerdings gehört Windows auch der älteren Generation von Betriebssystemen an, die nicht mobile-first, touch-first waren).

  • Gute Unterstützung durch die Entwickler-Community

Es stehen viele Bibliotheken und erfahrene Anwender bereit, um Ihre Anwendung umzusetzen. Durch den weit verbreiteten kommerziellen Einsatz von Android (auch z.B. im Rahmen von Bring Your Own Device) existieren spezialisierte Firmen, die für Sie Android-Anwendungen entwickeln und im Lebenszyklus der Anwendung supporten.

  • Java

Dalvik VM, die virtuelle Maschine von Android, führt Java Anwendungen aus die gegen die Android API entwickelt wurden. Diese Sprache wird auch von Banken eingesetzt, da sie vor allem auf Stabilität und Portabilität achtet.

Java ist eine weit verbreitete Sprache, die viele Entwickler (u.a. empfehlen wir  Moebiusgames als Software-Partner) beherrschen. Es gibt viele Standard-Komponenten / Software-Bibliotheken, die Entwicklern Arbeit ersparen.

Die Sprache ist sehr gut dokumentiert, und verfügt über ein umfangreiches Toolset (bspw. IDEs - integrierte Entwicklungsumgebungen), die die Zeit reduzieren, die die Entwickler benötigen.

Auf Linux kommt oft nach wie vor C / C++ zum Einsatz. Während das einen gewissen Performancevorteil bieten kann, da die Anwendungen hardwarenäher laufen, müssen sich die Entwickler um viele Dinger kümmern, die ihnen bei Java abgenommen werden (Stichwort Pointer). Darunter kann ggf. die Softwarestabilität und -sicherheit leiden.

Alternativ kann man auf Android auch gegen eine C API implementieren (C NDK).

  • Kommunikationsstacks eingebaut

Android verfügt neben WLAN, Bluetooth auch über einen Telefonie- und Mobilfunkstack. Das ist besonders interessant für Anwendungen, die im Außendienst eingesetzt werden, ohne einen festen Netzwerk-/WLAN-Anschluss.

Natürlich kann man das alles auch mit Linux umsetzen, müsste aber dazu Entwicklungsressourcen investieren, u.a. auch für die Weiterentwicklung des eigenen Stacks.

  • optimiert für ARM-Plattformen

Android's primäres Ziel (von Google unterstützt) sind ARM Plattformen - ARM ist besonders auf Stromverbrauch und embedded optimiert. "Eine himmlische Kombination".

  • Upgrademechanismus eingebaut

Android ist von vorhinein als netz-angebundenes System, mit der Fähigkeit zu Upgrades vorgesehen.

  • Zugriff auf Google-Dienste

U.a. Spracherkennung (unter Umständen Zertifizierung des Geräts für Android erforderlich)

  • Battiere optimierte Power-Verwaltung eingebaut

Android ist damit vor allem für akkubetriebene Geräte interessant.

Vorteile von Linux

  • Standard-Fußabdruck (Speicherbedarf) ist deutlich kleiner

Bspw. kann mit Alpine Linux eine sehr kleine Linux Distribution verwendet werden, um den Platzbedarf zu reduzieren.

  • Geringere Anforderungen an die CPU, größere CPU-Vielfalt

Linux unterstützt viele Plattformen, u.a. auch MIPS. Es kann auf sehr leistungsschwachen eingebetteten Plattformen betrieben werden.

Fragen

Kann ich Android kommerziell nutzen?

Ja - der Kern ist unter der Apache Lizenz, und kann kommerziell verwendet werden, ohne Lizenzkosten an Google zahlen zu müssen. Die Google Anwendungen (Play Store, Maps, etc.) stehen unter Google Lizenz.

Um diese Anwendungen zu bekommen, muss das Gerät als Google-konform zertifiziert werden.

Muss Android immer auf einem Smartphone / Gerät mit Telefoniefunktion zum Einsatz kommen?

Nein - Android basierende Anwendungen laufen auf medizinischen Geräten, fest installierten Telefonen, Waschmaschinen, Uhren, Auto-Dashboards, TVs und Set-Top-Boxen.

emteria.OS

emteria.OS ist ein Android-Derivat, unter anderem für die Raspberry Pi Plattform.

Unser Online Shop buyzero.de vertreibt emteria.OS Sets - allerdings mit der emteria.OS personal Lizenz, die nicht für kommerziellen Einsatz zugelassen ist.

Wir können gerne den Kontakt zu emteria GmbH vermitteln.

Ref

Der Android-Roboter ist eine Vervielfältigung oder Abwandlung eines von Google erstellten und freigegebenen Werks und wird gemäß den in der Datenschutzerklärung beschriebenen Bedingungen verwendet. Creative Commons 3.0 Namensnennung Lizenz.

Android ist eine Marke von Google LLC.