0x02.什么是Dalvik
1.Dalvik虚拟机
Dalvik虚拟机,是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。它可以支持已转换为.dex(即“Dalvik Executable”)格式的Java应用程序的运行。.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。
2.与Java虚拟机区别
- Dalvik虚拟机是基于寄存器,而JVM虚拟机是基于栈,
- Dalvik有专属文件执行格式dex(dalvik executable),JVM执行的是Java字节码。
- Dalvik VM速度比JVM更快,占用空间更少
3.修改Dalvik的字节码
- 通过Dalvik的字节码不能直接看到原来的逻辑代码,需要借助第三方工具,例如Apktool或dex2jar+jd-gui工具来帮助查看。
- 如果想修改apk则需要操作的文件是.smali文件,而不是导出来的Java文件重新编译