首页 > 其他分享 >HarmonyOS Next 网络加速入门:基础功能全解析

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

时间:2024-11-17 09:31:03浏览次数:1  
标签:场景 入门 err 网络 Next HarmonyOS 应用 BusinessError 迁移

本文旨在深入探讨华为鸿蒙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 网络开发的道路上点亮一盏明灯,祝大家开发顺利!

标签:场景,入门,err,网络,Next,HarmonyOS,应用,BusinessError,迁移
From: https://www.cnblogs.com/samex/p/18550259

相关文章

  • HarmonyOS Next 网络加速实战:社交应用网络优化全攻略
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。一、引言在当今数字化时代,社交应用已......
  • HarmonyOS Next 网络加速实战:打造极致网络体验
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。一、引言在移动应用的世界里,网络体验......
  • HarmonyOS Next 助力在线教育:网络优化实战案例
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。一、引言在线教育在当今社会中发挥着......
  • Pulsar 入门实战(5)--Java 操作 Pulsar
    本文主要介绍使用 Java 来操作Pulsar,文中所使用到的软件版本:Java17.0.7(Pulsar服务使用)、Java1.8.0_341(客户端使用)、Pulsar3.3.0、pulsar-client3.3.0。1、引入依赖<dependency><groupId>org.apache.pulsar</groupId><artifactId>pulsar-client</artifact......
  • HarmonyOS4+NEXT星河版入门与项目实战--------TypeScript语法(循环控制与函数方法)
    文章目录1、循环控制1、for循环与while循环2、数组快捷迭代方法2、函数1、function关键字2、可选参数3、默认参数4、匿名函数5、函数表达式6、结合使用7、函数声明案例1、循环控制1、for循环与while循环2、数组快捷迭代方法数组除了使用常规的for循环......
  • HarmonyOS4+NEXT星河版入门与项目实战--------TypeScript语法(变量声明与条件控制)
    文章目录1、变量声明1、格式与案例2、在线体验TypeScript2、条件控制1、if-else条件控制switch条件控制1、变量声明1、格式与案例TypeScript常见变量主要有string字符串、number数值、boolen布尔、any不确定类型、Object对象类型、Array数组类型以及......
  • HarmonyOS4+NEXT星河版入门与项目实战--------ArkTs语言与TypeScript语法
    文章目录1、ArkTs语言1、ArkTs特点2、ArkTs与Javascript关系2、TypeScript语法1、ArkTs语言在html的开发中,实现一个页面元素,比如Button,往往包含了以下三种要素:JS、HTML、CSS。JS处理逻辑与响应、HTML用来声明标签生成各种页面控件、CSS用来控制着也控件的样式......
  • (长期更新)《零基础入门 ArcGIS(ArcMap) 》实验一(下)----空间数据的编辑与处理(超超超详细
    续上篇博客(长期更新)《零基础入门ArcGIS(ArcMap)》实验一(上)----空间数据的编辑与处理(超超超详细!!!)-CSDN博客继续更新        本篇博客内容为道路拓扑检查与修正,有对本实验实验目的、实验介绍有不了解的,可以看下上篇博客。        上篇博客有宝子私信我下载......
  • CTF web解题 PHP http referer xff使用 burpsuite使用 新手入门 [SWPUCTF 2022 新生赛
    每日emo:burp可以抓包,你可以抓住到她的心吗?[SWPUCTF2022新生赛]xffFlag:NSSCTF{th1s_xff_1s_e4ay}打开靶机抓个包看一下根据打开靶机显示MustbeaccessedfromXiaohong'sowncomputer.传入X-Forwarded-For到127.0.0.1根据提示添加Referer到127.0.0.1......
  • 10分钟入门vue2!!
    概念:Vue是用于构建用户界面的渐进式(就是学一点就能够用一点)框架,总的来说,就是基于数据来构建用户页面,以便于用户看懂。Vue的两种使用方式:1.核心包开发2.核心包加插件加工程化开发1.Vue的基础语法1.创建第一个Vue实例准备容器div引包<scriptsrc="https://cdn.jsdelivr.......