
aop
文章平均质量分 95
hzulwy
技术嘛!最重要的是自己理解,然后才是分享
展开
-
Android热修复2(ASM技术的运用)
我们借由上一篇文件的项目引出下面这个问题。如果MainActivity类中只引用了:Utils类。当打包dex时,MainActivity与Utils都在classes.dex中,则加载时MainActivity类会被标记为。如果使用补丁包中的Utils类取代出现bug的Utils,则会导致MainActivity与其引用的Utils不在同一个Dex,但MainActivity已经被打上标记,此时出现冲突。导致校验失败!会报错误。原创 2022-11-09 17:34:33 · 936 阅读 · 1 评论 -
APT和Javapoet的精彩联动
APT,即注解处理器,是一种处理注解的工具。确切来说,它是javac的一个工具,用来在编译时扫描和处理注解。注解处理器以Java代码(或者编译过的字节码)作为输入,以生成.java文件作为输出。简单来说,就是在编译期通过注解生成.java文件。自定义注解处理器,需要继承AbstractProcessor类。对于AbstractProcessor来说,最重要的就是process方法,process方法处理的核心是Element对象。下面我们详细看下Element对象。除了上述的几个方法外,APT中还有以下原创 2022-07-05 21:04:34 · 777 阅读 · 1 评论 -
Android开发中Javassist的妙用
它可以在一个已经编译好的类中添加新的方法,或者修改已有的方法,并且不需要对字节码方面有深入的了解。因为编译器在编译引用CtClass代表的Java类的源代码时,可能会引用CtClass对象,所以一旦一个CtClass被创建,它就会被保存在ClassPool中。如果调用了ClassPool的get方法,ClassPool会再次读取这个类文件,并创建一个新的CtClass对象。toClass方法请求当前线程的ClassLoader加载CtClass对象所代表的类文件,它返回的是该类文件的Class对象。原创 2022-11-09 00:18:04 · 846 阅读 · 0 评论