NewRelic是一个性能监视工具。
但是如果做到在不修改原程序的基础上实现自动监视,收集日记的呢。
联想到是不是有什么注入,代理之类的机制。但是一直没有找到相关的资料。
经过一顿搜素,终于找到相关文章,原来用到了Java动态代理InvocationHandler。
先记下来。
newrelic的android sdk实现原理解析(一)
http://www.apmbe.com/newrelic%E7%9A%84android-sdk%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86%E8%A7%A3%E6%9E%90%EF%BC%88%E4%B8%80%EF%BC%89/
Java动态代理之InvocationHandler最简单的入门教程
https://www.jianshu.com/p/e575bba365f8
https://segmentfault.com/a/1190000016105692#item-3
但如果Handler接口存在多个方法,并且需要对所有方法进行性能监控,那HandlerProxy的复杂性将会提高。
Java动态代理比代理更进一步,因为它可以