HarmonyOS中调用C/C++代码(NDK)
·
开发工具准备
下载最新的编辑器
下载中心 | 华为开发者联盟-HarmonyOS开发者官网,共建鸿蒙生态
选择合适的版本下载
下载完成以后解压 然后全程下一步安装
安装完毕以后 开始创建Native项目
第一步 新建项目

第二步 选择 Native C++ 别选第一个
第三步 创建项目名称 包名 保存路径 切记别用中文
第四步 查看整个项目结构和预览效果
ps:不要觉得很难 动手操作起来就还好

第五步:查看CPP文件

其中1 表示描述C++ API接口行为,如接口名、入参、返回参数等
切记是描述 类似Arkts中interface 用来声明的 而不具体实现的
其中2 表示 C++源码编译配置文件,提供CMake构建脚本
别看后缀是txt,功能很强大的
其中3表示 C++源文件
c++的代码都写在cpp结尾的文件中 ,页面要调用的也就是C++中代码
第六步 在napi_init.cpp中定义一个求和的方法
#include "napi/native_api.h"
static napi_value Add(napi_env env, napi_callback_info info)
{
size_t argc = 2;
napi_value args[2] = {nullptr};
napi_get_cb_info(env, info, &argc, args , nullptr, nullptr);
napi_valuetype valuetype0;
napi_typeof(env, args[0], &valuetype0);
napi_valuetype valuetype1;
napi_typeof(env, args[1], &valuetype1);
double value0;
napi_get_value_double(env, args[0], &value0);
double value1;
napi_get_value_double(env, args[1], &value1);
napi_value sum;
napi_create_double(env, value0 + value1, &sum);
return sum;
}
第七步:在 Index.d.ts 中 定义方法 并且导出
export const add: (a: number, b: number) => number;
第八步 :回到page下面的Arkt中
先导入
import testNapi from 'libentry.so';
这个so就是
默认表示index文件
使用的地方 testNapi获取到对应的方法
import testNapi from 'libentry.so';
@Entry
@Component
struct Index {
@State message: string = 'Hello World';
build() {
Row() {
Column() {
Text(this.message)
.fontSize($r('app.float.page_text_font_size'))
.fontWeight(FontWeight.Bold)
.onClick(() => {
this.message =String( testNapi.add(8,10))
})
}
.width('100%')
}
.height('100%')
}
}
点击页面文字就能看到变化 工作中鸿蒙应用开发者只关注页面层和接口层,接口层的定义libentry中
回顾这种图 看能否给您不一样的收获
请点击下面链接加入班级 获取最新鸿蒙学习免费资料
总结
本文介绍了在HarmonyOS中开发Native C++项目的完整流程。首先需下载安装最新IDE工具,创建Native C++项目时注意项目命名规范。重点讲解了项目结构:.d.ts定义接口,CMake.txt管理构建配置,.cpp文件编写实现代码。通过一个求和函数示例,演示了从C++代码实现到ArkTS调用的完整过程:在napi_init.cpp实现add方法,在Index.d.ts声明接口,最后在ArkTS页面中调用。文章强调开发者只需关注接口定义和页面实现,底层由Native代码处理,并提供了项目结构图
更多推荐



所有评论(0)