一个关于 Android 的字节码处理插件,向大家讨点意见 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Registering
V2EX    问与答

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

  •  
  •   Registering 2018 年 10 月 14 日 1340 次点击
    这是一个创建于 2668 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    Registering
        2
    Registering  
    OP
       2025 年 2 月 13 日
    哈哈,当年我还发过这样的帖子
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3129 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 10:28 PVG 18:28 LAX 02:28 JFK 05:28
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86