HarmonyOS Next 网络加速入门:基础功能全解析 原创

SameX
发布于 2024-11-17 09:11
浏览
0收藏

本文旨在深入探讨华为鸿蒙HarmonyOS Next系统(截止目前API12)的技术细节,基于实际开发实践进行总结。
主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。
本文为原创内容,任何形式的转载必须注明出处及原作者。

一、引言

在当今数字化时代,网络已经成为人们生活和工作中不可或缺的一部分。对于移动设备而言,流畅、高效的网络连接体验更是至关重要。HarmonyOS Next 作为华为鸿蒙系统的下一代演进版本,其网络加速服务为开发者提供了强大的工具,帮助提升应用在网络方面的性能表现。通过 Network Boost Kit,开发者能够更好地应对各种网络环境,为用户带来更优质的网络体验。这不仅有助于提高应用的竞争力,还能满足用户对于快速、稳定网络连接的需求,从而在移动应用市场中脱颖而出。

二、网络加速概述

(一)介绍 Network Boost Kit

Network Boost Kit 是 HarmonyOS Next 中专门用于优化网络性能的一套开发工具包。它就像是一个网络优化的“魔法盒”,隐藏在系统的深处,默默地为应用的网络连接保驾护航。开发者可以利用这个工具包中的各种功能,对应用的网络行为进行精细化的管理和优化。

(二)功能模块列举

  1. 连接迁移:在网络环境发生变化时,例如从 WiFi 切换到蜂窝网络,或者主卡切换到副卡,连接迁移功能能够确保应用的网络连接不受太大影响,实现平滑过渡。这就好比你在开车行驶过程中,从一条高速公路切换到另一条高速公路,连接迁移功能会帮助你自动调整路线,让你的旅程不会因为道路的变化而中断。
  2. 网络场景识别:系统能够实时识别当前的网络场景,比如是处于网络拥塞状态,还是在弱信号区域。这就像给应用装上了一双“眼睛”,可以随时观察周围的网络环境,以便做出相应的决策。
  3. 网络质量评估:可以获取网络的各种质量指标,如上下行带宽、时延等信息。这就如同医生给病人做体检一样,能够准确地了解网络的“健康状况”,为后续的优化提供依据。
  4. 应用传输体验反馈:应用可以将自身的传输体验反馈给系统,系统根据这些反馈信息进行针对性的优化。这就像是你在餐厅用餐后给服务员反馈菜品的口味,餐厅会根据你的意见改进菜品一样,通过这种互动,实现网络加速的良性循环。

三、开发准备

(一)权限申请及配置

在应用使用 Network Boost Kit 能力之前,必须确保已经获取了相应的权限。就像你要进入一个高级俱乐部,需要出示会员卡一样,权限就是应用进入网络加速服务“俱乐部”的门票。所需的权限为 ohos.permission.GET_NETWORK_INFO,它允许应用获取设备的网络信息。配置权限的步骤如下:

  1. 打开项目中的 entry/src/main 路径下的 module.json5 文件。
  2. 在文件中找到 “module” 字段,在其内部添加 “requestPermissions” 数组。
  3. 在数组中添加一个对象,对象的 “name” 属性设置为 “ohos.permission.GET_NETWORK_INFO”。示例代码如下:
{
"module": {
"requestPermissions": [
{
"name": "ohos.permission.GET_NETWORK_INFO"
}
]
}
}

四、连接迁移功能

(一)场景意义

在现实生活中,我们经常会遇到网络环境变化的情况。比如你在乘坐地铁时,WiFi 信号逐渐变弱,手机自动切换到蜂窝网络。如果没有连接迁移功能,应用可能会出现短暂的卡顿甚至中断连接,影响用户体验。而 HarmonyOS Next 的连接迁移功能就是为了解决这个问题,让应用在网络切换时能够快速适应新的网络环境,保持业务的连续性。

