• 2024-09-27鸿蒙(HarmonyOS)实战开发篇——基于Napi调用ArkTS/系统接口
    场景描述:app应用在native侧调用系统库/arkts模块的方法。应用经常会遇到如下的业务诉求:场景一:系统提供了ArkTS接口,但未提供对应的NDK接口,当伙伴使用C++代码实现业务逻辑时,部分系统能力需要依赖系统ArkTS接口;场景二:系统仅提供了ArkTS异步接口,未提供对应的NDK接口,当
  • 2024-09-08【最新鸿蒙开发】带你简单了解Native适配开发
    引言NDK(NativeDevelopmentKit)是HarmonyOSSDK提供的NativeAPI、相应编译脚本和编译工具链的集合,方便开发者使用C或C++语言实现应用的关键功能。NDK只覆盖了HarmonyOS一些基础的底层能力,如C运行时基础库libc、图形库、窗口系统、多媒体、压缩库、面向ArkTS/JS与C跨语言的Nod
  • 2024-09-04HarmonyOS Node-API支持的数据类型
    一、Node-API的数据类型 1、napi_status        是一个枚举数据类型,表示Node-API接口返回的状态信息。每当调用一个Node-API函数,都会返回该值,表示操作成功与否的相关信息。typedefenum{napi_ok,napi_invalid_arg,napi_object_expected,napi_
  • 2024-09-02HarmonyOS实战开发:NAPI接口规范开发
    简介NAPI(NativeAPI)组件是一套对外接口基于Node.jsN-API规范开发的原生模块扩展开发框架。图1 NAPI组件架构图NativeEngineJS引擎抽象层,统一JS引擎在NAPI层的接口行为。ModuleManager管理模块,用于模块加载、模块信息缓存。ScopeManager管理NativeValue的生命周
  • 2024-09-01HarmonyOS开发实战:ArkTS接口绑定
    场景介绍通过napi_wrap将ArkTS对象与Native的C++对象绑定,后续操作时再通过napi_unwrap将ArkTS对象绑定的C++对象取出,并对其进行操作。使用示例接口声明、编译配置以及模块注册接口声明//index.d.tsexportclassMyObject{constructor(arg:number);plusOne:(
  • 2024-08-07HarmonyOS 音视频之音频采集实战
    HarmonyOS音视频之音频采集实战背景应用开发过程中很多场景都有音频采集需求,比如聊天功能的发送语音功能,实时语音转文本功能,实时语音通话,实时视频通话等。在Android和iOS端,系统提供了两种形式:实时音频流采集音频文件录制系统还提供了不同形式的API,比如Android:AudioRec
  • 2024-07-22GMSSL2.x编译鸿蒙静态库和动态库及使用
    一、编译环境准备1.1开发工具DevEco-Studio下载。1.2SDK下载​ 下载编译第三方库的SDK有两种方式,第一种方式从官方渠道根据电脑系统选择对应的SDK版本,第二种方式通过DevEco-Studio下载SDK。本文只介绍通过DevEco-Studio下载SDK的方式。安装SDK到本地根据SDK安装位
  • 2024-07-05使用napi实现ts枚举类型
    在napi模块中定义枚举类型枚举类型不是js的原生类型,它是ts中独有的语法,但是napi方法仅支持操作js对象。下文将提供一个demo用来实现一个js的enum类。分析ts枚举类的实现方式定义一个ts枚举类TypeScript代码如下:enumEnumClass{VAL_A=0,VAL_B,VAL_C,}
  • 2024-06-12用Napi编写nodejs Addon并调用dll
    用Napi编写nodejsAddon并调用dllnpdejs调用C++addon并没有先前那篇随笔那么复杂,这是一篇补充说明:说明如何使用c++项目的include头文件以及lib,dll引入到addon内使用一、使用VS编写DLL导出项目步骤1:通过VisualStudio(推荐2019及其以上)新建一个“具有导出项的(DLL)动态链接库
  • 2024-04-20HarmonyOS NEXT应用开发—在Native侧实现进度通知功能
    介绍本示例通过模拟下载场景介绍如何将Native的进度信息实时同步到ArkTS侧。效果图预览使用说明点击“StartDownload“按钮后,Native侧启动子线程模拟下载任务Native侧启动子线程模拟下载,并通过Arkts的回调函数将进度信息实时传递到Arkts侧实现思路前端进度条使用Progr
  • 2024-04-18HarmonyOS NEXT应用开发之使用AKI轻松实现跨语言调用
    介绍针对JS与C/C++跨语言访问场景,NAPI使用比较繁琐。而AKI提供了极简语法糖使用方式,一行代码完成JS与C/C++的无障碍跨语言互调,使用方便。本示例将介绍使用AKI编写C++跨线程调用JS函数场景。通过调用C++全局函数,创建子线程来调用JS函数,实现对变量value的加10操作,为开发者使用AKI提
  • 2024-04-13某函数传参
    在N-API中直接从一个函数向另一个函数传递参数稍微有点复杂,因为你需要正确地处理napi_value数组和环境(napi_env)。如果你想在一个N-API函数(CallAddFunction)中构造参数并直接调用另一个N-API函数(GetAddCheckArg),并且管理这些参数的传递,你将需要手动构建一个新的na
  • 2024-04-07鸿蒙Native输出so动态库,并提供给第三方导入使用
    前言:DevEcoStudio版本:4.0.0.600API:9最近在学习鸿蒙的Native输出so动态库,下面就给大家分享下我的学习心得及在实现过程中遇到的问题。实现需求:通过so库输出文本内容“你好,鸿蒙!”参考资料:OpenHarmonyNativeAPI实现过程:1、创建Native工程File-->New-->createProject
  • 2024-03-28Napi::CallbackInfo Napi::Env
    Napi::ValueEncryptPassword(constNapi::CallbackInfo&info){Napi::Envenv=info.Env();/*Napi::Envenv=info.Env();if(info.Length()<2){Napi::TypeError::New(env,"参数个数异常").ThrowAsJavaScriptExcepti
  • 2024-03-24Linux收到一个网络包是怎么处理的?
    目录摘要​编辑1从网卡开始2硬中断,有点短2.1GameOver3接力——软中断3.1NET_RX_SOFTIRQ软中断的开始3.2数据包到了协议栈3.3网络层处理3.4传输层处理4应用层的处理5总结摘要    一个网络包的接收始于网卡,经层层协议栈的解析,终于应用层。
  • 2024-02-02Flutter for OpenHarmony
    OpenHarmonySIG组织在Gitee开源了兼容OpenHarmony的Flutter。该组织主要用于孵化OpenHarmony相关的开源生态项目。▲仓库地址:https://gitee.com/openharmony-sig/flutter_flutter根据README的描述,此仓库是基于FlutterSDK对OpenHarmony的兼容拓展,可支持使用Flutte
  • 2024-01-31鸿蒙二进制数组创建
    背景c++层数据都是二进制,需要转换成arrayBuffer透传到ets层给业务使用,但是鸿蒙的使用下面两个api创建出来的二进制数组数据都是错误的。接口napi_create_arraybuffer:这个接口只能创建空的二进制数组,没办法把char的内容丢进去创建napi_create_external_arraybuffer:这个接口支持
  • 2024-01-30收包
     整体流程图三、网络接口层3.1概述数据包在本层主要处理流程有五:网卡收到数据包,DMA方式写入RingBuffer,发出硬中断;内核收到硬中断,NAPI加入本CPU的轮询列表,发出软中断;内核收到软中断,轮询NAPI并执行poll函数从RingBuffer取数据;GRO操作(默认开启),合并多个数
  • 2024-01-19#星计划# 浅谈OpenHarmony的NDK开发
    背景NativeAPI(NDK)入门NativeAPI是OpenHarmonySDK上提供的一组native开发接口与工具集合(也称为NDK),方便开发者使用C或者C++语言实现应用的关键功能。NativeAPI只覆盖了OHOS基础的一些底层能力,如libc,图形库,窗口系统,多媒体,压缩库等,并没有完全提供类似于JSAPI上的完整的OHOS平台
  • 2024-01-18#星计划# OpenHarmony NAPI技术简介
    作者:廖家兴简介NAPI(NativeAPI)是OpenHarmony系统中的一套原生模块扩展开发框架,它基于Node.jsN-API规范开发,为开发者提供了JavaScript与C/C++模块之间相互调用的交互能力。可以在NodeJs官网查看各种NAPI接口定义说明。NAPI作用OpenHarmony系统可以将框架层丰富的模块功能通过j
  • 2024-01-08解锁前端新潜能:如何使用 Rust 锈化前端工具链
    前言近年来,Rust的受欢迎程度不断上升。首先,在操作系统领域,Rust已成为Linux内核官方认可的开发语言之一,Windows也宣布将使用Rust来重写内核,并重写部分驱动程序。此外,国内手机厂商Vivo也宣布使用Rust开发了名为“蓝河”的操作系统。除此之外,Rust在图形渲染、游戏开发、中
  • 2023-12-11Native Rawfile开发指导
     场景介绍开发者可以通过本指导了解在HarmonyOS应用中,如何使用Native Rawfile接口操作Rawfile目录和文件。功能包括遍历、打开、搜索、读取和关闭Rawfile。接口说明接口名描述NativeResourceManager *OH_ResourceManager_InitNativeResourceManager(napi_env
  • 2023-12-05Native API在HarmonyOS应用工程中的使用指导
    HarmonyOS的应用必须用js来桥接native。需要使用ace_napi仓中提供的napi接口来处理js交互。napi提供的接口名与三方Node.js一致,目前支持部分接口,符号表见ace_napi仓中的libnapi.ndk.json文件。开发流程在DevEco Studio的模板工程中包含使用Native API的默认工程,使用File->New->Cr
  • 2023-12-05Native API在HarmonyOS应用工程中的使用指导
     HarmonyOS的应用必须用js来桥接native。需要使用ace_napi仓中提供的napi接口来处理js交互。napi提供的接口名与三方Node.js一致,目前支持部分接口,符号表见ace_napi仓中的libnapi.ndk.json文件。开发流程在DevEco Studio的模板工程中包含使用Native API的默认工程,使用File-
  • 2023-11-23OpenHarmony之NAPI框架介绍
     张志成诚迈科技高级技术专家 NAPI是什么NAPI的概念源自Nodejs,为了实现javascript脚本与C++库之间的相互调用,Nodejs对V8引擎的api做了一层封装,称为NAPI。可以在Nodejs官网(https://nodejs.org/dist/latest-v20.x/docs/api/n-api.html)上查看各种NAPI接口定义说明。可以