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

17

Поскольку Android - это разветвленное ядро ​​Linux плюс программный стек, мне интересно, есть ли какие-либо проекты или идеи относительно создания версии Android, которую можно добавить в систему Linux, чтобы позволить системе Linux запускать приложения Android (скомпилированные, скажем, для x86?). ).

Существует ли что-то подобное или это возможно?

(Я не имею в виду эмулятор, который поставляется с SDK.)

Эндрю Дж. Брем
источник
2
Плеер Android для BlackBerry Playbook близок, хотя, конечно, он работает на QNX, а не на Linux.
Мэтью Прочитано

Ответы:

2

С тех пор, как это было опубликовано, ситуация немного изменилась.

В настоящее время существует несколько (хотя ни один из них еще не совершенен) способов запуска приложений Android в Linux без эмулятора или виртуальной машины.

  1. Shashlik имеет довольно приятную интеграцию с вашей рабочей средой GNU. Не хватает Google Play Services, хотя.
  2. ARChon использует Google Chrome и позволяет устанавливать приложения для Android, как если бы они были приложениями Chrome. Это довольно опрятно, хотя и здесь совместимость не идеальна .
  3. Наконец, Google официально приносятмагазин Play для Chrome OS. Поскольку это официальный проект, разработанный Google, я считаю, что он должен иметь наилучшую совместимость из всех. Chrome OS - это дистрибутив Linux, основанный на Gentoo. Большая часть его исходного кода доступна через проект Chromium OS. Поскольку этот исходный код доступен, не должно быть слишком сложно перенести эту совместимость на популярные дистрибутивы GNU / Linux. Google относительно дружелюбен к открытому исходному коду (по крайней мере, по сравнению с Apple / Microsoft), и я не думаю, что они будут создавать какие-либо препятствия для такого портирования. Во всяком случае, они, похоже, заинтересованы в Play Store, подключив как можно больше устройств. Они могут даже встроить эту функцию в будущие версии Google Chrome для Linux или выпустить отдельный пакет. Они выпускают большую часть исходного кода для Android и Chrome OS,

Кстати, нет необходимости компилировать APK отдельно для x86. Приложения, которые вы пишете, компилируются в исполняемый код Dalvik (DEX), который в итоге преобразуется ядром в код сборки (в соответствии с требуемой архитектурой) для отправки процессору. (Эта последняя часть взята из этого ответа. )

Revetahw говорит восстановить Монику
источник
12

Ничего подобного еще не существует, поскольку приложения не запускаются в операционной системе, а вместо этого используют виртуальную машину Dalvik ( Википедия ). Это несколько сравнимо с Java в том смысле, что он использует байт-код и создает отдельную среду для каждого приложения. Поэтому, если среда Dalvik не портирована на другие платформы, они не могут работать на обычном оборудовании.

Существует проект под названием Alien Dalvik от Myriad, который пытается запускать приложения для Android в разных средах, но о нем мало информации. Мириад Чужой Далвик

Оник
источник
1

Ситуация снова изменилась с тех пор, как опубликовал Revetahw

Шашлык, кажется, неактивный проект, но Anbox, похоже, набирает силу. Преимущество Anbox заключается в том, что он не эмулирует ядро ​​Android, а использует функции ядра Linux, чтобы делить ядро ​​между вашей системой Linux и системой Android.

Кроме того, Chrome OS теперь имеет стабильную поддержку приложений Android на нескольких устройствах, но, к сожалению, эта интеграция с открытым исходным кодом без каких-либо планов с открытым исходным кодом, как она объявила

Железный человек
источник
0

Я не знаю, есть ли проекты такого рода. Что ближе всего, вероятно, это проекты android-x86, которые являются портом среды android на настольных рабочих станциях: http://www.android-x86.org/

Juri
источник
1
Это не эмулирует среду Android на настольных рабочих станциях, это порт Android для обычных ПК.
Эндрю Дж. Брем
Конечно, моя формулировка была не очень подходящей. Исправлено, спасибо.
Юрий