我很好奇是否可以在 Android 的 Java 中运行字节码,类似于 c++ 中使用内联汇编的方式。 。在 C++ 中,我可以运行汇编并在程序中使用其结果。
我不想在运行时但在实际编译 apk 之前注入(inject)字节码。
// example of MSVC-syntax inline-asm syntax; not actually doing anything useful.
__asm {
mov bl, 2
sub bl, 0
div bl
add ax, 0
}
最佳答案
Java 中无法嵌入内联汇编。 Java,该语言已指定,并且该规范不包括内联汇编。但是,您的 Java 代码最终会编译为 dex 文件。
Android平台只看到dex文件,并不关心它们是如何生成的。您可以使用 smali 等工具手动编写 dex 字节码。此外,此类自定义类可以与 Java 或其他语言编译的类自由交互。但请注意,Java 语言比字节码更严格,并且非 Java 字节码不能保证维护 Java 语言中保证的不变量。
关于java - Android 像 C++ 中的内联汇编一样运行 Dalvik 字节码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40698840/