ASM函数插桩

ASM

介绍的文章:

相关知识点:

自定义Gradle插件+ASM实现埋点,记录页面被打开\关闭(对应ActivityonCreate()onDestory()
思路: 在class文件转换成dex之前,修改它,修改完成覆盖class文件。

class文件:Java源文件经过javac后生成的一种紧凑的8位字节的二进制流文件。
插入点:“dex”节点,表示将class文件打包到dex文件的过程,其输入包括class文件以及第三方依赖的class文件
关于Transform API :从1.5.0-beta1开始,Gradle插件包含一个Transform API,允许第三方插件在将编译后的类文件转换为dex文件之前对其进行操作。
关于混淆:可以不用当心。混淆其实是个ProguardTransform,在自定义的Transform之后执行。