LINUX.ORG.RU

Новый проект позволит запускать Android приложения в Linux

 , , , ,


3

2

Новый проект «SPURV» даст возможность запускать Android приложения на десктопном Linux. Это экспериментальная контейнерная среда Android, которая может запускать Android приложения наравне с обычными приложениями Linux на дисплейном сервере Wayland.

В определенном смысле его можно сравнить с эмулятором Bluestacks, который позволяет запускать Android приложения под Windows в оконном режиме. Подобно Bluestacks, «SPURV» создает эмулируемое устройство в системе Linux. Но в отличие от Bluestacks, это не рантайм «все-в-одном», который можно скачать и установить.

«SPURV» больше похож на набор инструментов, которые можно использовать для настройки контейнера Android, установки Android приложений внутри него, и запуска этих приложений в полноэкранном режиме на десктопе Wayland в системе Linux поверх ядра Linux.

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

На видео приведена демонстрация одновременного использования Linux и Android приложений в Wayland.

Разработка ведется британской компанией Collabora.

Исходные коды можно скачать на Gitlab.

>>> Подробности

Ответ на: комментарий от Radjah

А что майкрософту мешает это сделать сейчас, с их открытого гитлаба? Если по лицензии кода они не имеют права этого делать то им тогда иски можно будет предъявить!

dr_daun ()
Ответ на: комментарий от xeneloid

Но зачем? Большинство приложений не адаптировано под десткоп

угу... включая сам линукс... так хотя у него будет шанс.

crypt ★★★★★ ()

когда уж они допортируют андроид в мейнстрим, чтобы без всяких эмуляций. с 2011 года ждем.

crypt ★★★★★ ()
Ответ на: комментарий от Deleted

Топик не умеет запускать arm просто потому, что тут нет никаких эмуляций. Приложения будут работать нативно.

anonymous ()

Публикация от первого апреля настораживает и візівает недоверие.

PunkoIvan ★★★★ ()
Ответ на: комментарий от smilessss

У меня этот ваш Anbox не работает; после полугода пердолинга в попытках завести хоть снап, хоть кастомный билд — в итоге оказалось, что собранным под ведроидный x86-ABI, да и самому ведроиду с какой-то версии, нужен SSSE4, а мой всратый процессор его не умеет. По этой же причине, похоже, у меня в виртуалке с 4-м Android-x86 половина приложений падает при запуске, а >=6 и Remix OS не запускаются вообще. Сабж потыкаю, что он представляет из себя, но вряд ли он чудо сделает: раз уж даже QEMU не умеет эмулировать недостающие инструкции для x86, то остаётся либо очередная тормозная эмуляция ARM, либо неработающий x86, третьего не дано.

anonymous ()
Ответ на: комментарий от dr_daun

Нет, это ты расскажи, зачем заливать код на какой-то чужой гитхаб, когда можно поднять у себя гитлаб. Ничего нового в этом нет, раньше вместо gitlab всякие cgit использовали дубовые, а то и встроенным gitweb раздавали...

anonymous ()
Ответ на: комментарий от anonymous

*собранным под ведроидный x86-ABI приложениям

anonymous ()
Ответ на: комментарий от Maniac_with_a_saw

А нельзя как-то эмулировать без эмуляции? Вот WINE как-то может

Что может? Эмулировать набор команд ARM на x86(-64)?

IPR ★★★★★ ()
Ответ на: комментарий от IPR

А зачем эмулировать ARM?
Там же виртуальная машина (которая java, но не-java), а нативный код собирают в том числе для x86 (есть же устройства на атомах, типа zenfone)

TheAnonymous ★★★★★ ()
Ответ на: комментарий от anonymous

Если читать правильно, то - Зорг... не спит.

anonymous ()
Ответ на: комментарий от AVL2

А зачем вообще это умение? Разве не очевидно, что эмуляция одного процессора на другом, это всегда кошмарно медленно и неюзабельно для повседневного использования?

В случае запуска андроид-приложений под linux на x86 разве стоит задача эмуляции процесса, если мы говорим о классическом android-приложении, написанном на джаве? Там ведь байткод под капотом? Не это ли преимущенство джавы, абстрагирование от аппаратной архитектуры?

totik ()
Ответ на: комментарий от Maniac_with_a_saw

А нельзя как-то эмулировать без эмуляции?

Вполне можно. Вместо эмуляции железа можно преобразовать код так, чтобы он использовал текущее железо. В общем случае это весьма объемная задача, но с развитием с одной стороны языков программирования высокого уровня, функциональных языков, где описывается нужный результат, а не тупая последовательность действий без понятного результата и нейронный сетей с другой стороны, это все вполне можно будет делать.

