本文有对其他博客的一些借鉴。 我们都知道Dalvik虚拟机运行的是.dex文件。.dex文件又是通过.class文件通过dx工具编译而来。今天要体验的就是一个非常有意思的技术,字节码的插桩。 大部分时候都会用埋点来介绍这个技术。原理就是,通过Transform这个类去获取项目中的.class文件。然后使用AMS提供的几个类去解析.class文件。通过对类名,方法名的判断,筛选出你需要修改的.class文件。然后在需要修改的地方插入你想要的被转成字节码的代码。 最复杂的部分是:.class文件有着自己很严格的格式,如果我们想注入代码时,不是直接插入相关的指令即可。我们还需要去找到相应的Stack