前阵子,我去 OKhttp 的 GitHub 主页下,向它们提一个 issue,希望支持全局的 Interceptor/EventListener,目前只能挨个 OkHttpClient 去设置,很不方便,而且部分漏网之鱼在第三方依赖库里。从大佬的回复看来,暂时是不支持的。
于是自己折腾了一个爆破方案,从字节码下手,在 OkhttpClient 的 Builder()里,插入两三行代码,让它获取我在某处预埋好的 Interceptor/EventListener,这样一来,就能设置全局 Interceptor/EventListener 了。
这个工具做完之后,发现编译插件的拖长了项目编译时间,于是又做了很多优化,使编译过程支持增量和并发处理,编译速度也不成问题了
然后过程中又处理了 ASM 各种各样的问题,所以做了一些封装,使得编写一个插件只需要关注如何写 ClassWriter 即可,,
所以就把这个东西抽出了一个小框架,在这个小框架上我又很快速开发了几个小插件。 由于还没写完文档,所以还没宣传这个项目
但是昨晚在 OKhttp 的 issue 下提了我的这个解决方案,一早醒来突然看到 OKhttp 作者之一,Jesse Wilson ,star 了我,成了项目第一个 star,,,然后大佬的流量导致有其他小部分也注意到了,所以又多了几个 star。
今天做了点小修补,感觉这个项目也写得差不多了,所以差不多准备发布了,大家有什么建议,或者希望通过修改字节码实现什么增强功能、监控功能,也可以给我 review 一下代码,看看 readme 有没有写得哪里不清楚
感觉通过修改字节码,什么流量监控,UI 监控都可以好容易,,,,
![]() |
1
Registering OP |
![]() |
2
Registering OP 哈哈,当年我还发过这样的帖子
|