如何在不使用 DevEco Studio 的情况下制作 HarmonyOS 鸿蒙Next纯 C/C++ 应用程序?

如何在不使用 DevEco Studio 的情况下制作 HarmonyOS 鸿蒙Next纯 C/C++ 应用程序?

朋友们,开发者们你们好!

现考虑移植一款GLES应用程序到鸿蒙,完全是C/C++编写。按照文档中 NDK / CMake 编译参考 能成功编译出二进制库和可执行文件,但文档中未见进一步的模版或者最小示例介绍如何将该可执行文件打包给鸿蒙系统。对于安卓而言,可用其 NDK 中附带的 native app glue 模版和 aapt 打包,而 OHOS SDK 似乎未提供该模版,也未见专门的独立打包工具。

一些疑惑:

  • hvigorw 是否是生成可安装包的唯一工具?hvigorw 是否自动调用其他打包 / 签名等外部工具,开发者也可以自行调用这些工具以适用现有的通过 CMake 管理的工程结构?
  • build-profile.json5, hvigorfile.ts, hvigor-config.json5 均指定构建规则,而整个工程的依赖都通过 CMake 管理,原则上应无需通过 hvigorw 编译,因此如果 hvigorw 是必需的,那么这三个配置文件除了包含入口点和需要打包的库之外,应不需要额外配置依赖?
  • 是否能提供一个 NDK 程序制作安装包、不含 ArkTS 侧代码的最小模版?

望答复。谢谢!


更多关于如何在不使用 DevEco Studio 的情况下制作 HarmonyOS 鸿蒙Next纯 C/C++ 应用程序?的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

在鸿蒙Next中开发纯C/C++应用,可使用鸿蒙NDK工具链。步骤如下:

  1. 安装鸿蒙SDK,获取native相关组件
  2. 使用CMake构建项目
  3. 编写C/C++代码需包含"ohos_init.h"头文件
  4. 通过GN或Ninja进行编译
  5. 将生成的.so文件打包到HAP中

需注意:

  • 入口函数需使用OHOS_APP_RUN()宏
  • 系统接口调用需使用鸿蒙Native API
  • 资源管理遵循鸿蒙规范

开发环境最小要求:

  • 鸿蒙NDK
  • CMake 3.10+
  • Ninja 1.9+,

更多关于如何在不使用 DevEco Studio 的情况下制作 HarmonyOS 鸿蒙Next纯 C/C++ 应用程序?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


对于纯C/C++的HarmonyOS Next应用打包,确实可以不依赖DevEco Studio。以下是关键点:

  1. 打包工具链:
  • hvigor是主要构建工具,但底层仍调用OHOS SDK中的工具(如app-packager)
  • 可以直接使用SDK中的native_packager.sh进行纯native应用打包
  1. 最小配置示例:
project/
├── CMakeLists.txt
├── entry/
│   ├── src/main/cpp/ # 你的C++代码
│   └── config.json # 必须的应用配置
└── build-profile.json5 # 极简配置
  1. 关键配置文件说明:
  • config.json需包含:
{
  "app": {
    "bundleName": "com.example.nativeapp",
    "nativeLibrary": "your_executable" 
  }
}
  1. 构建命令:
$ cmake -B build -DOHOS_SDK=/path/to/sdk
$ cmake --build build
$ /path/to/sdk/native/ohos-native-package.sh 
  -o myapp.hap 
  -e build/your_executable 
  -c entry/config.json

注意:必须提供有效的签名证书才能安装到真机。纯native应用仍需符合HarmonyOS应用框架的基本结构要求。

回到顶部