android修改字节码实现打印方法的入参

196 阅读1分钟

原项目地址:lijiankun24 / Koala

文件结构:

文件结构:

|--app // demo
|--buildSrc // asm代码
|--koala // 核心代码

原理:

  1. koala中,定义注解和逻辑代码,即实现方法的入参、返回结果和执行耗时等功能
  2. app中,在目标方法上添加@KoalaLog注解
  3. buildSrc中,通过Android Gradle Plugin(AGP)Transform API在编译生成.class文件后,利用asm获取所有方法的信息,在包含的KoalaLog注解的方法中,添加(实现方法的入参、返回结果和执行耗时等功能的)代码,具体实现在com.lijiankun24.koala.KoalaLogMethodVisitor#onMethodEnter