#java #android #linux
Здравствуйте! Почти все приложения для Android написаны на Java. И тем не менее их нельзя запустить на компьютере. Почему? А если перекомпилировать? В чем разница между Java на Android и Linux? Можно их запустить на компьютере?
Ответы
Ответ 1
Во первых Андроид это операционная система и работает на виртуальной машине по жавой. Хоть и сделана на база линукса они разные, разные библеотеки, дрова и тд. Тем более приложение компилируется на архитектуру процессоров ARM. Но запустить на компе возможно с помощью эмулятора, па пример Genymotion.Ответ 2
Десктопная Java работает на Sun'овской виртуальной машине JVM Android'ная Java работает на виртуальной машине Dalvik, которая по байткоду несовместима с JVM Начиная с Kitkat Android начал переход на новую виртуальную машину ART (Android Runtime) Существуют перекомпиляторы с байткода JVM на Dalvik и обратно. Стандартно это делается с помощью утилиты dx встроенной в Android SDK. Но проблема в том, что это не поможет, поскольку Java байткод будет вызывать встроенные нативные функции телефона отсутствующие в десктопе. Единственный выход - это запускать APK файлы в окружении эмулятора: либо на GenyMotion, который работает поверх Ораклевской виртуалки, либо стандартного AVD устройства идущего в комплекте с Android SDK. Update Сообщается, что выпущен плагин для браузера Chrome, который позволяет запускать Андроид приложение в окружении браузера: втыкаем и читаемОтвет 3
ARC Welder пытается решить проблему запуска Android-приложений на десктопе. Пока, похоже, не слишком удачно.
Комментариев нет:
Отправить комментарий