动态生成Dalvik字节码到运行的Dalvik/Android应用程序

Mic*_*out 25 android dalvik

关于在运行时动态生成和加载java字节码到运行的Dalvik VM,已经多次询问(和回答)这个问题,但有没有办法在运行时将dex文件/字节码加载到应用程序中?

谢谢

Jes*_*son 23

Dalvik团队希望构建一流的运行时代码生成库.我们正在跟踪功能请求为Android错误6322.不幸的是,我们有很长的性能和正确性问题列表,所以我不能给你一个时间表来确定我们何时会花时间处理这个问题.

有一些替代方案,但他们都会做一些工作:

  • 在标准JVM上运行应用程序并在那里运行所有运行时代码生成.将.class文件从内存转储到文件,然后在这些文件上运行dx.如果你非常复杂,你可以将所有这些工作集成到你的构建中.

  • 将开源dx工具作为项目库包含在内,并从应用程序中以编程方式执行,可能在应用程序的类加载器中.这会使应用程序的二进制文件膨胀.

  • 你现在肯定可以编写自己的代码生成器.如果你给它一个Apache许可证,甚至更好! (3认同)
  • 更新:看看dexmaker让这很简单:http://code.google.com/p/dexmaker/ (3认同)

Com*_*are 5

有没有办法在运行时将dex文件/字节码加载到应用程序中?

看看DexFileDexClassLoader.