欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

[鴻蒙]OpenHarmony4.0的Rust開發(fā)

王程 ? 2024-02-26 17:28 ? 次閱讀

背景

Rust 是一門靜態(tài)強(qiáng)類型語言,具有更安全的內(nèi)存管理、更好的運(yùn)行性能、原生支持多線程開發(fā)等優(yōu)勢。Rust 官方也使用 Cargo 工具來專門為 Rust 代碼創(chuàng)建工程和構(gòu)建編譯。 OpenHarmony 為了集成 C/C++ 代碼和提升編譯速度,使用了 GN + Ninja 的編譯構(gòu)建系統(tǒng)。GN 的構(gòu)建語言簡潔易讀,Ninja 的匯編級編譯規(guī)則直接高效。 為了在 OpenHarmony 中集成 Rust 代碼,并最大程度發(fā)揮 Rust 和 OpenHarmony 中原有 C/C++ 代碼的交互性,采用 GN 作為統(tǒng)一構(gòu)建工具,即通過 GN 構(gòu)建 Rust 源碼文件(xxx.rs),并增加與 C/C++ 互操作、編譯時 lint、測試、IDL 轉(zhuǎn)換、三方庫集成、IDE 等功能。同時擴(kuò)展 gn 框架,支持接口自動化轉(zhuǎn)換,最大程度簡化開發(fā)。

基本概念

wKgaomXbKX-AAe6rAADEW5Pyw8c913.png

配置規(guī)則

OpenHarmony 提供了用于 Rust 代碼編譯構(gòu)建的各類型 GN 模板,可以用于編譯 Rust 可執(zhí)行文件,動態(tài)庫和靜態(tài)庫等。各類型模板說明如下:

wKgZomXbKYmAZDfFAAKDbDTFKMc427.png

配置 Rust 靜態(tài)庫示例

該示例用于測試 Rust 可執(zhí)行 bin 文件和靜態(tài)庫 rlib 文件的編譯,以及可執(zhí)行文件對靜態(tài)庫的依賴,使用模板 ohos_rust_executable 和 ohos_rust_static_library。操作步驟如下:

1.創(chuàng)建 build/rust/tests/test_rlib_crate/src/simple_printer.rs,如下所示:

//! simple_printer

/// struct RustLogMessage

pub struct RustLogMessage {
    /// i32: id
    pub id: i32,
    /// String: msg
    pub msg: String,
}

/// function rust_log_rlib
pub fn rust_log_rlib(msg: RustLogMessage) {
    println!("id:{} message:{:?}", msg.id, msg.msg)
}
?

2.創(chuàng)建 build/rust/tests/test_rlib_crate/src/main.rs,如下所示:

//! rlib_crate example for Rust.

extern crate simple_printer_rlib;

use simple_printer_rlib::rust_log_rlib;
use simple_printer_rlib::RustLogMessage;

fn main() {
    let msg: RustLogMessage = RustLogMessage {
        id: 0,
        msg: "string in rlib crate".to_string(),
    };
    rust_log_rlib(msg);
}
?

3.配置 gn 腳本 build/rust/tests/test_rlib_crate/BUILD.gn,如下所示:

import("http://build/ohos.gni")

ohos_rust_executable("test_rlib_crate") {
  sources = [ "src/main.rs" ]
  deps = [ ":simple_printer_rlib" ]
}

ohos_rust_static_library("simple_printer_rlib") {
  sources = [ "src/simple_printer.rs" ]
  crate_name = "simple_printer_rlib"
  crate_type = "rlib"
  features = [ "std" ]
}
?

4.執(zhí)行編譯得到的可執(zhí)行文件,運(yùn)行結(jié)果如下:

./build.sh --product-name rk3568 --build-target build/rust/tests:tests  --no-prebuilt-sdk
hdc_std.exe shell mount -o rw,remount /
hdc_std.exe shell file send test_dylib_crate /data/local/tmp
hdc_std.exe file send libsimple_printer_dylib.dylib.so /system/lib

hdc_std.exe shell
# cd /data/local/tmp
# chmod +x test_dylib_crate
# ./test_dylib_crate
id:0 message:"string in rlib crate"

?

配置 Rust 應(yīng)用系統(tǒng)庫示例

1.增加依賴

