【问题标题】:JiBX on Android (or any other build-time bytecode manipulating library)Android 上的 JiBX(或任何其他构建时字节码操作库)
【发布时间】:2010-10-31 19:21:25
【问题描述】:

我正在考虑将JiBX 用于必须在Blackberry 和RIM 上运行的项目。虽然似乎J2ME 使用JiBX 已被社区考虑(根据 JiBX jira 票证),但 Android 相对较新。

因此,问题是:是否有人在 Android 上使用 JiBX 或任何其他需要在构建时修改您的类字节码的库取得任何成功(或问题)?

已经有关于如何在 Android 上运行此类库的讨论(与使用运行时字节码检测的库相比),但我没有看到太多关于人们实际尝试这样做的报告。

【问题讨论】:

    标签: java xml android bytecode jibx


    【解决方案1】:

    它不会工作,因为 android 不执行字节码。 Android 的 java 运行时使用基于寄存器的虚拟机 (Dvalik),它执行 .dex 文件而不是类文件。理论上你可以生成这些而不是 java 字节码。

    【讨论】:

    • 虽然 Dalvik 确实运行特殊的字节码格式 .dex,但有一个名为 dx 的 google 提供的工具可以将标准 java 字节码转换为 .dex 格式(查看 developer.android.com/guide/developing/tools/…)。因此,从理论上讲,任何进行编译后编译时字节码操作、生成标准兼容 java 字节码的库仍然适用于 android —— dx 工具只是将生成的字节码转换为 .dex。
    【解决方案2】:

    是的,我已经使用 JiBX 在 android 应用程序中构建了一个原型。将 jibx jar 添加为 android 项目库后,它们将自动打包到 dex 中。事实上,JiBX 绑定适用于 Android。我只需要包括 3 个罐子。 Jibx-run.jar、jibx-ws-0.9-bata.jar 和我生成的绑定 jar。然后android应用程序可以进行soap客户端调用,xml到对象的绑定由jibx在内部处理。

    【讨论】:

      【解决方案3】:

      好的,所以我决定只在 XMLPull api 之上编写 xml 解析代码,没有任何花哨的技巧。

      如果我的模式变得比现在更复杂(而且我有时间),我很想尝试编写一个基于 ANTLR 的 XML 解析器生成器来为各个模式生成解析器的实际 Java 代码。

      目前,afaik,移动端的 java 生成比移动端的字节码生成更安全、更好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-17
        相关资源
        最近更新 更多