(二)接口讲解

  1. 订阅连接迁移on(type: 'handoverChange', callback: Callback<HandoverInfo>): void 这个接口用于订阅连接迁移通知。当系统检测到网络连接即将发生迁移时,会调用传入的回调函数,并传递 HandoverInfo 对象。这个对象包含了连接迁移的相关信息,如迁移是否开始(handoverStart)和迁移是否完成(handoverComplete)等。
  2. 取消订阅连接迁移off(type: 'handoverChange', callback?: Callback<HandoverInfo>): void 当应用不再需要接收连接迁移通知时,可以使用这个接口取消订阅。如果不传递回调函数参数,则会取消所有与该类型相关的订阅。

(三)开发步骤示例

  1. 首先,导入 Network Boost Kit 模块:
import { netHandover } from '@kit.NetworkBoostKit';
import { BusinessError } from '@kit.BasicServicesKit';
  1. 然后,通过订阅的方式获取连接迁移信息:
try {
netHandover.on('handoverChange', (info: netHandover.HandoverInfo) => {
if (info.handoverStart) {
// 连接迁移开始回调,应用按照 HandoverStart 的建议调整数传策略
console.info('handover start');
} else if (info.handoverComplete) {
// 连接迁移完成回调,应用按照 HandoverComplete 的建议进行调速和重建恢复
console.info('handover complete');
}
});
} catch (err) {
console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}
  1. 当应用业务流程结束,不需要系统侧连接迁移信息时,取消监听:
try {
netHandover.off('handoverChange');
} catch (err) {
console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}

五、网络场景识别与质量评估

(一)场景介绍

网络场景识别就像是给应用赋予了“环境感知”能力。例如,在一个大型商场中,WiFi 用户众多,网络可能会出现拥塞情况。应用通过网络场景识别功能,可以及时了解到当前处于拥塞状态,从而调整数据传输策略,比如降低视频播放的分辨率,以保证播放的流畅性。网络质量评估则是进一步量化网络的状况,让应用能够根据具体的指标进行优化。

(二)接口说明

  1. 订阅网络场景信息状态变化on(type: 'netSceneChange', callback: Callback<Array<NetworkScene>>): void 应用调用这个接口后,当系统网络场景的实时信息或预测信息发生变化时,会回调传入的函数,并传递包含 NetworkScene 对象数组的参数。NetworkScene 对象包含了网络场景的各种信息,如场景类型(scene)、弱信号预测信息(weakSignalPrediction)等。
  2. 取消订阅网络场景信息状态变化off(type: 'netSceneChange', callback?: Callback<Array<NetworkScene>>): void 用于取消对网络场景信息状态变化的订阅。

(三)开发流程展示

  1. 导入相关模块:
import { netQuality } from '@kit.NetworkBoostKit';
import { BusinessError } from '@kit.BasicServicesKit';
  1. 订阅网络场景识别信息:
try {
netQuality.on('netSceneChange', (list: Array<netQuality.NetworkScene>) => {
if (list.length > 0) {
list.forEach((sceneInfo) => {
// 网络场景识别回调信息处理
if (sceneInfo.scene == 'congestion') {
// 网络拥塞分支处理
console.log('网络拥塞,采取相应措施');
}
if (sceneInfo.weakSignalPrediction) {
// 存在弱信号预测信息,对弱信号预测信息进行处理
console.log('预测将进入弱信号区域,提前准备');
}
});
}
});
} catch (err) {
console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}
  1. 取消订阅(当不再需要时):
try {
netQuality.off('netSceneChange');
} catch (err) {
console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
}

通过以上对 HarmonyOS Next 网络加速服务基础功能的全面解析,我们开发者可以初步掌握如何利用 Network Boost Kit 提升应用的网络性能。在后续的开发中,还可以进一步探索其更高级的功能,为用户打造更加出色的网络体验。希望这篇文章能为大家在 HarmonyOS Next 网络开发的道路上点亮一盏明灯,祝大家开发顺利!

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
分类
标签
收藏
回复
举报
回复
    相关推荐