android - 动态加载并执行预编译代码(oat文件)

标签 android virtual-machine dalvik android-runtime

由于 Google 在较新的 Android 版本中删除了“openDexFile(byte[] fileContents)”,因此我们正在寻找替代品,此外我们也更愿意使用预编译代码(参见 dex2oat)。

有人知道执行该任务的函数吗?我们不想将文件也存储在磁盘上。

也许替换内存中应用程序的代码怎么样?在新的 ART VM 下这可能吗?我正在寻找有关此主题的更多信息。我知道以前的 Dalvik VM 可以实现这一点。

感谢任何帮助。谢谢。

最佳答案

一般情况下,您无法加载预编译的odex/oat 文件。这些文件严重依赖于编译时使用的确切框架,因此它们不可在设备之间移植。

您可以使用 DexClassLoader 在 dalvik 和 art 上动态加载 dex 文件。 。参见,例如http://android-developers.blogspot.com/2011/07/custom-class-loading-in-dalvik.html

关于android - 动态加载并执行预编译代码(oat文件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33479835/

相关文章:

javascript - ReferenceError : Set is not defined. 在 Ionic 应用程序中使用 Set 数据结构时出错

android - 一个应用程序可以将其权限授予android中的另一个应用程序吗?

amazon-ec2 - Amazon EBS EC2 实例 IP 在重启时更改

java - 当 OOM 发生时,如何让 dalvik 转储整个应用程序堆内存

android - dex 加载程序无法执行 dex : method ID not in [0, 0xffff]:65536

java - Java中包类和私有(private)静态内部类的区别?

android - Android 应用程序的测试版本和 proguarded 版本 - NoSuchMethodError

android - 市场过滤器,如何排除布局-notlong

linux - 是否可以使用 VMware 在 USB 设备上模拟 Linux?

linux - Fiji(ImageJ) 加载时间太长(在 Linux 上),以及冗长的错误消息