Firebase 性能监控如何拦截 Android 中的传出 http 请求?

Mur*_* Vr 4 performance android bytecode firebase firebase-performance

从 firebase 的帮助文档https://firebase.google.com/docs/perf-mon/network-traces?platform=android中,它指出

对于所有应用程序类型,性能监控会自动收集应用程序发出的每个网络请求的跟踪,称为 HTTP/S 网络请求跟踪 性能监控会自动收集使用以下网络库的网络请求的指标:OkHttp3、Java 的 URLConnection、Apache HttpClient

他们如何在不使用任何拦截器的情况下自动跟踪 http 请求?他们是否使用任何字节码操作来跟踪他们?

Dou*_*son 7

是的,它在 Android 上使用字节码操作。这就是插件在构建时所做的事情。它查找所有出现的类似于 HTTP 请求(URLConnection、Apache HTTPClient 和 OKHTTP)的 API 调用,并使用在运行时监视其使用情况的对象来装饰这些调用。

如果您想深入了解其实际工作原理,请观看此演讲