Ich frage mich, warum Android-Apps unter Ubuntu Touch nicht nativ ausgeführt werden können . Ich meine, ist das nicht alles nur Linux?
Ich frage mich, warum Android-Apps unter Ubuntu Touch nicht nativ ausgeführt werden können . Ich meine, ist das nicht alles nur Linux?
Antworten:
Die kurze Antwort lautet "nein".
Genau genommen bietet der Linux-Kernel kaum mehr als eine direkte Schnittstelle zu der Hardware, auf der er ausgeführt wird. Es gibt einen ganzen Stapel zusätzlicher Android-Telefon-spezifischer APIs, Programme, Anwendungen usw., von denen Android-Anwendungen abhängen. Darüber hinaus läuft Android nicht auf einem generischen Linux-Kernel, sondern auf einem, der von Google mit dem speziellen Zweck, das Betriebssystem auszuführen, stark angepasst wurde.
Selbst wenn es technisch möglich wäre, den gesamten Stapel zu reproduzieren, der für die Ausführung von Android-Anwendungen auf einem anderen System erforderlich ist, wäre dies aufgebläht und äußerst ineffizient.
Nokia n900 läuft maemo witch ist ein Linux-Betriebssystem und dennoch kann es die Android-App über die Dalvik-Umgebung ausführen, die dafür entwickelt wurde, aber niemals auf den Markt gebracht wurde oder Repisitorien. Warum? Nur die Gesellschaft, die den Dalvik für das n900 entwickelt hat, weiß es. Jetzt gab es eine weitere Initiative namens apkenv. Es scheint, als gäbe es nicht so viel hinzuzufügen, damit das n900 einige Android-Spiele ausführt, und unabhängig von der GPU- oder CPU-Leistung oder dem Desktop von Maemo laufen die Apps dort wie in jeder Emulation, aber manche laufen perfekt, andere nicht. Also über Ubuntu Touch ist es keine Frage der Technik (kann sein, dass ich falsch liege, aber ein offizielles Ubuntu Touch-Telefon ist ein Xiaomi, das auch für Android verwendet wird, also ist Hardware in diesem Fall kein Problem), aber wird und wird es tun, wenn Google gewinnt. '
Die Antwort auf Ihre Frage ist ein GROSSES NEIN.
Android unterscheidet sich völlig von Ubuntu Touch, obwohl Android auf dem Linux-Kernel basiert. Dies bedeutet jedoch nicht, dass die nativen Anwendungen von Android unter Linux ausgeführt werden können und umgekehrt.
Die Ähnlichkeit im Kernel zwischen verschiedenen Betriebssystemen macht ihre Anwendungen nicht auf diesen verschiedenen Betriebssystemen ausführbar. Der Kernel ist die unterste Softwareschicht eines Systems. Oberhalb des Kernels befindet sich der Benutzerraum, der aus Systemsoftware und Anwendungsschnittstelle besteht .
Betriebssysteme mit demselben Kernel können völlig unterschiedliche Benutzerbereiche haben und native Anwendungen können in einem bestimmten Benutzerbereich ausgeführt werden.
Darüber hinaus werden Android-Apps in der Regel mit Java- und Android-Apps entwickelt, die in einer Laufzeitumgebung ( Dalvik oder ART ) ausgeführt werden, die Bytecode von JVM als Eingabe verwendet, während Linux-Anwendungen beim Kompilieren direkt in Maschinencode konvertiert werden.
Anwendungen, die mit C ++ für Android entwickelt wurden, können nicht direkt in einer Linux-Umgebung ausgeführt werden, sondern müssen erst für Linux-Systeme kompiliert werden.