Вот WINE как-то может, там даже скорость игр под линуксом такая же, как на винде.

Вайн тут не при чем. Вайн, это как драйвер ntfs. Он же ничего не эмулирует, просто альтернативная реализация под posix. Вот и вайн тоже такой же вариант для winapi.

AVL2 ★★★★★ ()
Ответ на: комментарий от totik

В случае запуска андроид-приложений под linux на x86 разве стоит задача эмуляции процесса, если мы говорим о классическом android-приложении, написанном на джаве? Там ведь байткод под капотом? Не это ли преимущенство джавы, абстрагирование от аппаратной архитектуры?

да там везде уже ndk давно. Никому же не нужны простые калькуляторы на джаве. Всем подавай мощные игрухи на цпп...

AVL2 ★★★★★ ()
Ответ на: комментарий от Deleted

запускать андроид приложения для архитектуры ARM на десктопе с x86(64)?

Причём тут х86 и арм? Для андроид не на джаве разе пишут?

anonymous ()
Ответ на: комментарий от AVL2

Чисто в теории получится, т.к. для Android x86 были библиотеки для поддержки приложений для ARM.

Это не библиотеки, а запуск приложения в qemu. Никакими api или библиотеками эмуляцию другого процессора не заменить.

Все верно ozz_is_here_again говорил, а ты не в теме. Гугль android arm translation library. Вот например можно было их даже скачать например для x86 эмуля genymotion: https://mega.nz/usg=ALkJrhgzajMZiTGuDUTxVBaGBlodOhsZbQ#F!JhcFwKpC!yfhfeUzvIZo... Только беда в том, что эти библиотеки были созданы толи интелом, толи кем и исходников не было. Смысл, как я понимаю, в том, что arm код транслируется в x86 при установке приложения пользователю. Даже сейчас, если вскроеш кучу популярных прог под андроид, то с удивлением обнаружишь там только arm бинари (*.so) как раз потому что на реальных телефонах с x86 всегда стояли эти трансляторы и многие разрабы просто не заморачивались билдить еще и под x86 и утяжелять апк-шник.

FedeX ★★ ()
Последнее исправление: FedeX (всего исправлений: 1)
Ответ на: комментарий от anonymous

Под android на c++? А так можно?

Да хоть на FreePascal под андроид пиши, а не только на С/С++. Еще с версии 2.3, если не ошибаюсь. Только API гораздо скромнее. Для создания игруличек хватает, для прикладных апп - конечно, нет. Но NDK создано в первую очередь для того, чтоб портировать сложные низкоуровневые либы с десктопа (такие как FFMPEG, Curl, OpenCV, всякие SIP клиенты и пр...) и юзать в андроид приложениях UI и бизнес логика которых все-таки в 99% на Java/Kotlin.

FedeX ★★ ()
Последнее исправление: FedeX (всего исправлений: 1)
Ответ на: комментарий от smilessss

Видимо тем, что прибито на совершенно пустом месте кривыми ржавыми гвоздями не только к libsystemd, как anbox, но ещё и к пульсе с вейландом.

Stanson ★★★★★ ()
Ответ на: комментарий от anonymous

Для андроид не на джаве разе пишут?

Там ещё могут положить библиотеки, которые скопилированны под ARM.

Deleted ()
Ответ на: комментарий от Deleted

Вроде как в ведроиде прикладухи под джавой машиной работают, не? Ну если конечно не под ndk на плюсах приклады пилить

PETER ★★ ()
Ответ на: комментарий от AVL2

Если используется ndk и бинарники, то apk все равно снабжается сборками под большинство платформ, дабы не ограничивать искусственно число совместимых устройств. Вопрос эмуляции чужой платформы опять же отпадает сам собой.

totik ()
Ответ на: комментарий от Deleted

Да, похоже это все же эмуляция, а не трансляция на этапе установки. Но и не на базе qemu как предполагал AVL2, а похоже кое-что интеловское, закрытое и вероятно более легковесное. Я про этот houdini если что.

FedeX ★★ ()
Последнее исправление: FedeX (всего исправлений: 1)
Ответ на: комментарий от RazrFalcon

Для андроида есть хоть одна полезная прога? Или это для отладки?

Полезные проги есть. Но такое, в основном, нужно для отладки, и чтобы, когда за компом сидишь, мобильную игрушку на удобном десктопе погонять.

anonymous ()
Ответ на: комментарий от anonymous

все пользователи Ubuntu?

Хотя я например даже на Ubuntu первое что делаю так это сношу снап и ставлю православный флатпак

eternal_sorrow ★★★★★ ()
Ответ на: комментарий от dr_daun

Зачем вся эта дроч на гитлаб? Нельзя было просто организацию в гитхабе сделать и туда спокойно ставить код?

