【字节码插桩】AOP 技术 ( “字节码插桩“ 技术简介 | AspectJ 插桩工具 | ASM 插桩工具 )文章目录
一、" 字节码插桩 " 技术简介
二、AspectJ 插桩工具
三、ASM 插桩工具
一、" 字节码插桩 " 技术简介
----
性能优化 , 插件化 , 热修复 , 等技术都需要用到 " 字节码插桩 , 监控应用各种性能 , 如页面打开时间 , 页面停留时间 ; 友盟应该用了该技术 ;
代码分析 : 使用编译时字节码插桩技术 , 自定义代码检查 ;
字节码插桩原理 : 使用 javac 编译出 . 插桩工具
----
AspectJ 插桩工具 :
使用简单 : 使用 AspectJ 插桩工具修改字节码文件 , 不需要了解 .class 字节码文件的二进制格式 ;
成熟稳定 : 字节码操作 如果错了 1
个字节 , 整个字节码就无法正常工作 , 因此修改字节码操作 , 必须稳定 , 这也是插桩工具的必备条件 ;
固定切入点 : AspectJ 只能在固定的几个切入点插入 , 如 : 方法调用前 , 对原来的性能也有一定影响 , 修改后的字节码文件 性能低于 修改前的字节码文件 ;
三、ASM 插桩工具
ASM 插桩工具 :
操作灵活 : 可以在字节码 任何位置 , 自定义修改 , 插入 , 删除 