用户可通过该项目学习鸿蒙PC应用开发中ArkTS、C++ NAPI与Rust的结合使用。它是面向DevEco Studio的示例应用,界面用ArkTS,业务逻辑由Rust实现,支持加法、斐波那契计算等功能。【此简介由AI生成】
HarmonyRustPcApp
这是一个面向 DevEco Studio 的鸿蒙 PC/2in1 示例应用。界面使用 ArkTS,Native 层使用 C++ NAPI,业务逻辑由 Rust 实现。
工程结构
HarmonyRustPcApp
├── AppScope
│ └── app.json5
├── build-profile.json5
├── hvigorfile.ts
├── oh-package.json5
└── entry
├── build-profile.json5
├── hvigorfile.ts
├── oh-package.json5
└── src/main
├── cpp
│ ├── CMakeLists.txt
│ ├── napi_init.cpp
│ ├── rust-core
│ └── types/libentry/index.d.ts
├── ets
│ ├── entryability/EntryAbility.ets
│ └── pages/Index.ets
├── module.json5
└── resources
使用方式
- 用 DevEco Studio 打开
HarmonyRustPcApp目录。 - 确认本机已安装 Rust,并且
cargo在 PATH 中可用。 如果 DevEco Studio 或终端识别不到cargo,把下面目录加入用户 PATH:
C:\Users\GZX\.cargo\bin
- 安装 OpenHarmony Rust target,例如 PC 模拟器常用:
rustup target add x86_64-unknown-linux-ohos
- 如果使用 arm64 模拟器或真机:
rustup target add aarch64-unknown-linux-ohos
- 在 DevEco Studio 中 Sync Project。
- 选择 PC/2in1 模拟器运行
entry。
OHOS target 下载超时处理
如果 rustup target add x86_64-unknown-linux-ohos 长时间无响应,可以先确认 target 是否存在:
rustup target list | findstr ohos
如需使用国内镜像,可以在 PowerShell 中临时设置:
$env:RUSTUP_DIST_SERVER='https://mirrors.ustc.edu.cn/rust-static'
rustup target add x86_64-unknown-linux-ohos
如果 DevEco Studio 运行时仍然提示找不到 cargo,重启 DevEco Studio,确保它继承了最新 PATH。
说明
- ArkTS 通过
import native from 'libentry.so'调用 Native 层。 - C++ NAPI 暴露
add、fibonacci、greeting三个函数。 - Rust 位于
entry/src/main/cpp/rust-core,以staticlib形式链接到libentry.so。 - 若 DevEco 编译时提示找不到 OHOS Rust linker,需要按你的 DevEco SDK 路径配置 Cargo linker。不同 DevEco Studio 版本 SDK 路径不完全一致,建议优先使用 DevEco 的 Native C++ 模板确认本机 NDK 路径。
快速验证
应用运行后页面会显示:
- Rust greeting 字符串
- Rust 加法结果
- Rust Fibonacci 结果
点击“重新计算”会再次调用 Rust native 方法。
已验证项
当前 Rust 核心库已通过本机 host 构建和单元测试:
cargo test --manifest-path entry/src/main/cpp/rust-core/Cargo.toml
cargo build --release --manifest-path entry/src/main/cpp/rust-core/Cargo.toml
测试覆盖:
rust_add(12, 30) == 42rust_fibonacci(12) == 144rust_greeting()返回有效 C 字符串