对于《Java ASM 系列一:Core API》有配套的视频讲解,可以从这里 和这里 进行查看;同时,也可以从Gitee 或Github 下载源代码。
主要内容
第一章 基础
第二章 生成新的类
- ClassVisitor 介绍
- ClassWriter 介绍
- ClassWriter 代码示例
- FieldVisitor 介绍
- FieldWriter 介绍
- MethodVisitor 介绍
- MethodWriter 介绍
- 方法的初始 Frame
- MethodVisitor 代码示例
- Label 介绍
- Label 代码示例
- frame 介绍
- Opcodes 介绍
- 本章内容总结
第三章 转换已有的类
- ClassReader 介绍
- ClassReader 代码示例
- Class Transformation 的原理
- Type 介绍
- 修改已有的方法(添加-进入和退出)
- 修改已有的方法(添加-进入和退出-打印方法参数和返回值)
- 修改已有的方法(添加-进入和退出-方法计时)
- 修改已有的方法(删除-移除 Instruction)
- 修改已有的方法(删除-清空方法体)
- 修改已有的方法(修改-替换方法调用)
- 查找已有的方法(查找-方法调用)
- 修改已有的方法(优化-删除-复杂的变换)
- 本章内容总结
第四章 工具类和常用类
- asm-util 和 asm-commons
- CheckClassAdapter 介绍
- TraceClassVisitor 介绍
- Printer/ASMifier/Textifier 介绍
- AdviceAdapter 介绍
- GeneratorAdapter 介绍
- LocalVariablesSorter 介绍
- AnalyzerAdapter 介绍
- InstructionAdapter 介绍
- ClassRemapper 介绍
- StaticInitMerger 介绍
- SerialVersionUIDAdder 介绍
参考资料
- 课程源码:learn-java-asm
- ASM 官网
- ASM 源码:GitLab
- ASM API 文档:javadoc
- ASM 使用手册:英文版、中文版
- ASM mailing list
- 参考文献
- Oracle: The Java Virtual Machine Specification, Java SE 8 Edition