Суть не в гитлабе. Главное — это свой сервер. Для этого есть много причин.

Контроль над инфраструктурой. Если гитхаб ляжет, продадут, закроют, или заблокируют, то разрабы ничего не заметят.

Или, если случайно скоммитил приватный ключ в репозиторий, то можно быстро остановить сервер, вычистить ключ из репы, и убедиться по логам, что его никто не успел скачать. А с гитхаба нельзя ни логи посмотреть, ни удаление гарантировать — у них всё равно могло что-то остаться, и по commit id оказаться доставаемо.

anonymous ()

чего то в последнее время каким-то говном стали обмазываться линуксоды :-( системд, пауер шелл, адроид апы... на бздю что ли сбежать

anonymous ()
Ответ на: комментарий от hobbit

Ну по идее приложения с нейтив кодом нужно запускать с емуляцией процессорной архитектуры. Но большинство приложений под Андройд на сколько я понимаю на JVM работают.
Тем более есть куча приложений, которые должны работать на андройд-планшетах с x86, не?

sphericalhorse ★★★★ ()
Ответ на: комментарий от anonymous

Если гитхаб ляжет, продадут, закроют, или заблокируют, то разрабы ничего не заметят.

Если Гитхаб на долго ляжет, вероятно не только разрабы, но и вообще куча населения земли что-то заметят.

sphericalhorse ★★★★ ()
Последнее исправление: sphericalhorse (всего исправлений: 2)
Ответ на: комментарий от totik

Если используется ndk и бинарники, то apk все равно снабжается сборками под большинство платформ, дабы не ограничивать искусственно число совместимых устройств. Вопрос эмуляции чужой платформы опять же отпадает сам собой.

Естественно, я же тоже говорил, что сейчас собирают сразу под несколько платформ. Найти программу только под арм или только под x86 уже довольно сложно.

AVL2 ★★★★★ ()

Ещё один... Но когда же кто нибудь из них сможет запустить arm оперу-мини на arm линуксе без танца с бубном?

kirill_rrr ★★★★★ ()
Ответ на: комментарий от AVL2

Android уже давно официально умеет x86. Части приложений написанные на жабе не зависят от архитектуры по определению (лишь бы была реализация виртуальной машины для байткода под нужную архитектуру), загвоздка только в нативных библиотеках в составе приложений. Но у того же Google Play уже давно в требованиях наличие нативных либ под arm, arm64, x86, x86_64, ты просто не сможешь опубликовать приложение содержащее нативный код, но без поддержки каких то из этих архитектур.

Так что если не интересует поддержка старья (которая была написана в те времена, когда Android умел лишь ARM) и экзотики (которая не планируется к публикации на Google Play и плюёт на его требования совместимости), то достаточно лишь эмулировать ABI. Ну и системные компоненты типа графики и звука. Ибо нужно транслировать вызовы Android API в X11/Wayland/PulseAudio.

KivApple ★★★★★ ()
Последнее исправление: KivApple (всего исправлений: 1)
Ответ на: комментарий от kirill_rrr

ну по идее давно уже. Например в джола на арм есть сборка anbox в которой вполне можно запускать андройдные приложения.

AVL2 ★★★★★ ()
Ответ на: комментарий от KivApple

Да посмотри чуть раньше, с чего я начинал. Все так и есть.

AVL2 ★★★★★ ()
Ответ на: комментарий от AVL2

Так то джола, а мне надо в дебиане (причём желательно восьмом), и поверх Х11. К тому же у джолы всё закрыто и я слышал что купить эту прослойку для прошитого джолой устрорйства вообще нельзя.

kirill_rrr ★★★★★ ()
Последнее исправление: kirill_rrr (всего исправлений: 1)
Ответ на: комментарий от KivApple

зависит от того, какой рут ты используешь. я помню, Magisk шёл с каким то обходом SafetyNet, который не позволял некоторым приложениям видеть присутствие рута.

eternal_sorrow ★★★★★ ()
Ответ на: комментарий от RazrFalcon

Сейчас модно выпускать сразу в App Store и Google Play, не делая декстопной и даже веб-версии. Например, инстаграм

Для таких случаев пригодится

Crocodoom ★★★★ ()
Ответ на: комментарий от vadiml

Да ничерта тут не отлажено. Есть давно устаревший AlienDalvik на телефонах с ядром 3.10, под которым уже ничерта нового не запустить - там API от дроида 4.4. Это не говоря о глюках, возможных в любом приложении сложнее читалки.
На XA2 - новый костыль, судя по всему - на основе anbox. Судя по перечню багов на TJC, у него всё ещё хуже.

dogbert ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.