【发布时间】:2010-10-30 10:10:33
【问题描述】:
我想在我的 Android 应用程序中直接针对正在运行的 Dalvik VM 实例执行操作码。我正在寻找类似于 C asm 函数的东西。我有一个 dalvik 的操作码列表,但我不熟悉如何直接执行它们,或者将它们写到 .class 文件中,然后从正在运行的应用程序中针对某种 VM CLI 命令(如 dalvikvm)执行它们。
【问题讨论】:
标签: android assembly dalvik opcodes
我想在我的 Android 应用程序中直接针对正在运行的 Dalvik VM 实例执行操作码。我正在寻找类似于 C asm 函数的东西。我有一个 dalvik 的操作码列表,但我不熟悉如何直接执行它们,或者将它们写到 .class 文件中,然后从正在运行的应用程序中针对某种 VM CLI 命令(如 dalvikvm)执行它们。
【问题讨论】:
标签: android assembly dalvik opcodes
这是不可能的。有关详细信息,请参阅 youtube 上有关 Dalvik 内部的 Google IO 2008 演示文稿。包括 Java 和 MS .NET 在内的移动 VM 不是完整的 VM,并且由于内存和性能限制,因此会遗漏可以完成您所描述的部分。
【讨论】:
过去是不可能的,但现在是可能的:
http://android-developers.blogspot.sg/2011/07/custom-class-loading-in-dalvik.html
基本上您可以创建自定义的 dex 文件并加载并执行它。
【讨论】: