Мне интересно, почему приложения Android не могут быть запущены в Ubuntu Touch . Я имею в виду, не все ли это просто Linux?
Мне интересно, почему приложения Android не могут быть запущены в Ubuntu Touch . Я имею в виду, не все ли это просто Linux?
Ответы:
Короткий ответ - нет."
Строго говоря, ядро Linux обеспечивает чуть больше, чем прямой интерфейс с оборудованием, на котором оно работает. Существует целый набор дополнительных API-интерфейсов, программ, приложений и т. Д. Для телефонов Android, от которых зависят приложения Android. Кроме того, Android не работает на обычном ядре Linux, а вместо этого работает на ядре, которое было сильно настроено Google с конкретной целью запуска их ОС.
Даже если технически возможно воспроизвести весь стек, необходимый для запуска приложений Android в другой системе, он будет раздутым и крайне неэффективным.
Nokia n900 работает под управлением Maemo Witch, как Linux, и все же она может запускать приложение для Android через среду dalvik, которая была разработана для него, но никогда не выпущена на рынок или в репозитории. Зачем? Только общество, которое разработало далвик для N900, знает. Теперь появилась еще одна инициатива вызова apkenv. Похоже, не так уж и много нужно добавить, чтобы на n900 работали некоторые игры для Android, и неважно, что такое gpu или cpu power или рабочий стол maemo, приложения запускаются там, как в любой эмуляции, но некоторые работают отлично, а некоторые нет. Так что насчет Ubuntu Touch - это не вопрос техники (может быть, я ошибаюсь, но один официальный сенсорный телефон Ubuntu - это xiaomi, который тоже используется для Android, так что в этом случае аппаратное обеспечение не является проблемой), но закон и закон о том, что Google выиграл »
Ответ на ваш вопрос - БОЛЬШОЕ НЕТ.
Android полностью отличается от Ubuntu Touch, хотя Android основан на ядре Linux, но это не означает, что нативные приложения Android могут работать на Linux и наоборот.
Сходство ядра разных ОС не делает их приложения исполняемыми на этих разных ОС. Ядро - это самый низкий программный уровень системы. Над ядром находится пространство пользователя, которое состоит из системного программного обеспечения и интерфейса приложения .
ОС с тем же ядром может иметь совершенно разные пользовательские пространства, а собственные приложения выполняются в определенном пользовательском пространстве.
Кроме того, приложения Android разрабатываются, как правило, с использованием приложений java и android, выполняемых в среде выполнения ( Dalvik или ART ), которая принимает байт-код из JVM в качестве входных данных, тогда как приложения linux непосредственно компилируются в машинный код .
Приложения, разработанные для Android с использованием C ++, не могут быть выполнены непосредственно в среде Linux, скорее они должны быть скомпилированы в первую очередь для систем Linux.