简介

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

您将建立什么

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

您将会学到什么

硬件要求

软件要求

需要的知识点

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

具体操作,请常见开发指南-开发准备中详细说明来完成。

添加编译依赖

打开Android Studio,项目级build.gradle文件。

在buildscript > repositories里面配置HMS Core SDK的Maven仓库地址。

buildscript { buildscript { repositories { maven { url 'https://developer.huawei.com/repo/' } google() ...... } dependencies { classpath 'com.android.tools.build:gradle:3.3.2' } } }

在allprojects > repositories里面配置HMS Core SDK的Maven仓库地址。

allprojects { repositories { maven { url 'https://developer.huawei.com/repo/' } google() ...... } }

在app目录下的 build.gradle文件中,添加SDK依赖。

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类。

1. 异步初始化

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"); } }); }

2. 创建Cronet引擎

private CronetEngine createCronetEngine(String url) { if (cronetEngine != null) { return cronetEngine; } CronetEngine.Builder builder = new CronetEngine.Builder(context); builder.enableQuic(true); builder.addQuicHint(getHost(url), DEFAULT_PORT, DEFAULT_ALTERNATEPORT); cronetEngine = builder.build(); return cronetEngine; }

3. 构建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; }

4. 发送请求

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(); } }

5. 编译,加载,调试

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

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

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

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

您可以阅读下面链接,了解更多相关信息:

已复制代码