// GN 里增加依賴
ohos_rust_executable("test_dylib_crate") {
  sources = [ "src/main.rs" ]
  deps = [ ":simple_printer_dylib" ]
  # 增加外部依賴
  external_deps = [ "hilog:hilog_rust" ]
}

// bundle.json 里增加依賴
"components": [
  "hilog"
],

?
2.增加調(diào)用

extern crate simple_printer_dylib;

use simple_printer_dylib::rust_log_dylib;
use simple_printer_dylib::RustLogMessage;
//! 增加引用
use std::ffi::{ c_char, CString };
use hilog_rust::{hilog, info, HiLogLabel, LogType};

const LOG_LABEL: HiLogLabel = HiLogLabel {
    log_type: LogType::LogCore,
    domain: 0xD002220, 
    tag: "TEST_RUST",
};

fn main() {
    let msg: RustLogMessage = RustLogMessage {
        id: 0,
        msg: "string in rlib crate".to_string(),
    };
    rust_log_dylib(msg);
    //! 增加調(diào)用
    info!(LOG_LABEL, "Fnished enable all keys.");
}
?

3.運(yùn)行測試

// 運(yùn)行
# ./test_dylib_crate
id:0 message:"string in rlib crate"

// 查看hilog
# hilog | grep Fnished
08-17 05:14:18.121 29293 29293 I C02220/TEST_RUST: Fnished enable all keys.

為了能讓大家更好的學(xué)習(xí)鴻蒙 (OpenHarmony) 開發(fā)技術(shù),這邊特意整理了《鴻蒙 (OpenHarmony)開發(fā)學(xué)習(xí)手冊》,希望對大家有所幫助:

《鴻蒙(Harmony OS)開發(fā)學(xué)習(xí)手冊》

入門必看:https://docs.qq.com/doc/DUk51cHZJaUpmSlhH
1.應(yīng)用開發(fā)導(dǎo)讀(ArKTS)
2.……

wKgaomXW6N2AJp9uAAQXRxEAprs547.png

HarmonyOS概念:https://docs.qq.com/doc/DUk51cHZJaUpmSlhH
1.系統(tǒng)定義
2.技術(shù)框架
3.技術(shù)特性
4.系統(tǒng)安全

wKgaomXW6OSAFcCRAAV2zd2X_1s891.png

快速入門:https://docs.qq.com/doc/DUk51cHZJaUpmSlhH
1.基本概念
2.構(gòu)建第一個ArkTS應(yīng)用
3.構(gòu)建第一個JS應(yīng)用
4…

wKgZomXW6PuAA7wEAAKx6By_2Z8377.png

開發(fā)基礎(chǔ)知識:https://docs.qq.com/doc/DUk51cHZJaUpmSlhH
1.應(yīng)用基礎(chǔ)知識
2.配置文件
3.應(yīng)用數(shù)據(jù)管理
4.應(yīng)用安全管理
5.應(yīng)用隱私保護(hù)
6.三方應(yīng)用調(diào)用管控機(jī)制
7.資源分類與訪問
8.學(xué)習(xí)ArkTS
9…

wKgZomXW6QaAM4niAAQzrXUUPik914.png

基于ArkTS 開發(fā):https://docs.qq.com/doc/DUk51cHZJaUpmSlhH
1.Ability開發(fā)
2.UI開發(fā)
3.公共事件與通知
4.窗口管理
5.媒體
6.安全
7.網(wǎng)絡(luò)與鏈接
8.電話服務(wù)
9.數(shù)據(jù)管理
10.后臺任務(wù)(Background Task)管理
11.設(shè)備管理
12.設(shè)備使用信息統(tǒng)計(jì)
13.DFX
14.國際化開發(fā)
15.折疊屏系列
16………

wKgZomXW6RKATahiAAKz-zSMnR4040.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Rust
    +關(guān)注

    關(guān)注

    1

    文章

    230

    瀏覽量

    6670
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2393

    瀏覽量

    43079
  • OpenHarmony
    +關(guān)注

    關(guān)注

    25

    文章

    3749

    瀏覽量

    16616
