我正在考虑将其JiBX
用于必须在 Blackberry 和 RIM 上运行的项目。虽然社区似乎已经考虑过使用(根据 JiBX jira 票证),但 Android 相对较新J2ME
。JiBX
因此,问题是:是否有人在 Android 上使用 JiBX 或任何其他需要在构建时修改类字节码的库取得任何成功(或问题)?
已经有关于如何在 Android 上运行此类库的讨论(与使用运行时字节码检测的库相比),但我没有看到太多关于人们实际尝试这样做的报告。
它不起作用,因为 android 不执行字节码。Android 的 java 运行时使用基于寄存器的虚拟机 (Dvalik),它执行 .dex 文件而不是类文件。理论上,您可以生成那些而不是 java 字节码。
是的,我已经使用 JiBX 在 android 应用程序中构建了原型。将 jibx jar 添加为 android 项目库后,它们将自动打包到 dex 中。事实上,JiBX 绑定适用于 Android。我只需要包括 3 个罐子。Jibx-run.jar、jibx-ws-0.9-bata.jar 和我生成的绑定 jar。然后,android 应用程序可以进行soap 客户端调用,对象绑定的xml 由jibx 在内部处理。
好的,所以我决定只在 XMLPull api 之上编写 xml 解析代码,没有任何花哨的技巧。
如果我的模式变得比现在更复杂(而且我有时间),我很想尝试编写一个基于 ANTLR 的 XML 解析器生成器来为各个模式生成解析器的实际 Java 代码。
目前,afaik,移动端的 java 生成比移动端的字节码生成更安全、更好。