cronet 是 Chromium 用於移動端的網絡庫,提供了 Java 和 OC 的 API,支持 HTTP/HTTPS/QUIC/SPDY 等協議。
本文主要參考此文獻
1、依賴
1.1 depot_tools
通過下面指令安裝 depot_tools,該依賴項包含了後續的 fetch 等命令。python 版本需要小於 2.7,最好是 2.7(創建軟鏈接 /usr/bin/python 指向 /usr/bin/python2.7+)
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
export PATH="$PATH:/path/to/depot_tools" # 或者在 ~/.bashrc 中添加該行命令,並 source 該文件
1.2 chromium 源碼
–no-history 可以節省代碼下載時間,它忽略倉庫的歷史信息;整個代碼量較大,約 14G,且需要翻牆,1M 左右的速度需要 20~30 分鐘。
mkdir chromium && cd chromium
fetch --nohooks --no-history ios
1.3 依賴文件
該命令需要 src 目錄下的 .gclient 文件。
gclient sync
2、編譯
編譯必須在 mac 平臺操作。
cronet 庫的 ios 版本有模擬器和真機之分。
不管是模擬器還是真機,現在 src 目錄創建一個軟鏈接,並創建 ninja 編譯文件。
# ln -s ./components/cronet/tools/cr_cronet.py cr_cronet.py
./cr_cronet.py gn
以下命令會生成 cronet 靜態庫,目錄 obj/components/cronet/ios/libcronet*.a
模擬器:
./cr_cronet.py build -d out/Debug-iphonesimulator
真機:
./cr_cronet.py build -d out/Debug-iphoneos # 方法 1
./cr_cronet.py gn -i # 方法 2
./cr_cronet.py build -i # 方法 3