web-dev-qa-db-fra.com

Les applications Linux peuvent-elles être exécutées sous Android?

Android est basé sur Linux. les applications natives Linux peuvent-elles être exécutées sur Android?

46
Prabhu R

En général non. Les applications Android s'exécutent généralement sur une machine virtuelle de type Java en mode bac à sable. Elles doivent donc être écrites en Java ou dans un langage compilé en bytecode de machine virtuelle utilisant l'API Android.

Cependant, la machine virtuelle s'exécute sur le SE Linux sous-jacent et il existe des moyens d'appeler du code natif. Voir https://developer.Android.com/tools/sdk/ndk/index.html

Ainsi, bien qu’il soit techniquement possible d’exécuter des programmes Linux natifs, étant donné qu’un noyau Linux s’exécute en dessous de tout, la plupart des utilisateurs ne seraient pas en mesure d’installer ces applications ou de les utiliser. (Si vous avez un accès root ou créez votre propre firmware, vous pouvez faire ce que vous voulez.)

34
Kristopher Johnson

Oui, vous pouvez. J'ai installé une distribution Debian complète dans un environnement chroot-jail en utilisant debootstrap. (Vous avez besoin d’un appareil rooté) Je lance maintenant ssh, Apache, mysql, php et même un serveur samba sous Android sur mon htc-desire sans aucun problème . Il est possible de lancer x applications à l'aide d'une x serveur via ssh. Il exécute même openoffice.org et firefox . Vous pouvez utiliser ceci: http://code.google.com/p/Android-xserver/ pour exécuter X-application sur localhost mais mon HTC-desire a Un petit écran pour être productif :-) Mais cela pourrait être utile sur un transformateur Eee Pad ou quelque chose comme ça.

24
Chris de Vries

Android ne fonctionne pas sous Windows et ne possède pas non plus de nombreuses bibliothèques GNU standard. Ainsi, étant donné que la plupart des applications Linux natives nécessitent l’une ou l’autre de ces applications, la plupart ne fonctionneront pas.

En outre, même les programmes Java peuvent être limités, car la version de Java dans laquelle les applications Android sont écrites est un sous-ensemble de la bibliothèque Java standard.

23
ZacharyP

Pas directement, non. La bibliothèque d'exécution C d'Android, bionic, n'est pas compatible binaire avec la libc GNU, utilisée par la plupart des distributions Linux.

Vous pouvez toujours essayer de recompiler vos fichiers binaires pour Android et prier.

17
user197453

oui, vous pouvez ;-)

le moyen le plus simple consiste à utiliser ceci -> http://www.androidfanatic.com/community-forums.html?func=view&catid=9&id=2248

L’ancien lien est mort, c’était comme pour un script d’installation Debian. Il existe une application pour cela sur le marché Android Mais vous aurez besoin de root 

8
sherif

Je pense que cet article peut fournir une solution: Linux Today - Compiler, installer et exécuter des applications Linux sur Android
J'espère que ça aide.

4
fz_salam

Vous pouvez obtenir un compilateur croisé ARM fonctionnant sous Linux ici . Vous pouvez également télécharger le NDK Android et compiler des applications en ligne de commande . C++ avec l'une ou l'autre solution, mais j'ai compilé quelques choses simples avec les deux. Je crois comprendre que le NDK n’est pas un compilateur C++ complet, car on s’est plaint de ne pas compiler du code C++ commun.

Notez que puisque je suis un nouvel utilisateur, je ne peux pas publier le lien NDK ...: /

3
JimR

oui, j’ai fait cela sur plusieurs machines enracinées J’ai mis un Debian Linux sur une carte SD par dd. i copie ce script http://jeanmichel.gens.free.fr/etc/install on/system/bin

je n'ai pas encore réussi à utiliser un serveur X, mais je peux utiliser les fichiers binaires de Xwindows via l'application Android Xserver. 

je peux exécuter update my debian avec apt-get upgrade, un serveur Apache avec PHP, un serveur ssh et tous les fichiers binaires d'un terminal, y compris la gestion des utilisateurs J'ai également un problème avec la gestion des sémaphores. s'il vous plaît contactez-moi si vous avez des problèmes

3
jean-michel gens

Android utilise uniquement le noyau Linux, ce qui signifie que la chaîne d'outils GNU telle que gcc n'est pas implémentée dans Android. Si vous souhaitez exécuter une application Linux sous Android, vous devez la recompiler à l'aide de la chaîne d'outils de Google (NDK).