收藏 人收藏

    評論

    相關(guān)推薦

    鴻蒙北向開發(fā)OpenHarmony4.1 DevEco Studio開發(fā)工具安裝與配置

    OpenHarmony4.1 DevEco Studio開發(fā)工具安裝與配置,鴻蒙北向開發(fā)入門必備!
    的頭像 發(fā)表于 02-07 17:35 ?135次閱讀
    <b class='flag-5'>鴻蒙</b>北向<b class='flag-5'>開發(fā)</b><b class='flag-5'>OpenHarmony</b>4.1 DevEco Studio<b class='flag-5'>開發(fā)</b>工具安裝與配置

    OpenHarmony源碼編譯后燒錄鏡像教程,RK3566鴻蒙開發(fā)板演示

    本文介紹瑞芯微主板/開發(fā)板編譯OpenHarmony源碼后燒錄鏡像的教程,觸覺智能Purple Pi OH鴻蒙開發(fā)板演示。搭載了瑞芯微RK3566四核處理器,樹莓派卡片電腦設(shè)計(jì),支持開
    的頭像 發(fā)表于 12-30 10:08 ?190次閱讀
    <b class='flag-5'>OpenHarmony</b>源碼編譯后燒錄鏡像教程,RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>板演示

    OpenHarmony怎么修改DPI密度值?觸覺智能RK3566鴻蒙開發(fā)板演示

    開源鴻蒙OpenHarmony系統(tǒng)下,修改DPI密度值的方法,觸覺智能Purple Pi OH鴻蒙開發(fā)板演示,搭載了瑞芯微RK3566四核處理器,Laval
    的頭像 發(fā)表于 12-24 11:46 ?270次閱讀
    <b class='flag-5'>OpenHarmony</b>怎么修改DPI密度值?觸覺智能RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>板演示

    OpenHarmony屬性信息怎么修改?觸覺智能RK3566鴻蒙開發(fā)板來演示

    本文介紹開源鴻蒙OpenHarmony系統(tǒng)下,修改產(chǎn)品屬性信息的方法,觸覺智能Purple Pi OH鴻蒙開發(fā)板演示,已適配全新OpenHarmon
    的頭像 發(fā)表于 11-27 09:31 ?237次閱讀
    <b class='flag-5'>OpenHarmony</b>屬性信息怎么修改?觸覺智能RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>板來演示

    如何在開源鴻蒙OpenHarmony開啟SELinux模式?RK3566鴻蒙開發(fā)板演示

    本文介紹開源鴻蒙OpenHarmony系統(tǒng)下,開啟/關(guān)閉SELinux權(quán)限的方法,觸覺智能Purple Pi OH鴻蒙開發(fā)板演示,已適配全新Open
    的頭像 發(fā)表于 11-18 19:03 ?436次閱讀
    如何在開源<b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>開啟SELinux模式?RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>板演示

    OpenHamrony4.0去除鎖屏是一種什么體驗(yàn)?觸覺智能給你支支招

    本文介紹開源鴻蒙OpenHarmony 4.0系統(tǒng)下,去除鎖屏開機(jī)后直接進(jìn)入界面的方法,觸覺智能Purple Pi OH鴻蒙開發(fā)板演示,已適
    的頭像 發(fā)表于 11-13 10:37 ?327次閱讀
    OpenHamrony<b class='flag-5'>4.0</b>去除鎖屏是一種什么體驗(yàn)?觸覺智能給你支支招

    OpenHarmony4.0系統(tǒng)修改屏幕旋轉(zhuǎn)方法,RK3566鴻蒙開發(fā)板備戰(zhàn)第九屆華為ICT大賽

    本文提供OpenHarmony4.0系統(tǒng)豎屏修改為旋轉(zhuǎn)時的操作方法,本次使用了觸覺智能的Purple Pi OH鴻蒙開源主板,搭載了瑞芯微RK3566,Laval官方社區(qū)主薦的一款鴻蒙開發(fā)
    的頭像 發(fā)表于 09-25 00:29 ?626次閱讀
    <b class='flag-5'>OpenHarmony4.0</b>系統(tǒng)修改屏幕旋轉(zhuǎn)方法,RK3566<b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>板備戰(zhàn)第九屆華為ICT大賽

    鴻蒙OpenHarmony南向/北向快速開發(fā)教程-迅為RK3568開發(fā)

    4.1學(xué)習(xí)之旅了嗎?快來加入我們,一起探索鴻蒙4.1系統(tǒng)的無限魅力吧! 【北京迅為】OpenHarmony學(xué)習(xí)開發(fā)系列教程(第1期 北向基礎(chǔ)篇一) P0_先導(dǎo)課 P1_OpenHarmony
    發(fā)表于 07-23 10:44

    深耕鴻蒙生態(tài),國科微旗艦芯片獲“鴻蒙4.0”首款認(rèn)證

    7月9日,國科微宣布旗下超高清視頻解碼及商顯芯片通過OpenHarmony4.0版本兼容性測評,獲頒鴻蒙生態(tài)產(chǎn)品兼容性證書。其中,國科微GK6323V100C是業(yè)界首款通過鴻蒙4.0
    的頭像 發(fā)表于 07-10 13:10 ?540次閱讀
    深耕<b class='flag-5'>鴻蒙</b>生態(tài),國科微旗艦芯片獲“<b class='flag-5'>鴻蒙</b><b class='flag-5'>4.0</b>”首款認(rèn)證

    鴻蒙開發(fā):【OpenHarmony 4.0 Release指導(dǎo)】

    OpenHarmony 4.0版本如期而至,開發(fā)套件同步升級到API 10。相比3.2 Release版本,新增4000多個API,應(yīng)用開發(fā)能力更加豐富;HDF新增200多個HDI接口
    的頭像 發(fā)表于 05-14 09:59 ?1653次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>OpenHarmony</b> <b class='flag-5'>4.0</b> Release指導(dǎo)】

    鴻蒙OpenHarmony開發(fā)板解析:【Rust模塊配置規(guī)則和指導(dǎo)】

    Rust是一門靜態(tài)強(qiáng)類型語言,具有更安全的內(nèi)存管理、更好的運(yùn)行性能、原生支持多線程開發(fā)等優(yōu)勢。Rust官方也使用Cargo工具來專門為Rust代碼創(chuàng)建工程和構(gòu)建編譯。
    的頭像 發(fā)表于 05-10 11:32 ?1389次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b><b class='flag-5'>開發(fā)</b>板解析:【<b class='flag-5'>Rust</b>模塊配置規(guī)則和指導(dǎo)】

    【開源鴻蒙】下載OpenHarmony 4.1 Release源代碼

    本文介紹了如何下載開源鴻蒙OpenHarmony)操作系統(tǒng) 4.1 Release版本的源代碼,該方法同樣可以用于下載OpenHarmony最新開發(fā)版本(master分支)或者
    的頭像 發(fā)表于 04-27 23:16 ?1066次閱讀
    【開源<b class='flag-5'>鴻蒙</b>】下載<b class='flag-5'>OpenHarmony</b> 4.1 Release源代碼

    鴻蒙實(shí)戰(zhàn)開發(fā)學(xué)習(xí)【FaultLoggerd組件】

    Faultloggerd部件是OpenHarmony中C/C++運(yùn)行時崩潰臨時日志的生成及管理模塊。面向基于 Rust 開發(fā)的部件,F(xiàn)aultloggerd 提供了Rust Panic
    的頭像 發(fā)表于 03-17 20:39 ?574次閱讀
    <b class='flag-5'>鴻蒙</b>實(shí)戰(zhàn)<b class='flag-5'>開發(fā)</b>學(xué)習(xí)【FaultLoggerd組件】

    鴻蒙實(shí)戰(zhàn)開發(fā):【FaultLoggerd組件】講解

    Faultloggerd部件是OpenHarmony中C/C++運(yùn)行時崩潰臨時日志的生成及管理模塊。面向基于 Rust 開發(fā)的部件,F(xiàn)aultloggerd 提供了Rust Panic
    的頭像 發(fā)表于 03-12 16:22 ?1133次閱讀
    <b class='flag-5'>鴻蒙</b>實(shí)戰(zhàn)<b class='flag-5'>開發(fā)</b>:【FaultLoggerd組件】講解

    鴻蒙OpenHarmony 4.0藍(lán)牙代碼結(jié)構(gòu)簡析

    OpenHarmony 4.0藍(lán)牙代碼結(jié)構(gòu)簡析前言 OpenHarmony 4.0上藍(lán)牙倉和目錄結(jié)構(gòu)進(jìn)行一次較大整改,本文基于4.0以上版本
    的頭像 發(fā)表于 02-26 16:08 ?1703次閱讀
    【<b class='flag-5'>鴻蒙</b>】<b class='flag-5'>OpenHarmony</b> <b class='flag-5'>4.0</b>藍(lán)牙代碼結(jié)構(gòu)簡析