一个关于 Android 的字节码处理插件,向大家讨点意见

2018-10-14 01:10:14 +08:00
 Registering

前阵子,我去 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 监控都可以好容易,,,,

872 次点击
所在节点    问与答
1 条回复
Registering
2018-10-14 01:10:51 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/497425

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX