it-swarm.com.de

Können Linux-Apps in Android ausgeführt werden?

Android basiert auf Linux. Können native Linux-Anwendungen unter Android ausgeführt werden?

46
Prabhu R

Im Allgemeinen nein. Android-Apps werden im Allgemeinen in einer Java-ähnlichen virtuellen Maschine mit Sandkasten ausgeführt. Sie müssen daher in Java oder in einer anderen Sprache geschrieben sein, die zu Bytecodes von virtuellen Maschinen kompiliert wird, die die Android-API verwenden.

Die virtuelle Maschine wird jedoch auf dem zugrunde liegenden Linux-Betriebssystem ausgeführt und es gibt Möglichkeiten, nativen Code aufzurufen. Siehe https://developer.Android.com/tools/sdk/ndk/index.html

Während es technisch möglich ist, native Linux-Programme auszuführen, da ein Linux-Kernel unter allem läuft, können die meisten Benutzer solche Anwendungen nicht installieren oder verwenden. (Wenn Sie über Root-Zugriff verfügen oder Ihre eigene Firmware erstellen, können Sie tun, was Sie möchten.)

34

Ja, du kannst. Ich habe eine komplette Debian-Distribution mit debootstrap in einer chroot-jail-Umgebung installiert. (Du brauchst ein gerootetes Gerät) Ich führe jetzt ssh, Apache, mysql, php und sogar einen Samba-Server unter Android auf meinem htc-Wunsch ohne Probleme aus x Server über SSH. Es läuft sogar openoffice.org und firefox . Sie können Folgendes verwenden: http://code.google.com/p/Android-xserver/ , um X-Anwendung auf localhost auszuführen, aber mein HTC-Wunsch hat dies ein zu kleiner Bildschirm, um produktiv zu sein :-) Aber es könnte auf einem Eee Pad Transformer oder so ähnlich nützlich sein.

24
Chris de Vries

Auf Android ist weder X Windows noch viele der Standardbibliotheken GNU vorhanden. Da die meisten nativen Linux-Anwendungen eines oder beide davon benötigen, werden die meisten nicht ausgeführt.

Darüber hinaus können auch Java-Programme eingeschränkt sein, da die Java-Version, in der Android-Anwendungen geschrieben sind, eine Teilmenge der Standard-Java-Bibliothek ist.

23
ZacharyP

Nicht direkt, nein. Die bionische C-Laufzeitbibliothek von Android ist nicht binär kompatibel mit der GNU - libc, die von den meisten Linux-Distributionen verwendet wird.

Sie können immer versuchen, Ihre Binärdateien für Android neu zu kompilieren und zu beten.

17
user197453

ja, du kannst ;-)

Der einfachste Weg ist die Verwendung dieser -> http://www.androidfanatic.com/community-forums.html?func=view&catid=9&id=2248

Der alte Link ist tot, es war für ein Debian-Installationsskript. Es gibt eine App im Android Market Sie benötigen jedoch root 

8
sherif

Ich denke, dieser Artikel kann eine Lösung bieten: Linux Today - Linux-Apps auf Android kompilieren, installieren und ausführen
Ich hoffe es hilft.

4
fz_salam

Sie können einen ARM Cross-Compiler erhalten, der unter Linux hier ..__ ausgeführt wird. Sie können auch das Android NDK herunterladen und einige Befehlszeilen-Apps kompilieren .. _ C++ mit beiden Lösungen, aber ich habe ein paar einfache Dinge mit beiden zusammengestellt. Ich verstehe, dass das NDK kein vollständiger C++ - Compiler ist, da es Beschwerden gab, dass es keinen allgemeinen C++ - Code kompilieren wird.

Beachten Sie, dass ich den NDK-Link nicht posten kann, da ich ein neuer Benutzer bin:: /

3
JimR

ja, ich habe das auf mehreren gerooteten Maschinen gemacht Ich habe einen Debian-Linux auf eine SD-Karte von DD gesetzt. Ich kopiere dieses Script http://jeanmichel.gens.free.fr/etc/install auf/system/bin

es ist mir noch nicht gelungen, einen Xserver auszuführen, aber ich kann Xwindows-Binärdateien über die Android-Xserver-Anwendung verwenden 

ich kann update mein Debian mit apt-get upgrade ausführen, einen Apache-Server mit PHP ausführen, einen SSH-Server und alle Binärdateien auf einem Terminal ausführen, einschließlich der Benutzerverwaltung Ich habe auch ein Problem mit der Semaphorverarbeitung bitte kontaktieren sie mich, wenn sie probleme haben

3

Android verwendet nur Linux-Kernel, dh die GNU -Werkzeugkette wie gcc ist nicht in Android implementiert. Wenn Sie also eine Linux-App in Android ausführen möchten, müssen Sie sie mit der Google-Toolkette (NDK) neu kompilieren.

3
user not found