3
user not found

Oui, ils peuvent. Si vous n'avez pas de téléphone/tablette enraciné, vous pouvez télécharger c4droid ici pour compiler vos applications. Ensuite, vous pouvez télécharger KBOX here de Kevin Boone pour exécuter le programme.

2
jhunter_d

Oui, ils peuvent le faire s’ils sont compilés sous Linux ou en utilisant un compilateur croisé. Les œuvres polyvalentes de Debian, il existe également arm-eabi pour compiler sous Linux x86 pour armer Linux.

2
Will

Réponse courte, non ..___ Réponse longue, vous pouvez exécuter une application Linux si vous installez un logiciel.

Pour éviter d’enraciner votre appareil, vous pouvez essayer les combinaisons GnuRoot et XSDL afin d’obtenir un environnement chrooté minimal (en fait, il utilise proot pour activer une prison chrootée sans racine), ou l’application Debian Noroot, qui combine les deux applications précédentes dans un environnement de machine virtuelle unique . Les deux peuvent être récupérés à partir de Google Play.

Cependant, il existe quelques inconvénients: d’abord, le serveur X11 fourni par XSDL et DNR est une couche de compatibilité entourant un port Android de la bibliothèque SDL et de SurfaceFlinger . Cela signifie que les graphiques OpenGL à accélération matérielle ne sont pas disponibles, et même bon support nécessite quelques hacks. Ainsi, l’auteur a choisi un environnement de bureau simple: XFCE4, compatible avec les mémoires faibles et sans support 3D .. Le deuxième problème est l’incompatibilité de la machine virtuelle DNR d’accès matériel direct, car elle nécessite de véritables privilèges root. Vous ne pouvez donc pas graver de DVD, imprimer à l'aide de câbles USB, ... même les projets de l'auteur peuvent promettre une solution de contournement dans le futur ... .. Enfin, cette solution permet d'installer des programmes dans l'espace utilisateur tels que LibreOffice, Gimp, Samba ,. .. pas de modules noyau-espace.

Même avec ces limitations, le DNR est un programme très puissant.

1
Arucard1983

Bien sûr que oui, avec plusieurs limitations.

Android est une distribution un peu spéciale de Linux, sans suffixe habituel comme X11, et vous ne pouvez pas installer Apache2 avec apt-get. Mais si vous avez ARM compilateur croisé, vous pouvez copier vos fichiers ELF sur le périphérique et l'exécuter à partir d'une application de terminal ou si vous avez installé une application SSHD, vous pouvez même utiliser SSH à partir de votre accéder au périphérique Android.

Pour copier et lancer un exécutable Linux natif, vous n’avez pas besoin de rooter votre périphérique. C'est là où je suis, j'ai compilé mon propre petit serveur web sous Android (et aussi pour webOS), ça marche, hallelujah.

Viennent ensuite les problèmes auxquels je ne peux pas répondre:

  1. Mon petit serveur Web utilise uniquement stdlib et pthreads. Je ne sais pas comment utiliser les bibliothèques (Linux natif) fournies avec Android, il en existe d’utiles, bien que je puisse vivre sans elles.

  2. Maintenant, je peux lancer mon application à partir d'une application de terminal à la main. Mais je ne sais pas, quel est le meilleur moyen de déployer de telles applications natives sur Android. Je pense que je devrais être écrire une petite application Android, qui lance le serveur et ne pas laisser automatiquement arrêté par le système (par exemple, comme les lecteurs de musique jamais tués). De plus, si c'est un service, il devrait être démarré au démarrage. Je ne connais pas Android. 

1
ern0

Vous pouvez installer la distribution Linux chrootée aux côtés d'Android car Android est basé sur le noyau Linux. Si votre téléphone n'est pas enraciné, vous pouvez utiliser fakeroot (le moyen le plus simple consiste à utiliser Debinan nonroot app) même avec une interface graphique (avec l'application Android X-server ou via VNC). Si vous avez un téléphone enraciné, vous pouvez installer une distribution presque entièrement fonctionnelle. 

Je pense que Gentoo offre les meilleures performances et le moins de limitations que vous pouvez obtenir car tous les logiciels sont compilés selon votre architecture de bras native et qu’ils sont les plus flexibles, mais pas les plus faciles. Vous pouvez être intéressé par cet article sur l 'installation de Gentoo sur Android .

0
Yuriy Nazarenko