Можно ли запускать приложения для Linux в Android? - PullRequest
46 голосов
/ 28 октября 2009

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

Ответы [ 14 ]

2 голосов
/ 07 сентября 2010

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

1 голос
/ 13 октября 2014

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

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

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

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

1 голос
/ 06 января 2013

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

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

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

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

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

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

0 голосов
/ 29 апреля 2015

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...