quic java_QUIC 协议网络库
chromium-net
chromium-net 是一个独立的网络库,它包含了著名的开源浏览器 Chromium 项目中网络相关的代码,包括 net 库,url 库,SSL 库,以及 Android 平台的 Java 封装等。它同时还是一个跨平台库,可以应用于 Android 等移动平台。
chromium-net 库的优势:
全平台支持最新版TLS。不像 OkHttp 这样依赖系统提供 SSL/TLS 加解密功能的网络库,chromium-net 自身包含 SSL 库,因而可以全平台支持安全性更高的最新版 TLS。
全平台支持 HTTP/2。HTTP/2 的协议协商,需要用到 TLS 较新的扩展 ALPN,同时 HTTP/2 对 TLS 加密套件也有一定的要求,由于自身包含 SSL 库,使得 HTTP/2 的这些要求在任何平台都变得易于满足。
全平台支持 QUIC 协议。chromium-net 目前是 Android 平台支持 QUIC 协议仅有的选择。
在Linux平台上构建
克隆本仓库
$ git clone https://github.com/hanpfei/chromium-net.git
$ cd chromium-net
如果你是第一次构建,则安装依赖
$ ./build/install-build-deps.sh
配置编译环境
本repo包含两个branch,分别为master和cronet。master branch的代码可以分别编译出net等独立的共享库。cornet branch的代码则可以用于编译 chromium net android 平台的封装cronet。 要想编译cronet,则首先切换至cronet branch。然后编辑out/Default/args.gn文件,依据自己本地的环境,修改android_sdk_root指向自己本地Android SDK的安装目录;修改android_ndk_root指向自己本地的NDK目录(要求NDK版本为R10);可以根据需要配置target_cpu。
构建Cronet
$ gn gen out/Default/
$ ninja -C out/Default/ cronet
$ ninja -C out/Default/ cronet_java
导入二进制文件
像通常使用第三方Java库那样,将如下的jar文件导入Android工程:
out/Default/lib.java/base/base_java.jar
out/Default/lib.java/components/cronet/android/cronet_api.jar
out/Default/lib.java/components/cronet/android/cronet_java.jar
out/Default/lib.java/net/android/net_java.jar
out/Default/lib.java/url/url_java.jar
像通常使用第三方共享库文件那样,导入如下共享库文件:
out/Default/libcronet.so
在Android工程的Java代码中使用Chromium net库。
quic java_QUIC 协议网络库相关推荐
- 网易云音乐网络库跨平台化实践
导读: 2021年10月21日,「QCon 全球软件开发大会」在上海举办,网易智企技术 VP 陈功作为出品人发起了「AI 时代下的融合通信技术」专场,邀请到网易云信.网易音视频实验室.网易云音乐的技术 ...
- 技术实践 | 聊聊网易云信的信令网络库实践
导读:信令作为实时音视频技术架构中的重要一环,是对建立实时音视频通信起到关键桥梁性的作用. 文|丁永锋 网易云信资深客户端开发工程师 本文将从信令的概念着手,分享在网易云信新一代音视频技术架构下,信令 ...
- 淘宝移动网络库全解析
本期不讲信令网络库设计模式,讲讲客户端静态资源下载网络库设计模式. 先定义一个类供业务方使用: DownloadNetwork{ StartTask();//全局调用 StopTask(); }; 资 ...
- 国产网络库libhv开源四周年回顾
libhv是一个跨平台的c/c++网络库,本文写在libhv开源四周年之际,借机回顾了libhv的发展历程. github地址:https://github.com/ithewei/libhv 文章目 ...
- 新书预告:《Linux 多线程服务端编程——使用 muduo C++ 网络库》
看完了 W. Richard Stevens 的传世经典<UNIX 网络编程>, 能照着例子用 Sockets API 编写 echo 服务, 却仍然对稍微复杂一点的网络编程任务感到无从下 ...
- 开源免费的C/C++网络库(c/c++ sockets library)
(1)ACE 庞大.复杂,适合大型项目.开源.免费,不依赖第三方库,支持跨平台. http://www.cs.wustl.edu/~schmidt/ACE.html (2)Asio Asio基于Boo ...
- 如何使用网络库实现应用级消息收发
为什么80%的码农都做不了架构师?>>> 网络客户端ISocketClient和网络会话ISocketSession都继承了ISocketRemoteISocketRemote ...
- 客户端网络库实现真的很简单吗?
(注:本文所讲的网络协议只针对TCP协议) 背景:开发一个C/S的应用势必需要服务端和客户端的适配,包括网络协议.数据传输格式.业务处理的适配.由于服务端承载着大量的客户端,需要高并发.高性能.高可靠 ...
- http协议网络编程
一.http协议简介 在进入http协议网络编程之前,我们先来对HTTP协议进行简单的介绍. 早期的软件基本上都是运行在大型机上,软件的使用者则通过哑终端来控制使用计算机资源,在PC技术不断普及 ...
最新文章
- 您的连接不是私密连接
- Serverless在游戏、电商行业的一个运用场景示例
- 通过Cookie实现客户端与服务端会话的维持;
- 初步认识迭代服务器和并发服务器
- 基本控件Password控件
- 多线程笔试题(linux)
- jQuery分析(3) - jQuery.fn.init
- 为什么不能在scrollview中直接添加一个image,然后使animation.begin()??
- 《Java线程与并发编程实践》—— 2.6 小结
- 【转】三星8552 手机提示升级系统 完成后重启 开机画面一直停留在三星的LOGO 一闪一闪 怎么办...
- (宏)Word 仅修改选中图片的尺寸
- JavaAPI之Runtime类以及bat文件开启应用程序
- Linux三剑客正则表达式常用字符汇总
- JavaScript高级程序设计 第4版(中文高清)扫描版
- linux 7.4ip配置,新手进阶 Ubuntu7.10中配置IP地址
- 十天学会php之第八天
- PTA顺序表基本操作
- VS2010 保护视力 背景色设置
- RMAN delete noprompt obsolete参数研究
- pathon和c语言的区别
热门文章
- 彻底解决iPhone日历收到垃圾邀请问题
- 【Figma技巧】如何计算整个页面中的画板数量
- linux怎么验证tacacs认证,TACACS+认证服务器总结
- 记一次异常Caused by: java.lang.ClassNotFoundException: cn.exrick.xboot.core.entity.XXX
- Revit开发获取房间内的构件
- 扫描线算法讲解+例题
- 彻底禁用DeliveryOptimization
- Git 远程库操作详解
- 进度分享:ChatGPT搭建h5网页
- 明略科技大数据面试题