She*_*bic 5 android android-networking firebase-performance
我目前正在开发一个库,该库使 QA 或开发人员能够在他们的应用程序中调试网络流量,我们目前使用 OKHttp,我知道如何创建拦截器并将所有请求数据分派到库。这样开发人员或 QA 可以查看此类数据(有效负载/URL/大小/响应代码/持续时间...等),但是我想创建一个更通用的解决方案来侦听 HTTP 流量甚至 TCP 流量,然后从那里获取数据,但是我找不到起点,我知道这是可能的,因为 Firebase Performance 正在这样做,但我仍然找不到 API 或无论如何都无法监听此类流量。
我希望来自 Google Firebase 性能团队的人员分享一些有关他们如何做到这一点的信息(如果这不是商业秘密的话):)
我遇到了这个解决方案: https: //github.com/cyruliu/Sensitive_API_Monitor/blob/master/app/src/main/java/com/android/reverse/apimonitor/NetWorkHook.java 但是,反射看起来有点糟糕,我希望找到更好的方法。
简短的回答:如果不代理整个设备,这是不可能的。
特别是对于 OkHttp3,我在这里编写了一个库: https: //github.com/shehabic/sherlock,它实现了一个拦截器,每次打开应用程序并捕获网络请求时都会创建一个新会话,您也可以有多个会话,它添加了一个浮动图标可帮助您访问会话和请求的历史记录以及一些导出功能,此外它还添加了一个辅助启动器图标,您可以使用该图标来访问捕获请求,而无需中断应用程序的进程。
关于 Firebase Performance,所有的魔力实际上都在 Firebase-Perf Gradle 插件中;为了简化它,它扫描项目的代码并替换对 OkHttpClient 的直接调用,以通过他们自己的 FirebaseOkHttpClient 进行代理,并从那里他们获得所有详细信息,甚至是 https 请求的所有详细信息,因为他们成为 http 客户端。
我希望这可以在将来节省某人的时间。
| 归档时间: |
|
| 查看次数: |
3106 次 |
| 最近记录: |