Cronet请求流程,以及优雅的注入httpDNS

背景

之前基于73版本的chromium编译定制了net模块,实现了hostResolve,预建连接、metric的remoteIp指标纬度的统计,目前已经间隔了快3年的时间,这次也安排了升级cronet库,并且剥离net模块,实现Android、iOS的双端编译。
这里面主要是分析下Cronet的请求流程。

创建CronetEngine

使用Cronet之前需要创建一个engine,然后通过该engine来请求,一般来说一个App中只会存在一个engine,那我们先看看Java层的CronetEngine

1