用rust实现鸿蒙PC的计算器应用:基于鸿蒙生态与Rust的PC计算器应用项目

用户可通过该项目学习鸿蒙PC应用开发中ArkTS、C++ NAPI与Rust的结合使用。它是面向DevEco Studio的示例应用,界面用ArkTS,业务逻辑由Rust实现,支持加法、斐波那契计算等功能。【此简介由AI生成】

分支1Tags0
ea89ab6c创建于 13 小时前1次提交
文件最后提交记录最后更新时间
new 13 小时前
new 13 小时前

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

使用方式

  1. 用 DevEco Studio 打开 HarmonyRustPcApp 目录。
  2. 确认本机已安装 Rust,并且 cargo 在 PATH 中可用。 如果 DevEco Studio 或终端识别不到 cargo,把下面目录加入用户 PATH:
C:\Users\GZX\.cargo\bin
  1. 安装 OpenHarmony Rust target,例如 PC 模拟器常用:
rustup target add x86_64-unknown-linux-ohos
  1. 如果使用 arm64 模拟器或真机:
rustup target add aarch64-unknown-linux-ohos
  1. 在 DevEco Studio 中 Sync Project。
  2. 选择 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 暴露 addfibonaccigreeting 三个函数。
  • 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) == 42
  • rust_fibonacci(12) == 144
  • rust_greeting() 返回有效 C 字符串

HarmonyRustPcApp

项目介绍

用户可通过该项目学习鸿蒙PC应用开发中ArkTS、C++ NAPI与Rust的结合使用。它是面向DevEco Studio的示例应用,界面用ArkTS,业务逻辑由Rust实现,支持加法、斐波那契计算等功能。【此简介由AI生成】

定制我的领域

下载使用量

0

项目总下载次数(含Clone、Pull、 zip 包及 release 下载),每日凌晨更新

语言类型

C++37.58%
C35.78%
CMake16.63%
ArkTS6.31%
Rust1.53%