Подтвердить что ты не робот

Можно ли запускать приложения для Linux в Android?

Android основан на Linux; могут ли запускаться приложения для Linux на Android?

4b9b3361

Ответ 1

В общем, нет. Приложения для Android, как правило, запускаются в изолированной Java-подобной виртуальной машине, поэтому их необходимо записать на Java или на каком-либо языке, который компилируется на байт-код виртуальной машины, который использует API Android.

Однако виртуальная машина работает поверх базовой ОС Linux, и есть способы вызвать собственный код. См. https://developer.android.com/tools/sdk/ndk/index.html

Итак, хотя технически возможно запускать собственные Linux-программы, так как есть ядро ​​Linux, работающее под всем, большинство пользователей не смогут устанавливать такие приложения или использовать их. (Если у вас есть root-доступ или вы создаете собственную прошивку, вы можете делать все, что хотите.)

Ответ 2

Android не запускает X Windows и не имеет многих стандартных библиотек GNU. Таким образом, поскольку для большинства приложений для Linux требуется один или оба из них, большинство из них не будут выполняться.

Кроме того, даже программы Java могут быть ограничены, потому что версия Java, на которой написаны приложения для Android, является подмножеством стандартной библиотеки Java.

Ответ 3

Да, вы можете. Я установил полный дистрибутив Debian в среде chroot-jail, используя debootstrap. (Вам необходимо внедренное устройство) Теперь я запускаю ssh, apache, mysql, php и даже сервер samba под андроид по моему htc-желанию без проблем. Можно запускать приложения x с помощью удаленного x-сервера через ssh. Он даже запускает openoffice.org и firefox. Вы можете использовать это: http://code.google.com/p/android-xserver/ для запуска X-приложения на локальном хосте, но мое желание HTC имеет небольшой экран, чтобы быть продуктивным:-) Но это может быть полезно на Eee Pad Transformer или что-то в этом роде.

Ответ 4

Не прямо, нет. Библиотека времени исполнения Android C, bionic, не является бинарным, совместимым с GNU libc, который используется большинством дистрибутивов Linux.

Вы всегда можете попытаться перекомпилировать свои двоичные файлы для Android и молиться.

Ответ 7

Вы можете получить кросс-компилятор ARM, который работает на Linux здесь. Вы также можете загрузить Android NDK и скомпилировать некоторые приложения в командной строке. У меня нет личного опыта использования С++ с любым решением, но я скомпилировал несколько простых вещей с обоими. Я понимаю, что NDK не является полным компилятором С++, так как есть жалобы на то, что он не будет компилировать некоторый общий код на С++.

Обратите внимание, что поскольку я новый пользователь, я не могу опубликовать ссылку NDK...:/

Ответ 8

android использует только ядро ​​linux, это означает, что цепочка инструментов GNU, например gcc, не реализована в android, поэтому, если вы хотите запустить приложение linux в android, вам нужно перекомпилировать его с помощью инструментальной цепочки Google (NDK).

Ответ 9

да, я сделал это на нескольких корневых машинах Я устанавливаю debian linux на SD-карте с помощью dd. i скопируйте это script http://jeanmichel.gens.free.fr/etc/install в /system/bin

Мне еще не удалось запустить Xserver, но я могу использовать двоичные файлы xwindows через приложение android Xserver

Я могу запустить обновление моего debian с apt-get upgrade, запустить Apache-сервер с PHP, запустить ssh-сервер и все двоичные файлы на терминале, включая управление пользователями У меня также проблема с обработкой семафоров свяжитесь со мной, если у вас возникнут проблемы.

Ответ 10

Да, они могут, если они сначала скомпилированы под arm linux или с использованием кросс-компилятора. В Debian работают многогранные работы, а также arm-eabi для компиляции под x86 linux для поддержки linux.

Ответ 11

Да, они могут. Если у вас нет корневого телефона/планшета, вы можете скачать c4droid здесь, чтобы скомпилировать ваши приложения. Затем вы можете скачать Kevin Boone KBOX здесь для запуска программы.

Ответ 12

Черт, конечно, да, с несколькими ограничениями.

Android - это своего рода специальный дистрибутив Linux, который обычно не похож на X11, и вы не можете установить Apache2 с apt-get. Но если у вас есть кросс-компилятор ARM, вы можете скопировать свои файлы ELF на устройство и запустить его из приложения-терминала или если вы установили какое-то приложение SSHD, вы даже можете использовать SSH со своего рабочего стола/ноутбука для доступа к Android-устройству.

Чтобы скопировать и запустить собственный исполняемый файл Linux, вы не запустили свое устройство. То, что я, я собрал свой собственный крошечный веб-сервер для Android (а также для webOS), он работает, аллилуйя.

Появляются проблемы, на которые я не могу ответить:

  • Мой крошечный веб-сервер использует только stdlib и pthreads. Я понятия не имею, как использовать (родные Linux) библиотеки, поставляемые с Android, есть полезные, хотя я могу жить без них.

  • Теперь я могу запустить приложение из приложения терминала вручную. Но я не знаю, какой лучший способ развертывания таких родных приложений для Android. Я думаю, что я должен написать небольшое приложение для Android, которое запускает сервер и не позволяет автоматически остановить систему (скажем, как будто музыкальные игроки никогда не убивали). Кроме того, если это сервис, он должен каким-то образом запускаться при загрузке. Я не знаком с Android.

Ответ 13

Короткий ответ, нет. Длинный ответ, вы можете запустить приложение Linux, если вы устанавливаете какое-то программное обеспечение.

Чтобы избежать укоренения вашего устройства, вы можете попробовать комьюнити GnuRoot и XSDL для получения минимальной chrooted-среды (на самом деле она использует proot для включения rootless chrooted jail) или получить приложение Debian Noroot, которое объединяет первые два приложения в единой среде виртуальной машины. Оба могут быть получены из Google Play.

Однако есть несколько недостатков: во-первых, сервер X11 в комплекте с XSDL и DNR - это уровень совместимости, обернутый вокруг порта SDL-библиотеки Android и SurfaceFlinger. Это означает, что аппаратная ускоренная графика OpenGL недоступна, и даже поддержка звука требует некоторых хаков. Таким образом, автор выбирает простую рабочую среду: XFCE4, подходящую для низкой памяти и без поддержки 3D. Вторая проблема заключается в несовместимости виртуальной машины DNR от прямого аппаратного обеспечения, поскольку она требует реальных привилегий root. Таким образом, вы не можете записывать DVD, печатать с помощью USB-кабелей,... даже авторские проекты могут обещать обходное решение в будущем. Наконец, это решение позволяет устанавливать программы пользовательского пространства, такие как LibreOffice, Gimp, Samba,... не модули ядра.

Даже с этими ограничениями DNR - очень мощная программа.

Ответ 14

Вы можете установить дистрибутив chrooted linux вместе с Android-андроидом bacause, основанный на ядре linux. Если ваш телефон не укоренен, вы можете использовать fakeroot (самый простой способ - использовать приложение Debinan nonroot даже с графическим интерфейсом (с помощью приложения X-сервера для Android или через VNC). Если у вас есть встроенный телефон, вы можете установить почти полностью функциональный дистрибутив.

Я думаю, что лучшая производительность и минимальные ограничения, которые вы можете достичь с помощью Gentoo, потому что все программное обеспечение компилируется в архитектуру вашей родной руки, и это самый гибкий, но не самый простой. Вы можете быть заинтересованы в этом сообщении об установке Gentoo на Android.