Cronet 库编译指南

13 篇文章 2 订阅


Cronet 库是谷歌开发的移动端网络库。支持 HTTP、HTTP/2 以及 QUIC 协议。支持 Android 和 iOS 平台。
其编译工具是 gn 和 ninja,类似于 cmake 与 make 的关系。
下面介绍 Cronet 库的编译及编译注意事项。

1、获取源码

iOS 的必须在 mac 下编译,Android 必须要 linux 平台下编译。源码获取细节具体参考此博客Get Chromium source code

  • 1.1 安装 depot_tools 工具
    在任意目录下载 depot_tools 源码,并将该项目根目录添加到 PATH,从而可以使用其工具比如 fetch。
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
  • 1.2 拉取 chromium 源码
    这里需要区分是拉取 Android 平台的,还是 iOS 平台的。
mkdir chromium
fetch --no-history --nohooks  android      # fetch --no-history  ios

此时 chromium 目录会生成一个 ‘.gclient’ 隐藏文件,若中间拉取失败,可以执行 gclient sync 继续拉取,
拉取结束后,该目录会生成一个 src 目录,包含 cronet 源码。

如果要拉取指定版本的 chromium 源码,还需执行以下步骤,注意需要都执行成功,否则会出现编译失败:

git fetch origin 75.0.3770.142
git checkout -b chromium-ios-75.0.3770.142 FETCH_HEAD
gclient sync --with_branch_heads

2、编译

编译环境要求:

  • Linux:python 2.7.5,及 openjdk 8,较高版本由于接口不兼容需避免使用。
  • Mac: python 2.7.5,openjdk 8,以及 xcode。
    进入 chromium/src 目录,执行下面命令,
 ./components/cronet/tools/cr_cronet.py gn --out_dir=out/Cronet    # 生成 ninja 文件
 ninja -C out/Cronet cronet_package                                                # 输入 ninja 文件执行编译,必须指定为 cronet_package

若要编译 cronet 库的 Release 版本,在生成 ninja 文件时需要添加 ‘–release’ 选项。
另外 iOS 版本会区分模拟器和真机,区别是 cpu 架构不一样,模拟器使用 x86 架构,真机使用的 ARM 架构。
上述 cr_cronet.py 命令默认生成模拟器版本的库,生成真机的库需要添加 ‘-i’ 选项,同时必须具有 iOS 开发者证书,并在 xcode 中配置好,
生成真机的 Release 库,使用如下命令:

 ./components/cronet/tools/cr_cronet.py gn -i --release --out_dir=out/Cronet-iphoneos-release 

3、生成的文件

iOS 库:

  • out/Debug-iphonesimulator/obj/components/cronet/ios/libcronet.a, 大小为 89M;
  • out/Debug-iphonesimulator/obj/components/cronet/ios/libcronet_static.a, 大小为 17M;
  • out/Debug-iphonesimulator/obj/components/cronet/ios/libcronet_deps_complete.a,大小为 1G。

Android 库:

  • out/Cronet-android/lib.java/components/cronet/android/ 所有 jar 包在此目录下;
  • out/Cronet-android/libcronet.77.0.3825.0.so,strip 后的库,6M;
  • out/Cronet-android/lib.unstripped,未 strip 的库在此目录下。

这里 strip 掉的主要应该是 debug info,具体 strip 内容暂不清楚。

4、错误记录

  • 无 iOS 开发者证书,编译真机库失败。

参考链接

cronet 编译
拉取 chromium 指定版本的代码

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
华为LiteOS是华为推出的一款轻量级操作系统,主要应用于物联网领域。编译LiteOS可以按照以下的指南进行操作。 首先,从华为官网的LiteOS代码仓中下载LiteOS的源代码。在下载之前,请先注册成为华为官方开发者,然后登录到LiteOS代码仓页面。找到最新的稳定版本的源代码并下载到本地。 下载完成后,解压源代码文件到指定的目录,可以选择自定义的目录路径。现在你可以在代码目录中看到LiteOS的源代码文件和相关的文件夹。 接下来,打开源代码目录中的“target”文件夹,你可以看到LiteOS支持的不同的目标设备平台,如ARM Cortex-M系列等。选择适合你的设备平台的文件夹,打开并进入。 在目标设备平台文件夹中,你会看到LiteOS的Makefile文件和一些个性化的配置文件。首先,打开Makefile文件,检查和配置编译器的路径和其他相关的编译选项,确保与你的开发环境相匹配。 然后,根据你的项目需求,打开和编辑相应的个性化配置文件,如iot_config.h等。在配置文件中,你可以设置LiteOS的一些基本功能和参数,如网络协议、设备驱动等。 完成了所有的配置后,回到源代码目录,打开终端或命令提示符窗口,切换到LiteOS的源代码目录。然后,执行编译命令,根据你的目标设备平台和编译选项进行编译编译成功后,你将在源代码目录中看到生成的二进制可执行文件或固件。将该文件烧录到你的目标设备上,即可运行和调试你的LiteOS应用程序。 通过以上的指南,你可以成功编译和运行华为LiteOS,将其应用于物联网项目中,实现各种智能设备的互联互通。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值