前阵子,我去 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 监控都可以好容易,,,,
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.