![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
cronet
文章平均质量分 81
kph_Hajash
三年服务端(直播推拉流)经验、三年客户端(网络库基础组件)经验
展开
-
Quic 客户端加密握手写流程及 QUIC packet 的构造过程
先来看 2:WriteOrBufferData()该函数在三种情况下无动作,即非 fin 包,但是待发数据为空fin 包已经缓存了,说明理论上不再有数据需要发送了写端已经关闭从名字可以看出,该函数要么写数据要么缓存数据。实际上是先将待发数据缓存到 stream 对象的 send_buffer 中,然后再发送。这里用到了宏 GetQuicReloadableFlag(flag),它又用到了另一个宏 RELOADABLE(flag):GetQuicReloadableFlag(flag) .原创 2021-02-02 17:24:57 · 2067 阅读 · 0 评论 -
chromium 中 quic 模块警报器 QuicAlarm 介绍
1. 位置2. 构成3. 用法3.1 测试用例3.2 实际应用——以 QuicConnection 类为例3.2.1 ack_alarm_ 构建3.2.2 QuicConnection 的使用4. 总结1. 位置该类的定义在 quic/src/net/quic/core/quic_alarm.h 中。2. 构成该类是一个虚基类。构造函数只有一个:explicit QuicAlarm(QuicArenaScopedPtr delegate);上面 explicit .原创 2021-02-02 17:08:00 · 563 阅读 · 0 评论 -
CMake 编译错误:Objects of target “ssl“ referenced but is not an OBJECT library
1、问题描述libquic 支持最新 chromium 代码的过程中,发现 boringssl 库编译错误。2、解决过程下载最新的 boringssl 代码,在本地成功编译,因此可尝试用最新的 boringssl 代码替换现有代码来编译,但是在编译 libquic 时,出现如下错误:CMake Error at CMakeLists.txt:925 (add_library): Error evaluating generator expression: $<TARGET_O原创 2021-02-02 16:41:59 · 1349 阅读 · 0 评论 -
centos7.6 拉取 chromium 源码仓库记录
centos 7.6,内存 1G,4核cpu,64 位1、安装 depot_toolsgit clone https://chromium.googlesource.com/chromium/tools/depot_tools.gitexport PATH="$PATH:/path/to/depot_tools"mkdir ~/chromium && cd ~/chromiumfetch --nohooks chromium // 编译 linux 平台库时使用这个命令拉取代码,原创 2020-09-16 19:38:32 · 686 阅读 · 0 评论 -
安卓 Cronet 库关键类继承关系图
cronet 库 java 层主要的三个关键类分别如下图,梳理了类的继承关系:原创 2020-08-17 15:58:57 · 384 阅读 · 0 评论 -
安卓 cronet 库 JNI ERROR (app bug): local reference table overflow (max=512)
1、问题背景由于定位问题需要,将 cronet 库中 quic 部分的 LOG_LEVEL 为 -3 级别的日志一并通过回调函数输出了,但导致了 cronet 库的崩溃,崩溃的直接原因是输出日志过多,导致了 jni 层的局部引用表溢出。那么肯定是代码中使用局部引用的次数过多、过频繁,并且未及时释放这些局部引用,从而导致了崩溃。2、问题定位、解决2.1 问题分析首先需要了解什么样的局部引用会导致这样的问题,以及这些局部引用如何释放,以及合适的释放时间点局部引用包括 FindClass 返回的原创 2020-05-14 19:54:41 · 709 阅读 · 0 评论 -
编译 cronet android 库时出现 Template collision【contains a template "split_static_library"】
该错误出现在执行 ./components/cronet/tools/cr_cronet.py gn --debug --out_dir=out/debug-Cronet 时,错误提示已经比较明显了, 就是在两个不同的文件中定义了相同的模板,通过对比这两个文件可知,v8/gni/split_static_library.gni 和 build/split_static_library.g...原创 2020-04-27 19:12:01 · 2118 阅读 · 2 评论 -
改造 cronet 库使得 安卓 release SDK 可以捕获 cronet 库 QUIC 相关日志实践
1、背景介绍在我们移动端文件上传场景中,尝试使用 QUIC 协议来优化上传效果,为了准确的分析上传失败的任务,需要建立上传任务与 QUIC 连接的关联性,当前每个上传任务结束时,或失败或成功都会上报一条日志,我们打算在启用了 QUIC 的上传任务中,增加一个字段保存 QUIC 相关信息,比如连接 ID、连接建立的日志、连接关闭的日志等,QUIC 连接关闭时会带上详细的关闭原因,帮助分析 QUIC...原创 2020-01-14 16:33:50 · 976 阅读 · 0 评论 -
精简 chromium 源码后编译 Android cronet 失败:undefined symbol: iswblank
下面是详细的错误日志,可以看到第一个错误是由于 __posix_l_fallback.h 文件引用的 iswblank 未定义;是在编译生成目标文件 /libc++/locale.o 时出现的。经过查阅,该方法是一个 c++ 的标准库函数.ninja: Entering directory `out/test-Cronet/'[9/5622] SOLINK ./libnetty-tcnativ...原创 2019-12-27 17:33:11 · 4224 阅读 · 5 评论 -
Ubuntu 1804 编译 Android Cronet 时安装依赖项
Android Cronet 需要在 linux 平台下编译,因为部分工具只能在 Ubuntu 上执行,因此优先选择 Ubuntu 系统。编译 Cronet 库需要安装系统依赖以及安卓的特殊依赖,在 chromium 项目中都有专门的脚本去执行依赖的安装,进入已下载好源码的 chromium/src 目录,执行如下脚本:./build/install-build-deps.sh // 安装...原创 2019-12-26 15:43:06 · 1362 阅读 · 0 评论