Я завантажив кілька 3D-ігор, розпакував їх і отримав .jar файли. Як я можу їх використовувати в Android? У мене Galaxy S працює 2.1.
Я завантажив кілька 3D-ігор, розпакував їх і отримав .jar файли. Як я можу їх використовувати в Android? У мене Galaxy S працює 2.1.
Відповіді:
Хоча Android використовує Java, він не підтримує звичайні файли JAR. Натомість використовується специфічний для Android формат під назвою APK. Основна відмінність полягає в тому, що Android не використовує звичайну віртуальну машину Java, а містить власну віртуальну машину Dalvik, оптимізовану для Android.
Я хотів би частково не погодитися з Ryan Conrad & Onik.
У мене є Samsung Spica, і він був попередньо завантажений додатком, поки він працював v1.6 і тепер працює 2.1 (обидві офіційні версії Samsung India) - під назвою Java ME Apps.
Я запускаю кілька додатків Java (призначені для телефонів, які не є Android) через нього.
Обидва - це файли JAR і один раз запускаються через додаток Java ME, обидва запускаються як очікувалося.
Отже, підсумовуючи, є спосіб запустити програми JAR на Android. Однак я погоджуюся з усім іншим згаданим WRT APK та Dalvik.
Android насправді навіть не "використовує" Java. Мовою, на якій написаний код, є Java, але SDK для android приймає складений байтовий код і перетворює його в байт-код Dalvik.
Тож справді помилковим є уявлення, що Android працює на Java. Android запускає Dalvik, основні бібліотеки якого базуються на базі Java, але кінцеві отримані бінарні файли не однакові, а віртуальні машини також зовсім інші.
Так само, як Dalvik VM не запустить байт-код Java, Java VM не запустить байт-код Dalvik.
Перетворення бібліотек у Dalvik, ймовірно, можливо, якщо всі функції доступні в Android (або додаткових бібліотеках), але все, що має інтерфейс Java, не буде працювати.
Існує MicroEmulator, який емулює JavaME за допомогою JavaSE. Це дає можливість перетворити ці файли jar в apk та встановити його на своєму пристрої. Процес описаний тут.
NetRunner забезпечує подібний функціонал.
Ні, ви не можете встановити jar-файли в android, для встановлення програм з jar нам потрібна підтримка J2ME, якої немає в андроїд-телефонах.