文章目录
一、动态字节码技术
二、Dalvik & ART 虚拟机
三、Android 字节码打包过程
总结
一、动态字节码技术
----
动态字节码技术 就是在 运行时 , 动态修改 Class 字节码...;
常用的动态字节码技术 :
Javassist : 创建 / 分析 / 编辑 Java 字节码文件 ;
ASM : 操作 / 分析 Java 字节码文件 ;
使用 Javassist 框架 , 可以自动查找要修改的内容所在字节码文件中的位置...; 打包后的字节码文件是 dex 文件 ; 程序在 CPU 上运行 , 通过执行寄存器上的指令对数据进行操作 ;
jar 文件与 dex 文件 对比图 :
JVM 中有 JIT 即时编译器 , 代码在运行时..., 边解释 , 边运行 , 如果有一段代码经常运行 , 则可以通过 JIT 即时编译器 提前准备 ,
三、Android 字节码打包过程
----
Android 源码打包成安装文件 , 安装到设备中...字节码文件打包到 dex 文件中 ;
通过 APK Builder 将 dex 文件 / 资源文件 / AIDL 文件 / SO 动态库 等 , 打包到 APK 安装包中 ;
总结
推荐书籍 :
深入理解