Rust+HarmonyOS: 编译纯血鸿蒙的oh-napi

1,531 阅读3分钟

DALL·E 2024-05-09 21.34.05 - A visually appealing and informative horizontal banner illustrating the OpenHarmony Rust development environment (OHOS-RS). The banner should include .webp

前言

OpenHarmony是一款开源操作系统,旨在支持不同终端设备的互联互通。OHOS-RS项目是OpenHarmony的Rust语言开发环境,通过它可以使用Rust语言编写高效、安全的应用。本文将引导你一步步完成OHOS-RS的安装、配置和简单应用开发。通过整合Rust与OpenHarmony的力量,你可以更轻松地为各类设备开发高性能的NAPI模块。

接下来,我们将按照以下步骤来完成环境的搭建与初步开发:

  1. 安装与配置Rust Nightly版本
    为了使用OHOS-RS项目,我们需要切换到Rust的Nightly版本,并添加相关组件与目标架构。
  2. 添加OHOS支持的架构
    为确保NAPI模块可以在所有目标设备上正常运行,我们将添加OpenHarmony支持的各类架构。
  3. 创建并配置OHOS-NAPI项目
    通过创建build.rs与配置Cargo.toml文件,将NAPI模块正确集成到项目中。
  4. 编译与构建NAPI模块
    使用OHOS-RS的工具链进行构建,最终生成可在OpenHarmony上运行的NAPI模块。

希望本文能为你的OpenHarmony开发之旅提供帮助。下面让我们开始吧!

安装与配置Rust Nightly版本

安装 Nightly 版本

首先,需要安装Rust的Nightly版本,以便使用OHOS-RS项目的功能。执行以下命令安装并切换到Nightly版本:

# 安装 Nightly 版本
rustup install nightly
# 切换到 Nightly 版本
rustup default nightly
# 确认是否安装成功
rustc --version
# 若输出 rustc 1.80.0-nightly (faefc618c 2024-05-07)
# 类似 rustc 1.x.x-nightly 则说明安装成功

添加 rust-src 组件

接下来,需要添加 rust-src 组件。如果提示组件未找到,请更新 Rust:

rustup component add rust-src

添加OHOS支持的架构

要确保NAPI模块在所有目标设备上正常运行,需要添加OpenHarmony支持的目标架构。

检查当前 Rust 默认版本

首先,检查当前Rust的默认版本,确保我们使用的是Nightly版本:

rustup show
# 输出示例,若不是 Nightly 版本,请先切换到 Nightly 版本
# nightly-x86_64-apple-darwin (default)

查询支持的架构

使用以下命令查询支持的OpenHarmony目标架构:

rustc --print target-list | grep ohos
# 应该会输出以下内容,若没有请更新 rustup
# aarch64-unknown-linux-ohos
# armv7-unknown-linux-ohos
# x86_64-unknown-linux-ohos

添加目标架构

添加OpenHarmony支持的目标架构:

rustup target add aarch64-unknown-linux-ohos
rustup target add armv7-unknown-linux-ohos
rustup target add x86_64-unknown-linux-ohos

添加OHOS-NAPI

要创建一个简单的OHOS-NAPI项目,需要按照以下步骤操作。

项目结构

首先,创建一个基本的项目结构:

├── build.rs
├── src
│    ├── lib.rs
├── Cargo.toml

build.rs

在项目根目录下创建 build.rs 文件,并添加以下内容:

// build.rs
fn main() {
    napi_build_ohos::setup();
}

Cargo.toml

Cargo.toml 文件中正确配置项目依赖。添加以下依赖项:

[lib]
crate-type = ["cdylib"]

[dependencies.napi-derive-ohos]
version = "0.0.9"
[dependencies.napi-ohos]
version = "0.1.3"
[build-dependencies.napi-build-ohos]
version = "0.0.3"

编译与构建

最后,使用OHOS-RS工具链进行构建,生成可在OpenHarmony上运行的NAPI模块:

ohrs build

编译完成后,生成的产物结构如下:

├── dist
│   ├── index.d.ts
│   ├── arm64-v8a
│   │   ├── libhello_napi_rust.so
│   ├── armeabi-v7a
│   │   ├── libhello_napi_rust.so
│   └── x86_64
│       ├── libhello_napi_rust.so

结语

通过本文的指导,你应该已经成功完成了OHOS-RS的安装与配置,并初步构建了一个简单的OHOS-NAPI项目。希望这篇文章能帮助你在OpenHarmony的开发过程中事半功倍,为不同终端设备开发出更高效、更安全的应用。

撰写不易,请给个赞👍吧