![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
android技术
吴小智的理想流
基于概念和逻辑推演本质,追求真理。为往圣继绝学。
展开
-
手写 Class 字节码解析技术(三)手写 Aspectj实现aop 一
说到AOP ,我想大家是再熟悉不过。AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。原创 2020-06-29 10:37:56 · 475 阅读 · 1 评论 -
android APT 之IOC功能
上章AOP章节讲到了APT功能,这里我们来详解下APT功能 APT(Annotation Processing Tool)即注解处理器,注解处理器 Java5 中叫APT(Annotation Processing Tool),在Java6开始,规范化为 Pluggable Annotation Processing。Apt应该是这其中我们最常见到的了,难...原创 2019-02-28 11:11:16 · 756 阅读 · 0 评论 -
android aop实现
最近寒休假期中,这二十七八天的,寻思着也不能浪费光阴啊,正好把以前写小玩意给捣鼓捣鼓。主要用到aspectj和apt,详细就不开展了,网上资料还是很多,推荐下面的博客https://www.jianshu.com/p/dca3e2c8608a?from=timeline Android AOP就是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技...原创 2019-02-19 14:20:03 · 874 阅读 · 0 评论 -
手写 android studio代码模板插件
最近感觉自己有点膨胀了,哈哈。本来说好每个月写个三四篇,按照这个进度在十月份差不多就能完成十万字的小目标。结果这才完成一半,就堕落写不出来了,哈哈。感觉有点江郎才尽到感觉。也确实是没啥可写了,又不能去胡诌乱编去写一通,哈哈,至少我写的东西,还是要经过自己思考,在自己的角度是站得住脚的。实在写不出了,就写点技术贴,哈哈。 就写写最近一直在写到一个android studi...原创 2019-07-19 11:56:05 · 434 阅读 · 0 评论 -
手写 Class 字节码解析技术(一)
上章节写到关于java热部署功能的技术点,简单的阐述了关于类加载的问题,既然了解到了class这个知识点了,那就不能不刨根问底的对class解析一番。看看能不能完成一个类似于ASM、Javassist之类的java字节码操纵功能。 Class文件是一组以8位字节为基础单位的二进制流,当遇到需要8位字节以上空间的数据项时,则会按照高位在前的方式分隔成若干个8位字节进行存储。各项按照严格...原创 2019-07-24 19:38:16 · 783 阅读 · 0 评论 -
java热部署功能
之前android项目里面用到了微信的Tinker热修复框架,果断不能知其然,而不知其所以然啊,于是就一番源码看下去,发现其中很多都是关于 ClassLoader有关,想起刚13年毕业那会写了一个关于ClassLoader小demo,于是依照热修复的思路,看能不能扩存成一个java的热部署功能。花了小半天的时间,总算是搞定,虽不尽完美,但是还是想写到博客上,算作一个小案例。 ...原创 2019-07-20 16:38:55 · 570 阅读 · 0 评论 -
手写 Class 字节码解析技术(二)字段的操作
上一章节讲述字节码的解析,只要知道了calss的文件结构,我们就可以操作字节码里面的数据,从而改变其代码结构,完成动态代理,AOP AapectJ此类框架的功能。当然精力有限,只能是弄一个小案例,弄懂其中原理。 动态的往class字节码中添加字段。效果如下,MainHello是原始的class文件,MainHello111是操作之后的class,可以看到 t...原创 2019-08-02 20:44:01 · 444 阅读 · 0 评论