Wie kann ich JAR-Dateien auf meinem Android installieren?


9

Ich habe einige 3D-Spiele heruntergeladen, entpackt und .jar-Dateien erhalten. Wie kann ich diese in Android verwenden? Ich habe ein Galaxy S mit 2.1.

Antworten:


13

Obwohl Android Java verwendet, unterstützt es keine normalen JAR-Dateien. Stattdessen wird ein Android-spezifisches Format namens APK verwendet. Der Hauptunterschied besteht darin, dass Android nicht die normale Java Virtual Machine verwendet, sondern eine eigene Dalvik Virtual Machine enthält, die für Android optimiert ist.


Sie meinen zu sagen, dass ich keine JAR-Datei in Android 2.1 installieren kann.
Jeevan Bhatt

5
@ Jeevan Bhatt: Genau. Dies kann sich in Zukunft ändern (wenn jemand eine JVM für Android schreibt), aber ich würde meinen Atem nicht anhalten.
Onik

Ich habe im Internet gesucht und festgestellt, dass Android nur apk-Dateien unterstützt, also muss ich .jar von einem Konverter in .apk konvertieren, stimmt das?
Jeevan Bhatt

4
Ja, es gibt einige Konverter, aber diese sind nicht sehr zuverlässig. Das Problem ist, dass Android einen Teil der gesamten Java-Bibliothek verwendet und eigene Bibliotheken hinzufügt, um die meisten Funktionen zu steuern. Beispielsweise können die Klassen der grafischen Benutzeroberfläche unter Android nicht verwendet werden (z. B. Swing). Außerdem muss der Konverter alle UI-Ereignisse wie Touchscreen- / Tastaturfunktionen neu schreiben. Anscheinend können einige Konverter dies für MIDP-Applets (J2ME) tun, die auf älteren Telefonen verwendet werden, aber normale Java-Apps funktionieren (wahrscheinlich) nicht. Sie können die Konverter ausprobieren, aber höchstwahrscheinlich wird das Ergebnis verzögert, fehlerhaft oder abstürzt.
Onik

9

Ich möchte Ryan Conrad & Onik teilweise nicht zustimmen.

Ich habe ein Samsung Spica und es wurde mit einer App vorinstalliert, während es v1.6 und jetzt 2.1 (beide offizielle Samsung India-Versionen) lief - genannt Java ME Apps.

Ich verwende mehrere Java-Apps (für Nicht-Android-Telefone).

Beide sind JAR-Dateien und werden nach der Ausführung über die Java ME-App wie erwartet ausgeführt.

Zusammenfassend lässt sich sagen, dass es eine Möglichkeit gibt, JAR-Apps auf Android auszuführen. Ich stimme jedoch allen anderen erwähnten WRT APKs und Dalvik zu.


Diese Formel 1 App, die Sie verlinkt haben, scheint eine native Android App zu sein und keine Java / J2me App.
Irfan

1
Jetzt ist es ... als ich es ursprünglich gepostet hatte, gab es keine Android-Version - nur die J2ME-Version. ;-)
Sparx

Wie hast du das gemacht?
Neugierig

4

Android "benutzt" Java nicht einmal. Die Sprache, in der der Code geschrieben ist, ist Java, aber das Android SDK verwendet den kompilierten Bytecode und konvertiert ihn in den Dalvik-Bytecode.

Es ist also wirklich ein Missverständnis, dass Android Java ausführt. Android führt Dalvik aus, dessen Kernbibliotheken auf dem Java-Framework basieren, aber die am Ende resultierenden Binärdateien sind nicht dieselben, und die virtuellen Maschinen sind auch völlig unterschiedlich.

So wie auf der Dalvik-VM kein Java-Bytecode ausgeführt wird, wird auf der Java-VM kein Dalvik-Bytecode ausgeführt.

Das Konvertieren von Bibliotheken in Dalvik ist wahrscheinlich möglich, wenn alle Funktionen in Android (oder zusätzlichen Bibliotheken) verfügbar sind, aber alles, was über eine Java-Benutzeroberfläche verfügt, nicht funktioniert.


Ich bin eigentlich anderer Meinung. Google hat dort keine eigene Sprache namens Java geschrieben, ich glaube nur, dass ich das OpenJDK genommen und es Dalvik usw. usw. für das Marketing genannt habe.
YumYumYum

1
Haben Sie jemals Dalvik-Byte-Code mit Java-Byte-Code verglichen, es ist anders.
Ryan Conrad

1
@ Google: Das ist buchstäblich völlig falsch. Google verwendete die Java-Syntax (und einige Bibliotheken), aber wie Ryan Conrad feststellte, ist der Bytecode völlig anders. Sie haben das Java JDK nicht nur zu Marketingzwecken "umbenannt". Weitere Informationen finden Sie in Dalviks Wikipedia-Eintrag .
Eldarerathis

3

Wenn die JAR-Datei für JavaME ist

Es gibt MicroEmulator , der JavaME mit Hilfe von JavaSE emuliert. Dies ermöglicht es, diese JAR-Dateien in ein Apk zu konvertieren und auf Ihrem Gerät zu installieren. Der Prozess wird hier beschrieben.

NetRunner bietet eine ähnliche Funktionalität.


Flow, dieser MicroEmulator-Link scheint sich zu etwas anderem geändert zu haben, nehme ich an. Könnten Sie bitte die Antwort aktualisieren.
Feuerlord

-3

Nein, Sie können keine JAR-Dateien in Android installieren. Um Anwendungen aus JAR zu installieren, benötigen wir J2ME-Unterstützung, die nicht in Android-Handys enthalten ist.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.