我目前正在开发一个 Android 框架,该框架可以将方法调用委托(delegate)给服务器(运行 JVM),该服务器将执行该方法并返回结果,因此它将在与著名的 Java RMI 非常相似。我们的团队还计划实现动态代码加载,这样您就可以在服务器上执行 Android 类的方法,即使它还不知道该类的实现(它会首先下载对象类的定义) .
因此,我试图找出在运行时将 Android 类导出到服务器的最佳方法。主要问题是 Dalvik 运行的 *.dex
文件与典型 JVM 执行的 *.class
文件具有不同的结构和不同的处理方式。
到目前为止,我们一直在考虑指定 dx 工具在编译源代码时应保留某些 *.class
文件。有一个像 --keep-classes
这样的选项,但它会全局保留类,而我们不需要为每个类都创建 *.class
文件。另外,据我所知,没有办法从 ADT Eclipse 管理 dx 工具选项。
您认为我们最适合采用哪种方法?
最佳答案
如果您将脚本传递到服务器怎么办? Java可以在运行时运行脚本,支持python、ruby、javascript等。
看这里: Calling Python from Java through scripting engine (jython)?
这里: http://www.ibm.com/developerworks/java/library/j-javascripting1/
您仍然需要做一些工作来弄清楚如何将结果传回。
关于java - Android 和运行 JVM 的服务器之间的动态代码加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15955382/