由于我还没有完全理解的原因,有些Java库/软件包在部署到Android设备时无法正常运行(甚至运行)。像Guice或Apache Camel这样的图书馆。
不是iOS,.NET或JavaScript开发人员,我不知道iPhone,Windows手机或黑莓是否会遇到相同/类似的问题。
无论如何,我们至少有一个场景(Java / Android),其中PhoneGap为该平台上可能无法运行的目标平台生成代码。所以我问:PhoneGap是否足够了解每个目标平台,不能生成无法在其上运行的本机代码?
换句话说,Apache Camel(例如)不会在Android设备上运行。当我使用GWT将Camel路由(带有端点)编译成JavaScript,然后使用PhoneGap将其包装并打包APK时会发生什么? PhoneGap会说“嘿,这是Camel的东西;你不能在Android设备上运行”并且失败了,或者是否有可能将“不可运行”的代码泄露到PhoneGap应用程序中?
答案 0 :(得分:2)
正如您自己指出的那样,GWT将您的Java代码编译为Javascript。
因此,phonegap只能看到Javascript代码,它无法告诉它是从Java编译的(它不再包含任何java源代码)。它会将其视为普通的网络应用程序,它只会执行生成的javascript源代码。