
插桩
图你怀中安稳
人生的境界在于不断的提升自我素养,探索未知的世界
展开
-
编译插桩利用ASM 插入字节码
使用ASM,插入字节码到Activity文件简单记录一下ASM在此需求中的实现插入字节码一、 ASMASM 是一个Java字节码操控框架, 可以用来改变或者增强现有类的功能,可以通过解析.class文件中的字节码,经过一些处理,生成新的字节码1.1 在这里仅完成需求,需要主要的几个类:ClassReader 负责解析 .class 文件中的字节码,并将所有字节码传递给 Cla...原创 2020-04-28 15:23:51 · 1020 阅读 · 0 评论 -
编译插桩-Transform
自定义好gradle之后,需要实现遍历class文件的逻辑,拿到所有的.class文件之后才能做之后的工作, 然而这部分的功能主要靠transform API 实现Transform简单来讲,Transform 是Gradle在编译项目时的一个task,在.class 文件转换成.dex的流程中会执行这些task, 很明显,.class文件转换为.dex之前就是我们操作.class文件的...原创 2020-04-28 14:45:31 · 549 阅读 · 0 评论 -
编译插桩之自定义gradle插件
创建自定义的gradle 插件一、 创建Android Librarygradle 就是groovy 语言编写的1.1 main 文件夹下创建groovy文件夹除了src下的main目录和build.gradle 其他的都可以删了1.2 创建groovy 文件groovy 文件实现Plugin接口,并且实现apply()方法package kpa.custom.plug...原创 2020-04-24 10:00:04 · 450 阅读 · 1 评论 -
编译插桩
编译插桩就是在代码编译期间修改已有的代码或者生成新代码为什么说是编译插桩呢?其实它是一个动作和一个修饰,编译: 代码在编译期间,插桩: 在编译时期将需要的动作或者是逻辑插入已经编译的class文件中。任何不能促使自己提高生产力的技术都没有学习的意义,那怎么将这个技术使用到Android开发中呢?首先,在Android中,编译的过程为.java -> .class -> .de...原创 2020-04-23 17:41:16 · 835 阅读 · 0 评论