Я скачал несколько 3D-игр, распаковал их и получил файлы .jar. Как я могу использовать их в Android? У меня Galaxy S работает 2.1.
Я скачал несколько 3D-игр, распаковал их и получил файлы .jar. Как я могу использовать их в Android? У меня Galaxy S работает 2.1.
Ответы:
Хотя Android использует Java, он не поддерживает обычные файлы JAR. Вместо этого он использует специальный формат Android под названием APK. Основное отличие состоит в том, что Android не использует обычную виртуальную машину Java, но содержит собственную виртуальную машину Dalvik, оптимизированную для Android.
Я бы хотел частично не согласиться с Райаном Конрадом и Оником.
У меня есть Samsung Spica, и он был предварительно загружен приложением, когда он работал под управлением v1.6 и теперь работает под управлением 2.1 (обе официальные версии Samsung India) - под названием Java ME Apps.
Я запускаю несколько приложений Java (предназначенных для телефонов не Android) через него.
Оба являются JAR-файлами и один раз запускаются через приложение Java ME, оба работают как положено.
Итак, подведем итог, есть способ запустить приложения JAR на Android. Я, однако, согласен со всем остальным, упомянутым WRT APKs и Dalvik.
Android на самом деле даже не «использует» Java. Язык, на котором написан код, - это Java, но Android SDK берет скомпилированный байт-код и преобразует его в байт-код Dalvik.
Так что это действительно ошибочное мнение, что Android работает на Java. В Android работает Dalvik, основные библиотеки которого основаны на Java-фреймворке, но в результате двоичные файлы не совпадают, а виртуальные машины также совершенно разные.
Так же, как Dalvik VM не будет запускать байт-код Java, Java VM не будет запускать байт-код Dalvik.
Преобразование библиотек в Dalvik возможно возможно, если все функции доступны в Android (или дополнительные библиотеки), но все, что имеет пользовательский интерфейс Java, не будет работать.
Существует MicroEmulator, который эмулирует JavaME с помощью JavaSE. Это позволяет конвертировать эти файлы JAR в АПК и установить его на вашем устройстве. Процесс описан здесь.
NetRunner предоставляет аналогичную функциональность.
Нет, вы не можете установить JAR-файлы в Android, для установки приложений из JAR нам нужна поддержка J2ME, которая отсутствует в телефонах Android.