Як я можу встановити .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
@Jeevan Bhatt: Саме так. Це може змінитися в майбутньому (якщо хтось пише JVM для Android), але я б не затримував дихання.
onik

Я шукав в Інтернеті і дізнався, що Android підтримує лише apk-файл, тому мені потрібно перетворити .jar в .apk деяким конвертером, це правда?
Джеван Бхатт

4
Так, є деякі перетворювачі, але вони не дуже надійні. Проблема полягає в тому, що Android використовує частину всієї бібліотеки Java і додає власні бібліотеки для контролю більшості функцій. Наприклад, класи Графічний інтерфейс користувача не можна використовувати на Android (наприклад, гойдалка). Також конвертору потрібно переписати всі події інтерфейсу, такі як сенсорний екран / функціональність клавіатури. Мабуть, деякі перетворювачі можуть це зробити для MIDP-аплетів (J2ME), які використовуються на старих телефонах, але звичайні програми Java (ймовірно) не працюватимуть. Ви можете спробувати перетворювачі, але, швидше за все, результат буде відставати, бути помилковим або аварійним.
onik

9

Я хотів би частково не погодитися з Ryan Conrad & Onik.

У мене є Samsung Spica, і він був попередньо завантажений додатком, поки він працював v1.6 і тепер працює 2.1 (обидві офіційні версії Samsung India) - під назвою Java ME Apps.

Я запускаю кілька додатків Java (призначені для телефонів, які не є Android) через нього.

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

Отже, підсумовуючи, є спосіб запустити програми JAR на Android. Однак я погоджуюся з усім іншим згаданим WRT APK та Dalvik.


Цей додаток Формули-1, який ви пов’язали, здається, є рідним додатком для Android, а не додатком java / j2me ..
Ірфан

1
Тепер це… коли я спочатку опублікував це, не було версії Android - лише J2ME. ;-)
Спаркс

як ти це запустив?
допитливий

4

Android насправді навіть не "використовує" Java. Мовою, на якій написаний код, є Java, але SDK для android приймає складений байтовий код і перетворює його в байт-код Dalvik.

Тож справді помилковим є уявлення, що Android працює на Java. Android запускає Dalvik, основні бібліотеки якого базуються на базі Java, але кінцеві отримані бінарні файли не однакові, а віртуальні машини також зовсім інші.

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

Перетворення бібліотек у Dalvik, ймовірно, можливо, якщо всі функції доступні в Android (або додаткових бібліотеках), але все, що має інтерфейс Java, не буде працювати.


Я фактично не згоден. Google не написав там власної мови під назвою Java, просто просто я вважаю, що взяв OpenJDK і назвав її Dalvik тощо тощо для маркетингу.
YumYumYum

1
Ви коли-небудь порівнювали код байт-балвік з кодом байта Java, його різним.
Райан Конрад

1
@Google: Це, буквально, абсолютно неправильно. Google використовував синтаксис Java (і деякі бібліотеки), але, як зазначив Райан Конрад, байткод абсолютно інший. Вони не просто "перейменували" Java JDK для маркетингових цілей. Докладніше див. У статті Вікіпедії Далвіка .
eldarerathis

3

Якщо файл jar призначений для JavaME

Існує MicroEmulator, який емулює JavaME за допомогою JavaSE. Це дає можливість перетворити ці файли jar в apk та встановити його на своєму пристрої. Процес описаний тут.

NetRunner забезпечує подібний функціонал.


Потоку, посилання на MicroEmulator, здається, змінилося на щось інше, я думаю. Чи можете ви, будь ласка, оновити відповідь.
Firelord

-3

Ні, ви не можете встановити jar-файли в android, для встановлення програм з jar нам потрібна підтримка J2ME, якої немає в андроїд-телефонах.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.