@808f45a19048
public class MyMethodVisitor extends MethodVisitor {
public MyMethodVisitor(MethodVisitor methodVisitor) {
super(Opcodes.ASM4, methodVisitor);
}
//每个字节码指令都会回调一次该方法
@Override
public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) {
super.visitMethodInsn(opcode, owner, name, desc, itf);
}
//访问开始
@Override
public void visitCode() {
super.visitCode();
System.out.println("visitCode visitCode visitCode visitCode");
mv.visitLdcInsn("修改的数据");
mv.visitVarInsn(Opcodes.ASTORE, 2);
}
//访问结束
@Override
public void visitMaxs(int maxStack, int maxLocals) {
super.visitMaxs(maxStack, maxLocals);
}
}
两种形式的安卓字节码插桩字节码插桩发生时机 首先需要编写gradle插件 由上图可知,gradle插件可以由三种方式编写: 直接在.gralde文件。可以在这个文件中 以脚本文件的方式 实现字节码插...