HarmonyOS RUST 应用开发指导

HarmonyOS RUST 应用开发指导

1 前言

1.1 简介

本文用于指导以Rust作为应用开发语言进行鸿蒙应用开发以及 OpenHarmony 对于Rust语言的支持说明

1.2 范围

本指导适用以下范围:

  • 构建OpenHarmony设备可运行的 Rust 模块。
  • 使用 DevEco Studio 集成开发环境进行应用开发并调用 Rust 模块能力。

2 背景介绍

2.1 技术适用场景介绍

开发者在进行鸿蒙应用开发时,希望用 Rust 构建部分应用模块以获得应用在运行性能、安全等方面的提升,或者开发者希望将三方 Rust 模块进行鸿蒙化。

虽然Rust主线版本已经支持 OpenHarmony,但当前Rust对于 OpenHarmony 为 tier3 支持,无法使用 rustup 下载到 OpenHarmony 对应的 std 标准库。所以推荐使用 rust nightly 版本-Z build-std实时构建std标准库,此方式会默认将 OpenHarmony 的 std 和 Rust 模块静态链接。后续也将会升级为 Tier2 支持。

2.2 技术使用场景介绍

使用Rust开发鸿蒙应用

目前OpenHarmony 对应用只开放了ArkTS API 和 C API(NDK), 没有 Rust API。

应用使用 Rust 开发的程序,通常使用 Rust 语言实现,并导出 C 函数接口,最终编译成一个 C动态链接库,即 Rust 中的cdylib。在系统看来这个Rust语言编写的 动态库和 C/C++ 实现的动态库没有区别。

应用使用 Rust 语言的依赖限制和使用 C/C++ 语言开发也很类似,即最终只可以依赖包括 libc 在在内的 NDK 库的范围。 例如 Rust 程序可以直接通过 nix crate 和 libc crate 访问 C库中的 posix 接口, 但是不能通过 openssl-sys crates 访问到系统中的 openssl, 和 C/C++ 代码一样, 需要自行交叉编译 openssl 和应用一起部署。

3 整体解决方案介绍

3.1 鸿蒙整体实现方案介绍

基于当前Rust社区对OpenHarmony 的支持和IDE开发现状,提供一个使用Rust官方工具链编译生成可以在 OpenHarmony 运行程序的简单示例,Rust编译平台为 linux 系统,应用开发平台为 Windows 版本 DevEco Studio。

下载Rust工具链和std源码

  1. 下载安装 rustup:
$ curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
  1. 下载安装 toolchain 和 std 源码
rustup toolchain install nightly
rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu
  1. 下载配置 ohos-ndk

您可以从OpenHarmony社区下载站点获取最新的release版本(当前为4.0-Release)的Public SDK包

# 下载SDK包
wget https://repo.huaweicloud.com/openharmony/os/4.0-Release/ohos-sdk-windows_linux-public.tar.gz
# 解压SDK包
tar -xvzf ohos-sdk-windows_linux-public.tar.gz
# 解压ndk压缩包
cd /path/to/ohos-sdk/linux
unzip native-linux-*
  1. 新建 clang wrapper 文件

创建 aarch64-unknown-linux-ohos-clang.sh,并编辑文件内容为(注意&#

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值