简介

hQUIC Kit为您提供低时延,高吞吐量及安全可靠的通信能力,支持QUIC协议,提供多种网络环境敏感的拥塞处理算法,实现更快的启动速度,更强的抗丢包能力及更高的吞吐量。您可以在不稳定的移动网络环境下,使用hQUIC,提高网络通讯质量。通过示例工程和代码,您可以体验到:

您将建立什么

在这个Codelab中,您将创建一个App,使用hQUIC Kit,使能Cronet并通过Cronet API实现HTTP/2和QUIC协议通讯。

您将会学到什么

硬件要求

软件要求

需要的知识点

集成HMS Core能力,需要完成以下准备工作:

添加编译依赖

  1. 打开Android Studio项目级"build.gradle"文件。
  2. 添加HUAWEI Maven代码库。
    • 在buildscript > repositories里面配置HMS Core SDK的Maven仓库地址。
    • 在allprojects > repositories里面配置HMS Core SDK的Maven仓库地址。
    buildscript { repositories { maven { url 'https://developer.huawei.com/repo/' } google() ...... } dependencies { classpath 'com.android.tools.build:gradle:3.3.2' } } allprojects { repositories { maven { url 'https://developer.huawei.com/repo/' } google() ...... } }
  3. 打开应用级的"build.gradle"文件。
  4. 在"dependencies"中添加如下编译依赖。
    dependencies { implementation 'com.huawei.hms:hquic-provider:{version}' }

同步工程

点击"File > Sync Project with Gradle Files"开始同步。

出现下图所示completed successfully即表示同步成功。

上一小节,您已经成功集成了hQUIC SDK。
本小节您将尝试编写一个Demo,学会如何使用hQUIC SDK的接口,您只需要按照下文的每一步提示,就可以边学边做,一起构建出这个Demo。

创建Service

选择"app"下的"src"目录,单击鼠标右键,创建HQUICService类。

异步初始化

异步初始化不是必需操作,如果需要提前加载Cronet服务,可以使用异步初始化接口进行预加载。

/** * 异步初始化HQUICManager */ public void init(){ HQUICManager.asyncInit(context, new HQUICManager.HQUICInitCallback() { @Override public void onSuccess() { Log.i(TAG, "HQUICManager asyncInit success"); } @Override public void onFail(Exception e) { Log.w(TAG, "HQUICManager asyncInit fail"); } }); }

创建Cronet引擎

/** * 构造CronetEngine对象 */ private CronetEngine createCronetEngine(String url) { if (cronetEngine != null) { return cronetEngine; } CronetEngine.Builder builder = new CronetEngine.Builder(context); // 设置开启支持QUIC协议 builder.enableQuic(true); // 添加全局支持QUIC协议的域名 builder.addQuicHint(getHost(url), DEFAULT_PORT, DEFAULT_ALTERNATEPORT); cronetEngine = builder.build(); return cronetEngine; }

构建Request

/** * 构造请求对象 */ private UrlRequest builRequest(String url, String method) { CronetEngine cronetEngine = createCronetEngine(url); UrlRequest.Builder requestBuilder = cronetEngine.newUrlRequestBuilder(url, callback, executor).setHttpMethod(method); UrlRequest request = requestBuilder.build(); return request; }

发送请求

/** * 发送网络请求 */ private void sendRequest(String url, String method) { Log.i(TAG, "callURL: url is " + url + "and method is " + method); UrlRequest urlRequest = builRequest(url, method); if (urlRequest != null) { urlRequest.start(); } }

编译,加载,调试

当您完成上述业务代码的补全后,就可以进行编译。完成编译后,生成APK,安装到测试手机上运行。

点击"hQUICTest",将会显示接口返回信息。

干得好,您已经完成Codelab并学习到了:

如果需要了解更多hQUIC Kit相关的信息,请关注我们的官方网站。开发过程中遇到问题,请参见我们的FAQ

您可以阅读链接,了解更多相关信息:API参考示例代码
您也可以点击下方按钮下载源码:

源码下载

已复制代码