Ist es möglich, Android-Anwendungen unter (normalem) Linux auszuführen?

17

Da Android ein abgespaltener Linux-Kernel plus -Software-Stack ist, frage ich mich, ob es Projekte oder Ideen zum Erstellen einer Version von Android gibt, die zu einem Linux-System hinzugefügt werden kann, damit ein Linux-System Android-Anwendungen ausführen kann (kompiliert für z. B. x86) ).

Gibt es so etwas oder wäre es möglich?

(Ich meine nicht den Emulator, der mit dem SDK geliefert wird.)

Andrew J. Brehm
quelle
2
Der Android Player für das BlackBerry Playbook ist in der Nähe, läuft aber natürlich unter QNX und nicht unter Linux.
Matthew Read

Antworten:

2

Die Dinge haben sich in den Jahren, seitdem dies veröffentlicht wurde, ein wenig geändert.

Es gibt jetzt mehrere (aber noch keine perfekte) Möglichkeiten, Android-Apps unter Linux ohne Emulator oder VM auszuführen.

  1. Shashlik bietet eine sehr gute Integration in Ihre GNU-Desktop-Umgebung. Es fehlen jedoch die Google Play-Dienste.
  2. ARChon verwendet Google Chrome und ermöglicht die Installation von Android-Apps, als ob es sich um Chrome-Apps handeln würde. Es ist ziemlich ordentlich, auch hier ist die Kompatibilität nicht perfekt .
  3. Schließlich bringt Google offiziellden Play Store auf Chrome OS. Da es sich um ein offizielles Projekt handelt, das von Google entwickelt wurde, sollte es meines Erachtens die beste Kompatibilität des Loses bieten. Chrome OS ist eine Linux-Distribution, die auf Gentoo basiert. Der Großteil des Quellcodes wird über das Chromium OS-Projekt zur Verfügung gestellt. Da dieser Quellcode verfügbar ist, sollte es nicht allzu schwierig sein, diese Kompatibilität auf gängige GNU / Linux-Distributionen zu portieren. Google ist relativ Open Source-freundlich (zumindest im Vergleich zu Apple / Microsoft), und ich glaube nicht, dass sie solche Portierungen blockieren werden. Wenn überhaupt, scheinen sie scharf darauf zu sein, dass der Play Store so viele Geräte wie möglich trifft. Sie können diese Funktionalität sogar in zukünftige Versionen von Google Chrome für Linux integrieren oder ein separates Paket veröffentlichen. Sie veröffentlichen den größten Teil des Quellcodes für Android und Chrome OS.

Übrigens müssen APKs für x86 nicht separat kompiliert werden. Die Apps, die Sie schreiben, werden in Dalvik Executable (DEX) -Code kompiliert, der schließlich vom Kernel in Assembly-Code (entsprechend der erforderlichen Architektur) konvertiert wird , um ihn an den Prozessor zu senden. (Der letzte Teil stammt aus dieser Antwort. )

Revetahw sagt Reinstate Monica
quelle
12

Es gibt noch nichts Vergleichbares, da die Apps nicht nativ im Betriebssystem ausgeführt werden, sondern stattdessen Dalvik Virtual Machine ( Wikipedia ) verwenden. Es ist in gewisser Weise vergleichbar mit Java, da es Bytecode verwendet und für jede App eine separate Umgebung erstellt. Sofern die Dalvik-Umgebung nicht auf andere Plattformen portiert ist, können sie nicht auf normaler Hardware ausgeführt werden.

Es gibt ein Projekt namens Alien Dalvik von Myriad, das versucht, Android-Apps in verschiedenen Umgebungen auszuführen, aber es gibt nicht viele Informationen darüber. Myriade Alien Dalvik

onik
quelle
1

Die Dinge haben sich wieder geändert, seitdem Revetahw veröffentlicht hat.

Schaschlik scheint ein inaktives Projekt zu sein, aber Anbox scheint an Boden zu gewinnen. Der Vorteil von Anbox ist, dass es nicht den Android-Kernel emuliert, sondern Linux-Kernelfunktionen verwendet, um den Kernel zwischen Ihrem Linux-System und dem Android-System zu teilen.

Chrome OS unterstützt nun auch stabile Android-Apps auf mehreren Geräten. Leider handelt es sich bei dieser Integration um eine Closed-Source-Integration, für die keine Open-Source-Integration angekündigt wurde.

Tin Man
quelle
0

Ich weiß nicht, ob es solche Projekte gibt. Was wahrscheinlich am nächsten kommt, sind die Android-x86-Projekte, die ein Port einer Android-Umgebung auf Desktop-Workstations sind: http://www.android-x86.org/

Juri
quelle
1
Dies emuliert keine Android-Umgebung auf Desktop-Workstations, sondern ist ein Port von Android zu normalen PCs.
Andrew J. Brehm
Sicher, meine Formulierung war nicht sehr gut geeignet. Problem behoben, danke.
Juri