Ja, sie können. Wenn Sie kein gerootetes Telefon/Tablet haben, können Sie c4droid here herunterladen, um Ihre Apps zu kompilieren. Dann können Sie Kevin Boones KBOX here herunterladen, um das Programm auszuführen.

2
jhunter_d

Ja, sie können, wenn sie zuerst unter einem Arm-Linux oder mit einem Cross-Compiler kompiliert werden. Debian-Arm vielseitige Werke, es gibt auch ein Arm-Ui für das Kompilieren unter x86 Linux zu Arm Linux.

2
Will

Kurze Antwort, nein . Lange Antwort, Sie können eine Linux-Anwendung ausführen, wenn Sie Software installieren.

Um zu vermeiden, dass das Gerät gerootet wird, können Sie die Kombination aus GnuRoot und XSDL verwenden, um eine minimale chrootierte Umgebung zu erhalten (tatsächlich verwenden Sie proot, um ein rootloses chroot-Gefängnis zu aktivieren) oder die Debian Noroot-Anwendung, die die beiden vorherigen Anwendungen in einer Einzelne virtuelle Maschinenumgebung . Beide können von Google Play abgerufen werden.

Es gibt jedoch einige Nachteile: Erstens ist der X11-Server, der von XSDL und DNR gebündelt wird, eine Kompatibilitätsschicht, die um einen Android-Port der SDL-Bibliothek und von SurfaceFlinger gelegt wird. Dies bedeutet, dass hardwarebeschleunigte OpenGL-Grafiken nicht verfügbar sind Tonunterstützung erfordert einige Hacks. Daher hat der Autor eine einfache Desktop-Umgebung gewählt: XFCE4, das für niedrige Speicheranforderungen und keine 3D-Unterstützung geeignet ist ..__ Das zweite Problem ist die Inkompatibilität von DNR Virtual Machine mit direktem Hardwarezugriff, da dazu echte Root-Berechtigungen erforderlich sind. Sie können also keine DVDs brennen, nicht über USB-Kabel drucken, ... selbst die Projekte des Autors können in Zukunft eine Problemumgehung versprechen ... _ Schließlich ermöglicht diese Lösung die Installation von User-Space-Programmen wie LibreOffice, Gimp, Samba ,. .. keine Kernel-Space-Module.

Trotz dieser Einschränkungen ist der DNR ein sehr leistungsfähiges Programm.

1
Arucard1983

Zum Teufel natürlich mit einigen Einschränkungen.

Android ist eine spezielle Linux-Distribution, die nicht wie X11 üblich ist, und Apache2 kann nicht mit apt-get installiert werden. Wenn Sie über einen ARM Cross-Compiler verfügen, können Sie Ihre ELF-Dateien auf das Gerät kopieren und von einer Terminal-App ausführen oder wenn Sie eine SSHD-App installiert haben, können Sie sogar SSH von Ihrem Desktop/Notebook aus verwenden auf das Android-Gerät zugreifen.

Um eine native Linux-Programmdatei zu kopieren und zu starten, haben Sie kein Root-Gerät. Das ist der Punkt, an dem ich bin, ich habe meinen eigenen kleinen Webserver für Android (und auch für webOS) zusammengestellt, er läuft, Halleluja.

Da sind die Fragen, die ich nicht beantworten kann:

  1. Mein kleiner Webserver verwendet nur Stdlib und Pthreads. Ich habe keine Ahnung, wie man die (nativen Linux) -Bibliotheken mit Android nutzt, es gibt nützliche, obwohl ich ohne sie leben kann.

  2. Jetzt kann ich meine App manuell von einer Terminal-App starten. Aber ich weiß nicht, wie man native Apps auf Android am besten bereitstellt. Ich denke, ich sollte eine kleine Android-App schreiben, die den Server startet und nicht automatisch vom System gestoppt wird (zum Beispiel, da Musikplayer nie getötet wurden). Wenn es ein Dienst ist, sollte es beim Booten irgendwie gestartet werden. Ich bin nicht mit Android vertraut. 

1
ern0

Sie können neben Android auch Linux-Distributionen installieren, da Android auf Linux-Kernel basiert. Wenn Ihr Telefon nicht verwurzelt ist, können Sie fakeroot verwenden (die einfachste Möglichkeit ist, Debinan nonroot app), auch mit GUI (mit Android X-Server-App oder über VNC). Wenn Sie über ein gerootetes Telefon verfügen, können Sie eine nahezu voll funktionsfähige Verteilung installieren. 

Ich denke, die beste Leistung und die geringsten Einschränkungen, die Sie mit Gentoo erreichen können, da die gesamte Software zu Ihrer eigenen Armarchitektur kompiliert wird. Sie ist die flexibelste, aber nicht die einfachste. Möglicherweise interessieren Sie sich für diesen Beitrag zur Installation von Gentoo unter Android .

0
Yuriy Nazarenko