为什么Java SE编译的JAR文件能够在Android中执行

Che*_*eng 3 java android

在Android OS中,我能够运行在桌面环境下编译的几个Java JAR文件.例如,jtransforms

我可以知道为什么会这样吗?我认为来自Oracle的JVM和来自Google的Dalvik VM使用两种不同的字节代码格式?为什么Java SE编译的JAR文件能够在Android中执行?

Mat*_*der 6

我假设你只是在你的android项目中包含jar文件?然后它工作,因为在构建过程中它被转换(对你自己的类文件也是如此!)到dex格式.这是通过dex(dx)工具完成的.在eclipse中使用ADT会自动为您完成.它当然也可以在android sdk中手动使用:

android-sdk-windows\platform-tools\dx.bat如果在Windows上.