软件下载
安卓APP
iOSAPP
鸿蒙APP
PC电脑游戏
行业商讯
当前位置:
首页
>
鸿蒙APP
>鸿蒙与Rust(3)——NDK
鸿蒙与Rust(3)——NDK
2026-09-05 19:05:18
鸿蒙与Rust(3)——NDK
NDK(Native Development Kit)是 HarmonyOS 中 提供的一组 Native 开发接口与工具集合,主要覆盖了 HarmonyOS 的一些基础底层能力,如C运行时基础库 libc、图形库、窗口系统、多媒体、压缩库等。通过 NDK,开发者可以编写高性能的应用模块,特别是在需要复用已有 C/C++、Rust库、针对 CPU 特性进行专项定制库的场景下,NDK 显得尤为重要。
NDK 相关概念
NDK
:Native Develop Kit 的缩写,在 OHOS 上就是 Native API;Native API 是官方名字,NDK 指代相同意思。
Native API
:OHOS SDK 里面 native 包提供的,面向三方应用开发的 Native 接口以及相应编译脚本,编译工具链。包括C运行时基础库 libc,3D图形库 opengl等,面向 JS 与 C 跨语言的接口 Node-API 等。
SDK CAPI
:OHOS Native API 中的 C 语言接口,以及工具链部分,当前 OHOS 的 Native API 里面只包含 C 语言接口,因此N ative API 与 CAPI 意思一样,建议交流的时候使用 CAPI,防止 Native API 与 NAPI 缩写混用。
Node-API
:曾用名 NAPI,是 OHOS 中提供 JS 与 C 跨语言调用的接口,是 Native API 接口中的一部分。 该接口在Node.js 提供的 Node-API 基础上扩展而来,但不完全与 Node.js 中的 Node-API 完全兼容。
NAPI
:Node-API的曾用名,当前 Node-API 头文件中的接口仍然以 napi_开头,不建议使用。
什么是 NDK?
鸿蒙 NDK 是一套供开发者使用 C、C++ 或 Rust 等原生语言进行应用开发的工具集。它不仅提供了编译器(Clang/LLVM)和构建工具(CMake),还封装了一系列 Native 接口,覆盖了鸿蒙系统的基础底层能力。
其核心组成部分包括:
C 运行时基础库
:如标准 C 库 libc、C++ 标准库 libc++。
系统基础接口
:涵盖日志打印(HiLog)、事件处理、压缩库(zlib)等。
高性能多媒体/图形
:提供 Vulkan、OpenGL ES 图形库、音频/视频处理接口。
窗口与底层交互
:支持窗口系统、本地内存管理等能力。
为什么选择 NDK 开发?
虽然 ArkTS 是鸿蒙应用开发的主流语言,但在以下场景中,NDK 具有不可替代的优势:
极致的性能需求
:在图像处理、物理模拟、音视频解码或复杂算法运算时,C++/Rust 能通过手动内存管理和硬件级优化(如 NEON/SIMD 指令集)提供更高的执行效率。
成熟生态复用
:业界有大量优秀的开源库(如 OpenCV、FFmpeg、SQLite、Game Engines),通过 NDK 可以直接将其引入鸿蒙项目,避免重复造轮子。
多平台代码共享
:如果应用同时运行在 Android、iOS 和鸿蒙上,核心业务逻辑可以用 C++ 编写,实现“一套代码,多端复用”。
Rust 语言支持
:鸿蒙 NDK 积极拥抱 Rust,为开发者提供了更安全的内存管理机制,降低了原生代码崩溃的风险。
获取 NDK 开发包
通过下载 command line tools 获取 NDK 开发包。
先下载 command line tools 并解压完成,NDK开发相关工具位于$command line tools解压目录/sdk/default/openharmony/native路径下。
通过安装DevEco Studio获取NDK开发包。
先下载并安装完成 DevEco Studio,NDK 开发相关工具位于$DevEco Studio安装目录/sdk/default/openharmony/native路径下。
NDK常用模块
在HarmonyOS NDK 开发中,系统为开发者提供了一系列丰富的底层原生模块,涵盖了从基础运行库到高级图形渲染的各种能力。
鸿蒙NDK的模块通常以 .so 动态链接库的形式提供,C++ 开发者可以在 CMakeLists.txt 中引入。常用的核心模块包括:
基础通信与运行库模块
Node-API (NAPI)
(libace_napi.z.so):最核心的模块之一。用于实现 ArkTS(或 JS)与 C/C++ 之间的跨语言交互、数据类型转换、生命周期管理等。
标准 C/C++ 库
:包括 libc、libc++、libm(数学库),提供基础的内存管理、线程、标准数据结构等能力。
系统通用服务模块
日志模块 HiLog
(libhilog_ndk.z.so):用于在 Native 层打印日志,方便开发者在 DevEco Studio 的 HiLog 窗口进行调试。
资源管理 Rawfile
(librawfile.z.so):用于在 Native 层直接读取应用包内的 resources/rawfile 目录下的资产文件(如读取本地的模型文件、音频文件)。
压缩模块
(libz.so):提供 zlib 基础数据压缩与解压能力。
图形与渲染模块 (Graphic)
Native Drawing
(libnative_drawing.so):提供底层 2D 图形绘制能力(类似于 Skia),常用于自定义复杂的 UI 渲染或图表。
NativeWindow
(libnative_window.so):NativeWindow是本地平台化窗口,表示图形队列的生产者端。开发者可以通过NativeWindow接口进行申请和提交Buffer,配置Buffer属性信息。
XComponent
(libace_ndk.z.so):ArkUI XComponent组件,提供surface与触屏事件等接口,便于开发高性能图形应用。
VSync 模块
(libnative_vsync.so):用于获取系统屏幕刷新帧率信号,保持原生渲染与屏幕刷新同步,避免画面撕裂。
OpenGL
:OpenGL是一种跨平台的图形API,用于为3D图形处理硬件指定标准的软件接口。HarmonyOS现已支持OpenGL 4.2。
OpenGL ES
:OpenGL ES 是 OpenGL 规范的一种形式,适用于嵌入式设备。HarmonyOS 现已支持 OpenGL ES 3.2。
Vulkan
:Vulkan是一套2D和3D绘图应用程序接口,具有跨平台、高性能的特点。HarmonyOS SDK 现已支持Vulkan v1.4.309版本接口,具体可用版本取决于GPU驱动实现。
多媒体与图像模块 (Media)
原生音频 OHAudio
(libohaudio.so):提供低延迟的音频录制与播放能力,适用于实时语音、音乐软件。
原生图像处理 Image
(libimage_ndk.z.so / libpixelmap_ndk.z.so):用于在底层解码图片、操作像素数据(PixelMap)。
音视频编解码
(libnative_media_codecbase.so 等):提供硬件加速的音视频编码和解码接口。
其他
FFRT
:基于任务的并发编程框架。
libuv
:libuv是一个跨平台库,基于事件驱动来实现异步I/O,适用于网络编程和文件系统操作。它是Node.js的核心库之一,也被其他语言的开发者广泛使用
结论
HarmonyOS NDK 为开发者提供了进入系统底层能力的通道,它不仅仅是一套 API 和工具,更是一种高性能开发思路。对于需要复用 C/C++、Rust 资产、需要图形/多媒体/算法优化、需要贴近硬件能力的项目而言,NDK 是构建鸿蒙原生能力的重要抓手。NDK 不仅仅是一个工具包,它是开发者触达硬件极限、发挥系统潜能的钥匙。通过 NDK,我们可以将高性能的游戏引擎、复杂的端侧 AI 模型以及成熟的跨平台框架带入鸿蒙生态。
随着鸿蒙系统的不断演进(如 API 12 及更高版本),NDK 开放的能力将越来越丰富。作为开发者,掌握 NDK 开发不仅能提升个人技术竞争力,更能为用户打造出更流畅、更强大的“纯血”鸿蒙应用。
参考资料
HarmonyOS指南>NDK开发>NDK开发导读 https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/ndk-development-overview
鸿蒙HarmonyOS应用开发之NDK开发导读 https://zhuanlan.zhihu.com/p/689337863
鸿蒙next开发-OpenHarmony的NDK开发 https://zhuanlan.zhihu.com/p/678765810
鸿蒙NDK开发入门 https://juejin.cn/post/7405427128806047807
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:596563534@qq.com 。
华为鸿蒙智行选择了立邦汽车涂料!
iOS 各系统控制中心的演变
最新文章
华为鸿蒙智行选择了立邦汽车涂料!
超实用安卓电视软件!免费无广,央视地方台全收录,播放超稳定
春暖校园间,美味常相伴!鸿蒙高级中学·光华实验学校食堂悉心制定本周(3月16日—3月21日)营养食谱.
品牌推荐 |【海思】开源鸿蒙星闪统一智联方案,开启智慧家庭“轻智能”时代
年轻家庭第一辆鸿蒙智行 全新问界M6本月23日开启预定
正式招生!2026年企业“开源鸿蒙南向设备开发”培训班启动
银发日报 | 华为鸿蒙智家*人寿堂养老集团战略合作签约;315曝光私域直播坑老骗局;京东MALL「智享银龄馆」正式开放
一款基于鸿蒙架构的龙虾养殖调度平台系统
华为“鸿蒙”深夜炸场!4700万设备背后的秘密,今年冬天要变天?
全!免!费!鸿蒙应用开发课程培训来了,名额速抢→
热门文章
【都市好前程】|华为鸿蒙系新能源汽车直招正式工
麒麟芯+鸿蒙6,华为畅享90系列3月23日发布
AWE直播解读华为Mate 80系列 鸿蒙生态+旗舰影像双出圈
未来3年对BBA冲击最大的不是鸿蒙智行
就在开源鸿蒙开发者培训基地!2026年企业“开源鸿蒙南向设备开发”培训班启动
刚更新,十几款 IOS 追剧影视神器,手慢下架!
纯血鸿蒙生态进展(2026.3.16)
接ios代肝妹子们,绝对诚信,有自证
Share 壁纸|IOS韩系背景 - 直存
iOS26 高级感壁纸 壁纸高清4kins高级质感 手机壁纸
随机文章
10个月宝宝每天需要喝多少奶粉?
星光入校园,鸿蒙育新军:星光学堂走进深职大,开启学子鸿蒙新程
华为新机豁出去了:麒麟芯片+鸿蒙6,巨鲸电池告别充电宝,信号死胡同被堵死,到底值不值?
第十一篇文章:鸿蒙系统好用吗?
鸿蒙生态落地光谷智慧社区,武汉智慧人居建设再添标杆
iPhone专属丨iOS26 裸眼壁纸
iOS 27深度前瞻:折叠屏iPhone的“中间态革命”与AI Siri的破茧时刻
新机炸场!麒麟+鸿蒙+超大电池,华为这组合太稳了!
【iOS苹果游戏推荐】笑到劈叉|《Human Fall Flat》:全员“软脚虾”的沙雕闯关狂欢
为什么华为不出“低价手机”,帮鸿蒙6.0抢占市场?
iOS26 | 精选全屏高质感壁纸