Будут ли приложения для Android работать в Ubuntu Touch изначально?

28

Мне интересно, почему приложения Android не могут быть запущены в Ubuntu Touch . Я имею в виду, не все ли это просто Linux?

user287536
источник
1
Окружение рабочего стола является важным фактором, с которым приложение совместимо.
Патрик Джеймс
8
На самом деле это довольно хороший вопрос. Да, действительно, но очень актуально. Имейте upvote.
don.joey
Я согласен с @ don.joey, так как это не то, что легко исследуется за исключением типа «да» или «нет».
MGodby
Было несколько интересных обсуждений о последних выступлениях Ubuntu, которые охватывали большую часть этой темы: youtube.com/watch?feature=player_embedded&v=etMduYRRwDc 25:00 27:10 52:45 54:47 55:20 <отметки времени на некоторых актуальных Очки
Матео
Разве это не проблема, что у них, вероятно, разные процессоры?
Кевин Феган,

Ответы:

24

Короткий ответ - нет."

Строго говоря, ядро ​​Linux обеспечивает чуть больше, чем прямой интерфейс с оборудованием, на котором оно работает. Существует целый набор дополнительных API-интерфейсов, программ, приложений и т. Д. Для телефонов Android, от которых зависят приложения Android. Кроме того, Android не работает на обычном ядре Linux, а вместо этого работает на ядре, которое было сильно настроено Google с конкретной целью запуска их ОС.

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

MGodby
источник
3
Правильно - запуск набора телефонных библиотек на настольном компьютере, который в 10 раз мощнее, крайне неэффективен ? Уже десять лет мы используем эмуляторы мобильных телефонов на настольных компьютерах.
MSalters
3
Я ответил на предпосылке, что asker имел в виду изначально, то есть без эмуляторов или виртуализации.
MGodby
5
@MSalters Эмулятор будет использовать больше ресурсов для получения того же результата по сравнению с нативной программой. Это в значительной степени определение неэффективности. И эмуляторы Android особенно медленны в моем опыте.
Jmathew
1
@jmathew С точки зрения разработчика (по крайней мере, моего), одно преимущество заключается в том, что если приложение работает достаточно хорошо в эмуляторе на медленной машине, то оно будет работать достаточно хорошо на кучах недорогих телефонов.
zxq9
2
@jmathew Я думаю, что MSalters пытался сказать, что, когда в течение нескольких лет было практично использовать эмулятор, не существует способа, при котором выполнение одной и той же вещи изначально может быть неэффективным.
Касперд
1

Nokia n900 работает под управлением Maemo Witch, как Linux, и все же она может запускать приложение для Android через среду dalvik, которая была разработана для него, но никогда не выпущена на рынок или в репозитории. Зачем? Только общество, которое разработало далвик для N900, знает. Теперь появилась еще одна инициатива вызова apkenv. Похоже, не так уж и много нужно добавить, чтобы на n900 работали некоторые игры для Android, и неважно, что такое gpu или cpu power или рабочий стол maemo, приложения запускаются там, как в любой эмуляции, но некоторые работают отлично, а некоторые нет. Так что насчет Ubuntu Touch - это не вопрос техники (может быть, я ошибаюсь, но один официальный сенсорный телефон Ubuntu - это xiaomi, который тоже используется для Android, так что в этом случае аппаратное обеспечение не является проблемой), но закон и закон о том, что Google выиграл »

Патрик
источник
1

Ответ на ваш вопрос - БОЛЬШОЕ НЕТ.

Android полностью отличается от Ubuntu Touch, хотя Android основан на ядре Linux, но это не означает, что нативные приложения Android могут работать на Linux и наоборот.

Сходство ядра разных ОС не делает их приложения исполняемыми на этих разных ОС. Ядро - это самый низкий программный уровень системы. Над ядром находится пространство пользователя, которое состоит из системного программного обеспечения и интерфейса приложения .

ОС с тем же ядром может иметь совершенно разные пользовательские пространства, а собственные приложения выполняются в определенном пользовательском пространстве.

Кроме того, приложения Android разрабатываются, как правило, с использованием приложений java и android, выполняемых в среде выполнения ( Dalvik или ART ), которая принимает байт-код из JVM в качестве входных данных, тогда как приложения linux непосредственно компилируются в машинный код .

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

Файзан Акрам Дар
источник