java - Android 像 C++ 中的内联汇编一样运行 Dalvik 字节码

标签 java android assembly bytecode inline-assembly

我很好奇是否可以在 Android 的 Java 中运行字节码,类似于 中使用内联汇编的方式。 。在 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/

相关文章:

java - XJC - 编译器无法接受此类定制

android - 大响应的http异步响应

javascript - 如何为移动设备制作固定的 div,但在单击时用滚动填充视口(viewport)

algorithm - 分析 1 个可变寄存器指令集?

c - 如何从另一个可执行文件调用二进制文件的 _start?

java - AtomicLong 与 Long 性能

java - 用户注册表单 Spring MVC

android - 我怎样才能在 Android 的 WebView 中检索 jpg 图像

c - 有没有办法转储所有物理内存值?

Java:我自己的 MANIFEST.MF 文件在 maven 构建的 jar 中不生效