我将学习一点关于 Dalvik VM、dex 和 Smali 的知识。
我读过关于 smali 的文章,但仍然无法清楚地理解它在编译器链中的位置。以及它的目的是什么。
这里有一些问题:
- 据我所知,dalvik 作为其他虚拟机运行字节码,在 Android 的情况下它是 dex 字节码。
- 什么是smali?Android OS 或 Dalvik Vm 是否直接使用它,或者它只是相同的 dex 字节码但对人类来说更具可读性?
- 它是否类似于 Windows 的反汇编程序(如 OllyDbg)程序可执行文件由不同的机器代码(例如 D3、5F)组成,并且每个机器代码都有适当的汇编命令,但 Dalvik Vm 也是软件,所以 smali 是字节码的可读表示
- 有新的艺术环境。它仍然使用字节码还是直接执行本机代码?
先感谢您。