Как я могу установить файлы .jar на мой Android?

9

Я скачал несколько 3D-игр, распаковал их и получил файлы .jar. Как я могу использовать их в Android? У меня Galaxy S работает 2.1.

Дживан Бхатт
источник

Ответы:

13

Хотя Android использует Java, он не поддерживает обычные файлы JAR. Вместо этого он использует специальный формат Android под названием APK. Основное отличие состоит в том, что Android не использует обычную виртуальную машину Java, но содержит собственную виртуальную машину Dalvik, оптимизированную для Android.

Оник
источник
Вы хотите сказать, что я не могу установить JAR-файл в Android 2.1.
Дживан Бхатт
5
@ Дживан Бхатт: Точно. Это может измениться в будущем (если кто-то напишет JVM для Android), но я бы не стал задерживать дыхание.
onik
Я сделал поиск в Интернете и узнал, что Android поддерживает только apk-файл, поэтому мне нужно конвертировать .jar в .apk каким-то конвертером, это правда?
Дживан Бхатт
4
Да, есть некоторые конвертеры, но они не очень надежны. Проблема в том, что Android использует часть всей библиотеки Java и добавляет свои собственные библиотеки для управления большинством функций. Например, классы графического интерфейса пользователя нельзя использовать на Android (например, Swing). Также конвертер должен переписать все события пользовательского интерфейса, такие как функции сенсорного экрана / клавиатуры. Очевидно, что некоторые конвертеры могут делать это для апплетов MIDP (J2ME), используемых на старых телефонах, но обычные приложения Java (вероятно) не будут работать. Вы можете попробовать конвертеры, но, скорее всего, результат будет зависать, глючить или падать.
onik
9

Я бы хотел частично не согласиться с Райаном Конрадом и Оником.

У меня есть Samsung Spica, и он был предварительно загружен приложением, когда он работал под управлением v1.6 и теперь работает под управлением 2.1 (обе официальные версии Samsung India) - под названием Java ME Apps.

Я запускаю несколько приложений Java (предназначенных для телефонов не Android) через него.

Оба являются JAR-файлами и один раз запускаются через приложение Java ME, оба работают как положено.

Итак, подведем итог, есть способ запустить приложения JAR на Android. Я, однако, согласен со всем остальным, упомянутым WRT APKs и Dalvik.

Sparx
источник
Это приложение Формулы 1, которое вы связали, похоже, является родным приложением для Android, а не приложением java / j2me ..
Irfan
1
Теперь это ... когда я первоначально опубликовал это, не было версии для Android - только J2ME. ;-)
Sparx
как ты это запустил?
любознательный
4

Android на самом деле даже не «использует» Java. Язык, на котором написан код, - это Java, но Android SDK берет скомпилированный байт-код и преобразует его в байт-код Dalvik.

Так что это действительно ошибочное мнение, что Android работает на Java. В Android работает Dalvik, основные библиотеки которого основаны на Java-фреймворке, но в результате двоичные файлы не совпадают, а виртуальные машины также совершенно разные.

Так же, как Dalvik VM не будет запускать байт-код Java, Java VM не будет запускать байт-код Dalvik.

Преобразование библиотек в Dalvik возможно возможно, если все функции доступны в Android (или дополнительные библиотеки), но все, что имеет пользовательский интерфейс Java, не будет работать.

Райан Конрад
источник
Я на самом деле не согласен. Google не писал там свой язык под названием Java, они просто, я полагаю, взяли OpenJDK и назвали его Dalvik и т. Д. Для маркетинга.
YumYumYum
1
Вы когда-нибудь сравнивали байт-код dalvik с байт-кодом java, он отличается.
Райан Конрад
1
@ Google: это буквально совершенно неправильно. Google использовал синтаксис Java (и некоторые библиотеки), но, как заметил Райан Конрад, байт-код совершенно другой. Они не просто «переименовали» Java JDK в маркетинговых целях. Смотрите Dalvik в Википедии, чтобы узнать больше.
eldarerathis
3

Если файл JAR для JavaME

Существует MicroEmulator, который эмулирует JavaME с помощью JavaSE. Это позволяет конвертировать эти файлы JAR в АПК и установить его на вашем устройстве. Процесс описан здесь.

NetRunner предоставляет аналогичную функциональность.

поток
источник
Поток, связь с MicroEmulator, похоже, изменилась на что-то еще, я полагаю. Не могли бы вы обновить ответ.
Повелитель огня
-3

Нет, вы не можете установить JAR-файлы в Android, для установки приложений из JAR нам нужна поддержка J2ME, которая отсутствует в телефонах Android.

Рияз Мохаммед Ибрагим
источник