NDK适用场景
适合使用NDK的场景:应用涉及如下场景时,适合采用NDK开发
-
性能敏感的场景,如游戏、物理模拟等计算密集型场景。
-
需要复用已有C或C++库的场景。
-
需要针对CPU特性进行专项定制库的场景,如Neon加速。
不建议使用NDK的场景:应用涉及如下场景时,不建议采用NDK开发
-
纯C或C++的应用。
-
希望在尽可能多的HarmonyOS设备上保持兼容的应用。
NDK必备
为顺利进行NDK开发,开发者需要先掌握必要的基本概念及基础知识。
NDK基本
-
Node-APINode-APINode-API
曾用名NAPI,是HarmonyOS中提供ArkTS/JS与C/C++跨语言调用的接口,是NDK接口中的一部分。该接口是在Node.js提供的Node-API基础上扩展而来,但与Node.js中的Node-API不完全兼容。
-
C API
HarmonyOS NDK的曾用名,不再使用。
前置知识
-
Linux C语言编程知识
内核、libc基础库基于POSIX等标准扩展而来,掌握基本的Linux C编程知识能够更好的帮助理解HarmonyOS NDK开发。
-
CMake使用知识
CMake是HarmonyOS默认支持的构建系统。请先通过CMake官方文档了解基础用法。
-
Node Addons开发知识
ArkTS采用Node-API作为跨语言调用接口,熟悉基本的Node Addons开发模式,可以更好理解NDK中Node-API的使用。
-
Clang/LLVM编译器使用知识
具备一定的Clang/LLVM编译器基础知识,能够帮助开发者编译出更优的Native动态库。
NDK目录
-
build目录:放置预定义的toolchain脚本文件ohos.toolchain.cmake
CMake编译时需要读取该文件中的默认值,比如编译器架构、C++库链接方式等,因此在编译时会通过CMAKE_TOOLCHAIN_FILE指出该文件的路径,便于CMake在编译时定位到该文件。
-
build-tools文件夹:放置NDK提供的编译工具
# 键入下一行命令查看CMake的版本 cmake -version # 结果 cmake version 3.16.5 CMake suite maintained and supported by Kitware (kitware.com/cmake).
-
llvm文件夹:放置NDK提供的编译器
NDK常用模块
下表介绍了NDK的常用模块。