如何在Android上安装.jar文件?


9

我下载了一些3D游戏,将其解压缩并获得了.jar文件。如何在Android中使用它们?我有运行2.1的GalaxyS。

Answers:


13

尽管Android使用Java,但它不支持普通的JAR文件。相反,它使用一种称为APK的Android特定格式。主要区别在于Android不使用普通的Java虚拟机,而是包含针对Android优化的自己的Dalvik虚拟机。


您的意思是说我无法在Android 2.1中安装jar文件。
Jeevan Bhatt

5
@Jeevan Bhatt:是的。将来这会改变(如果有人为Android编写JVM),但我不会屏息。
onik 2011年

我确实在互联网上搜索,然后才知道android仅支持apk文件,因此我需要通过某些转换器将.jar转换为.apk,这是真的吗?
Jeevan Bhatt

4
是的,有一些转换器,但是这些转换器不是很可靠。问题是,Android使用了整个Java库的一部分,并添加了它自己的库来控制大多数功能。例如,图形用户界面类不能在Android(例如swing)上使用。转换器还需要重写所有UI事件,例如触摸屏/键盘功能。显然,某些转换器可以针对旧手机上使用的MIDP小程序(J2ME)进行此操作,但普通的Java应用程序(可能)将无法工作。您可以尝试使用转换器,但是结果很可能会滞后,出现故障或崩溃。
onik 2011年

9

我想部分不同意Ryan Conrad和Onik。

我有一个三星Spica,它在运行v1.6时现在预装了一个应用程序,现在运行2.1(均为三星印度官方版本),称为Java ME Apps。

我正在通过它运行多个Java应用程序(适用于非Android手机)。

两者都是JAR文件,并且一旦通过Java ME应用程序运行,都可以按预期运行。

综上所述,有一种方法可以在Android上运行JAR应用程序。但是,我确实同意所有其他提到的WRT APK和Dalvik。


这个公式1应用您链接似乎是一个原生的Android应用程序,而不是Java / J2ME应用程序..
伊尔凡

1
现在是...当我最初发布它时,还没有Android版本-只是J2ME版本。;-)
Sparx

你是怎么运行的?
好奇的2015年

4

Android实际上甚至没有“使用” java。编写代码的语言是Java,但是android SDK会采用已编译的字节码并将其转换为Dalvik字节码。

因此,Android运行Java确实是一个误解。Android运行Dalvik,其核心库基于Java框架,但是最终生成的二进制文件并不相同,虚拟机也完全不同。

就像Dalvik VM将不会运行Java字节码一样,Java VM将不会运行Dalvik字节码。

如果所有功能都可以在Android(或其他库)中使用,则将库转换为Dalvik可能是可行的,但是任何具有Java UI的功能都将无法使用。


我实际上不同意。谷歌没有写自己的语言叫做Java,他们只是简单地相信就拿了OpenJDK并命名为Dalvik等用于市场营销。
YumYumYum 2011年

1
您曾经将dalvik字节码与Java字节码进行过比较吗?
瑞安·康拉德

1
@Google:从字面上看,这是完全错误的。Google使用Java语法(和某些库),但是正如Ryan Conrad指出的那样,字节码是完全不同的。他们不只是为了市场营销目的而“重命名” Java JDK。有关更多信息,请参见Dalvik的Wikipedia条目
eldarerathis 2011年

3

如果jar文件用于JavaME

MicroEmulator在JavaSE的帮助下模拟JavaME。这样就可以将这些jar文件转换为apk并将其安装在您的设备上。该过程在这里描述。

NetRunner提供了类似的功能。


顺便说一下,该MicroEmulator链接似乎已更改为我认为的其他内容。您能否更新答案。
Firelord

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.