项目简介
Mars 是一个跨平台的网络组件,包括主要用于网络请求中的长连接,短连接,是基于 socket 层的解决方案,在网络调优方面有更好的可控性,暂不支持HTTP协议。 Mars 极大的方便了开发者的开发效率。
效果演示
编译运行
windows和mac请先合入patch,然后再编译此项目,参考以下两步:
- 下载源码
git clone https://gitee.com/openharmony-sig/mars.git --recurse-submodules
- 合入patch ,进入路径:mars/library/src/main/cpp/thirdModule,顺序执行下面的命令即可自动合入patch。
chmod +x automatically_apply_mars_patch_files.sh
./automatically_apply_mars_patch_files.sh
至此patch合入完成。
下载安装
ohpm install @ohos/mars
OpenHarmony ohpm 环境配置等更多内容,请参考如何安装 OpenHarmony ohpm 包
使用说明:
第一步: 初始化,导入 Mars 组件到自己项目中;
...
import { Mars, StnLogic, Xlog, BuildConfig } from '@ohos/Mars/';
import MarsServiceNative from '../wrapper/service/MarsServiceNative';
import MarsServiceProfile from '../wrapper/service/MarsServiceProfile';
import marsnapi from 'libmarsnapi.so';
...
第二步:方法调用,通过marsnapi调用对应方法;
marsnapi.BaseEvent_onCreate();
}
接口说明
- StnLogic.setLonglinkSvrAddr - 设置长链接的DEBUG IP
- StnLogic.StnLogic_setShortlinkSvrAddr - 设置短链接的DEBUG IP
- StnLogic.setDebugIP - 设置的DEBUG IP(不区分长/短链接)
- StnLogic.startTask - 任务启动
- StnLogic.stopTask - 任务停止
- StnLogic.hasTask - 判断任务是否存在
- StnLogic.redoTask - 重做所有长短连任务. 注意这个接口会重连长链接.
- StnLogic.clearTask - 停止并清除所有未完成任务.
- StnLogic.reset - 停止并清除所有未完成任务并重新初始化
- StnLogic.resetAndInitEncoderVersion - 停止并清除所有未完成任务并重新初始化, 重新设置encoder version
- StnLogic.setBackupIPs - 设置备份IP,用于long/short svr均不可用的场景下
- StnLogic.makesureLongLinkConnected - 检测长链接状态.如果没有连接上,则会尝试重连.
- StnLogic.setSignallingStrategy - 信令保活
- StnLogic.keepSignalling - 发送一个信令保活包
- StnLogic.stopSignalling - 停止信令保活
- StnLogic.setClientVersion - 设置客户端版本 放入长连私有协议头部
- StnLogic.getLoadLibraries - 获取底层已加载模块
- StnLogic.req2Buf - 网络层获取上层发送的数据内容
- StnLogic.buf2Resp - 网络层将收到的信令回包交给上层解析
- StnLogic.trafficData - 上报信令消耗的流量
- SdtLogic.setCallBack - 设置信令探测回调实例,探测结果将通过该实例通知上层
- SdtLogic.setHttpNetcheckCGI - 设置一个Http连通状态探测的URI
- Xlog.logWrite - 日志写入方式1
- Xlog.logWrite2 - 日志写入方式2
- Xlog.native_logWrite2 - 自定义日志写入
- Xlog.setLogLevel - 设置日志等级
- Xlog.getLogLevel - 获取日志等级
- Xlog.newXlogInstance - 创建xlog的日志单例
- Xlog.releaseXlogInstance - 释放xlog的日志单例
约束与限制
在下述版本验证通过:
- DevEco Studio 版本:4.1Canary(4.1.3.414) , OpenHarmony SDK:API 11 (4.1.0.55)
目录结构
|---- library
| |---- cpp # 示例代码文件夹
| |---- mars # C++库文件
| |---- ets
| |---- sdt
| |---- SdtLogic # sdt对外封装接口
| |---- stn
| |---- StnLogic # stn对外封装接口
| |---- xlog # xlog对外封装接口
| |---- Xlog # xlog对外封装接口
|---- README.md # 安装使用方法
为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05
《鸿蒙开发学习手册》:
如何快速入门:https://qr21.cn/FV7h05
- 基本概念
- 构建第一个ArkTS应用
- ……
开发基础知识:https://qr21.cn/FV7h05
- 应用基础知识
- 配置文件
- 应用数据管理
- 应用安全管理
- 应用隐私保护
- 三方应用调用管控机制
- 资源分类与访问
- 学习ArkTS语言
- ……
基于ArkTS 开发:https://qr21.cn/FV7h05
- Ability开发
- UI开发
- 公共事件与通知
- 窗口管理
- 媒体
- 安全
- 网络与链接
- 电话服务
- 数据管理
- 后台任务(Background Task)管理
- 设备管理
- 设备使用信息统计
- DFX
- 国际化开发
- 折叠屏系列
- ……
鸿蒙开发面试真题(含参考答案):https://qr18.cn/F781PH
鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH
1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向