V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
honglei92
V2EX  ›  Android

我的主工程引用了一个三方库 有没有办法在三方库某一段代码加一个埋点,统计执行的次数

  •  
  •   honglei92 · 2020-02-10 14:24:32 +08:00 · 11243 次点击
    这是一个创建于 1748 天前的主题,其中的信息可能已经有所发展或是发生改变。
    25 条回复    2020-02-11 23:41:37 +08:00
    IMCA1024
        1
    IMCA1024  
       2020-02-10 14:27:41 +08:00
    执行前后
    honglei92
        2
    honglei92  
    OP
       2020-02-10 14:46:29 +08:00
    @IMCA1024 什么意思
    honglei92
        4
    honglei92  
    OP
       2020-02-10 14:58:54 +08:00
    @visitant 就是想统计到三方库的某一段代码执行的次数
    ChenFanlin
        5
    ChenFanlin  
       2020-02-10 14:58:57 +08:00
    可以试试 https://github.com/nekocode/JarFilterPlugin, 替换那个文件为你自己的文件
    xFrye
        6
    xFrye  
       2020-02-10 15:22:36 +08:00
    你可能需要字节码操作?
    aguesuka
        7
    aguesuka  
       2020-02-10 18:36:43 +08:00   ❤️ 1
    最简单的。自己写一个同样包名,同样 class 名的 java 文件。加载时会优先加载你的文件
    yy2222186
        8
    yy2222186  
       2020-02-10 21:32:55 +08:00 via iPhone
    @aguesuka 你这样能通过编译?
    gaobing
        9
    gaobing  
       2020-02-11 01:03:54 +08:00 via Android
    切面,代理,装饰器模式,看可以用上哪个
    yejianmail
        10
    yejianmail  
       2020-02-11 01:30:55 +08:00 via Android
    @yy2222186 必须能编译过啊
    qfdk
        11
    qfdk  
       2020-02-11 06:08:39 +08:00 via iPhone
    java 的话 instrumentation
    virusdefender
        12
    virusdefender  
       2020-02-11 06:56:20 +08:00
    fork 一份然后自己改
    Aresxue
        13
    Aresxue  
       2020-02-11 09:13:28 +08:00
    instrument、aop、asm、javasist
    mingl0280
        14
    mingl0280  
       2020-02-11 09:31:50 +08:00 via Android
    C/C++可以做函数打桩,网上有现成的代码。
    kaitian521
        15
    kaitian521  
       2020-02-11 09:35:46 +08:00
    honglei92
        16
    honglei92  
    OP
       2020-02-11 11:27:43 +08:00
    @ChenFanlin 谢谢大佬 it works
    honglei92
        17
    honglei92  
    OP
       2020-02-11 11:36:49 +08:00
    @virusdefender 不能 fork
    honglei92
        18
    honglei92  
    OP
       2020-02-11 11:40:27 +08:00
    honglei92
        19
    honglei92  
    OP
       2020-02-11 11:40:37 +08:00
    liujan
        20
    liujan  
       2020-02-11 13:21:39 +08:00 via iPad
    spring aop
    Cabana
        21
    Cabana  
       2020-02-11 13:47:24 +08:00 via Android
    aspectj
    pythonee
        22
    pythonee  
       2020-02-11 14:18:16 +08:00
    @Aresxue
    @gaobing

    正解
    qwerthhusn
        23
    qwerthhusn  
       2020-02-11 14:21:03 +08:00
    问:我提上了裤子,请问我如何躲过道德的制裁?

    网友:你干啥了?
    chenshun00
        24
    chenshun00  
       2020-02-11 16:54:06 +08:00
    1、最简单的。 @ChenFanlin 自己写一个同样包名,同样 class 名的 java 文件。加载时会优先加载你的文件 , 原理在 servlet 规范中有描述
    2、包装一下,wrap
    3、ASM,不过我觉得你不会.
    lis66951735
        25
    lis66951735  
       2020-02-11 23:41:37 +08:00
    java agent
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   987 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:43 · PVG 03:43 · LAX 11:43 · JFK 14:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.