国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

OpenHarmony模塊化編譯

這篇具有很好參考價(jià)值的文章主要介紹了OpenHarmony模塊化編譯。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、環(huán)境配置

OpenHarmony版本:OpenHarmony 4.0 Release
編譯環(huán)境:WSL2 Ubuntu 18.04
平臺(tái)設(shè)備:RK3568

二、配置hb

OpenHarmony 代碼構(gòu)建有build.sh和hb兩種方式:

#方式一、build.sh
./build.sh --product-name rk3568 --ccache

#方式二、hb
hb set -p rk3568
hb build

下拉的4.0代碼無(wú)法直接使用hb命令

OpenHarmony_4.0_release$ hb --help
hb_error: Please call hb utilities inside source root directory

可參考搭建開(kāi)發(fā)環(huán)境-安裝編譯工具 進(jìn)行hb安裝和環(huán)境配置。

2.1、安裝hb

python3 -m pip install --user build/hb

2.2、配置環(huán)境變量

vim ~/.bashrc
#將以下命令拷貝到.bashrc文件的最后一行,保存并退出。
export PATH=~/.local/bin:$PATH

#更新環(huán)境變量
source ~/.bashrc

在源碼目錄執(zhí)行"hb help",界面打印以下信息即表示安裝成功。

OpenHarmony_4.0_release$ hb help
[OHOS INFO] ----------------------------------------------------------------------------------------------------
[OHOS INFO] usage: hb build [option]
[OHOS INFO]
[OHOS INFO] optional arguments:
[OHOS INFO]   -h, --help            show this help message and exit
[OHOS INFO]   --target-cpu {arm,arm64,x86_64,x64}
[OHOS INFO]                         Default:''. Help:Specifies the desired cpu architecture for the build, each may support
[OHOS INFO]                         different cpu architectures, run 'hb set --all' to list product all supported cpu
[OHOS INFO]                         architectures
[OHOS INFO]   --target-os {android,ios}
[OHOS INFO]                         Default:''. Help:Specifies the desired os type for the build, each may support different os
[OHOS INFO]                         type, run 'hb set --all' to list product all supported os type
[OHOS INFO]   -p PRODUCT_NAME, --product-name PRODUCT_NAME
[OHOS INFO]                         Default:''. Help:Build a specified product. You could use this option like this: 1.'hb build
[OHOS INFO]                         --product-name rk3568@hihope' 2.'hb build --product-name rk3568'
...

注:可使用以下命令卸載hb

$ python3 -m pip uninstall ohos-build

三、模塊編譯

為了編譯調(diào)試和開(kāi)發(fā)驗(yàn)證往往使用模塊化編譯替換全量編譯,節(jié)約編譯時(shí)間,提高開(kāi)發(fā)效率,OpenHarmony build.sh 和hb都支持模塊化編譯。
這里以關(guān)機(jī)彈框應(yīng)用為例。
1、通過(guò)hdc 查看system/app應(yīng)用包名或者IDE查看調(diào)出關(guān)機(jī)框log,可知關(guān)機(jī)彈框所在應(yīng)用包名為com.ohos.powerdialog

# ls -al /system/app
com.ohos.powerdialog

2、在源碼中搜索com.ohos.powerdialog包名定義出處,確定模塊對(duì)應(yīng)的源碼路徑。
可知系統(tǒng)關(guān)機(jī)彈框源碼位于:base/powermgr/power_manager/power_dialog
openharmony 4 full sdk,OpenHarmony,OpenHarmony
3、確定build-target,查看base/powermgr/power_manager/power_dialog/BUILD.gn
可知系統(tǒng)關(guān)機(jī)框模塊名power_dialog_hap

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

group("dialog_hap") {
  deps = [ ":power_dialog_hap" ]
}

ohos_hap("power_dialog_hap") {
  hap_profile = "entry/src/main/module.json"

  deps = [
    ":power_dialog_js_assets",
    ":power_dialog_resources",
  ]

  certificate_profile = "signature/openharmony_sx.p7b"
  hap_name = "power_dialog"

  subsystem_name = "applications"
  part_name = "prebuilt_hap"
  module_install_dir = "app/com.ohos.powerdialog"
}
...

4、模塊編譯power_dialog_hap

#使用build.sh模塊編譯power_dialog_hap
./build.sh --product-name rk3568 --build-target power_dialog_hap

#使用hb編譯power_dialog_hap
 hb build -p rk3568 -T power_dialog_hap

得到hap位于:out/rk3568/obj/base/powermgr/power_manager/power_dialog/power_dialog.hap
可發(fā)現(xiàn)out/rk3568/obj/后路徑與模塊源碼路徑對(duì)應(yīng)。
openharmony 4 full sdk,OpenHarmony,OpenHarmony

注意:模塊編譯需模塊目錄存在BUILD.gn。

四、常用模塊編譯

4.1 編譯Full SDK

rm -rf out
./build.sh --product-name ohos-sdk

Full SDK生成目錄:out/sdk/packages/ohos-sdk/

4.2 編譯kernel

#使用build.sh編譯指定產(chǎn)品kernel
./build.sh --product-name rk3568 --build-target kernel --gn-args linux_kernel_version="linux-5.10"

4.3 編譯常見(jiàn)原生應(yīng)用

4.3.1 編譯系統(tǒng)資源應(yīng)用

#使用build.sh編譯systemres_hap
./build.sh --product-name rk3568 --build-target systemres_hap

#使用hb編譯systemres_hap
 hb build -p rk3568 -T systemres_hap

得到hap位于:out/rk3568/obj/base/global/system_resources/systemres/SystemResources.hap

4.3.2 編譯性能測(cè)試應(yīng)用

#使用build.sh編譯SmartPerf
./build.sh --product-name rk3568 --build-target SmartPerf

#使用hb編譯SmartPerf
 hb build -p rk3568 -T SmartPerf

得到hap位于:out/rk3568/obj/developtools/profiler/host/smartperf/client/client_ui/SmartPerf.hap

4.3.3 編譯輸入法選擇框應(yīng)用

#使用build.sh編譯input_method_choose_hap
./build.sh --product-name rk3568 --build-target input_method_choose_hap

#使用hb編譯input_method_choose_hap
 hb build -p rk3568 -T input_method_choose_hap

得到hap位于:out/rk3568/obj/base/inputmethod/imf/services/dialog/input_method_choose_dialog.hap

4.3.4 編譯授權(quán)管理應(yīng)用

#使用build.sh編譯permission_manager
./build.sh --product-name rk3568 --build-target permission_manager

#使用hb編譯permission_manager
 hb build -p rk3568 -T permission_manager

得到hap位于:out/rk3568/obj/applications/standard/permission_manager/permissionmanager/permission_manager.hap

4.3.5 編譯關(guān)機(jī)彈框應(yīng)用

#使用build.sh模塊編譯power_dialog_hap
./build.sh --product-name rk3568 --build-target power_dialog_hap

#使用hb編譯power_dialog_hap
 hb build -p rk3568 -T power_dialog_hap

得到hap位于:out/rk3568/obj/base/powermgr/power_manager/power_dialog/power_dialog.hap文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-775865.html

到了這里,關(guān)于OpenHarmony模塊化編譯的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 前端進(jìn)階之——模塊化

    前端進(jìn)階之——模塊化

    ? ? ? ? 在做項(xiàng)目的時(shí)候越來(lái)越發(fā)現(xiàn)模塊化的重要性,做好模塊化開(kāi)發(fā)不僅給后期的維護(hù)帶來(lái)不少好處而且大大提升項(xiàng)目開(kāi)發(fā)效率,接下來(lái)整理一下模塊化相關(guān)知識(shí)吧。 封裝方法、提高代碼的復(fù)用性、可維護(hù)性和可讀性 隔離作用域,避免污染全局作用域 避免變量沖突 立即執(zhí)

    2024年02月10日
    瀏覽(93)
  • js 模塊化

    模塊化主要是用來(lái)抽離公共代碼,隔離作用域,避免變量沖突等。 模塊化的整個(gè)發(fā)展歷史如下: IIFE :使用自執(zhí)行函數(shù)來(lái)編寫模塊化,特點(diǎn):在一個(gè)單獨(dú)的函數(shù)作用域中執(zhí)行代碼,避免代碼沖突。 AMD :使用 require 來(lái)編寫模塊化,特點(diǎn):依賴必須提前聲明好。 CMD :使用 seaJS

    2024年02月14日
    瀏覽(19)
  • 模塊化規(guī)范

    模塊化規(guī)范

    常用模塊化有兩種規(guī)范,commonJS和ES6 我們常遇到的使用場(chǎng)景是,在commonJS的模塊里需要引入ES6規(guī)范的模塊。這時(shí)就需要把ES6模塊轉(zhuǎn)譯為commonJS規(guī)范的模塊,否則報(bào)錯(cuò) 轉(zhuǎn)義工具有: Babel:Babel 是一個(gè)流行的 JavaScript 編譯器,它可以將 ES6 模塊轉(zhuǎn)譯為 CommonJS 模塊。你可以使用 Bab

    2024年02月15日
    瀏覽(26)
  • 前端模塊化

    前端模塊化

    ? 隨著前端應(yīng)用的日益復(fù)雜,我們的項(xiàng)目代碼已經(jīng)逐漸膨脹到了不得不花大量時(shí)間去管理的程度了。而模塊化就是一種最主流的代碼組織方式,它通過(guò)把復(fù)雜的代碼按照功能的不同劃分為不同的模塊單獨(dú)維護(hù),從而提高開(kāi)發(fā)效率、降低維護(hù)成本。模塊化可以使你能夠更容易地

    2024年02月08日
    瀏覽(116)
  • Vuex模塊化管理

    Vuex模塊化管理

    如果你的項(xiàng)目是一個(gè)小型項(xiàng)目,就用不著使用模塊化; 但是,如果你參與的項(xiàng)目是一個(gè)中大型項(xiàng)目,那Vuex模塊化,必不可少,否則整個(gè)文件很臃腫,也很難管理。 通過(guò)模塊化管理:各自模塊下都有自己的state及方法,各自模塊管理自己的數(shù)據(jù),這樣不容易造成混亂。 第一步

    2024年02月15日
    瀏覽(22)
  • webpack(一)模塊化

    webpack(一)模塊化

    階段一:基于文件的劃分模塊方式 概念 :將每個(gè)功能和相關(guān)數(shù)據(jù)狀態(tài)分別放在單獨(dú)的文件里 約定每一個(gè)文件就是一個(gè)單獨(dú)的模塊,使用每個(gè)模塊,直接調(diào)用這個(gè)模塊的成員 缺點(diǎn) :所有的成員都可以在模塊外被訪問(wèn)和修改(所有的模塊都是直接在全局工作,沒(méi)有【私有空間

    2024年02月11日
    瀏覽(26)
  • js模塊化開(kāi)發(fā)

    js模塊化開(kāi)發(fā)

    ? 到底什么是模塊化、模塊化開(kāi)發(fā)呢? ? 事實(shí)上模塊化開(kāi)發(fā)最終的目的是將程序劃分成一個(gè)個(gè)小的結(jié)構(gòu); ? 這個(gè)結(jié)構(gòu)中編寫屬于自己的邏輯代碼,有自己的作用域,定義變量名詞時(shí)不會(huì)影響到其他的結(jié)構(gòu); ? 這個(gè)結(jié)構(gòu)可以將自己希望暴露的變量、函數(shù)、對(duì)象等導(dǎo)出給其結(jié)

    2024年02月13日
    瀏覽(28)
  • Rust的模塊化

    Rust的模塊化要從Rust的入口文件談起。 Rust的程序的入口文件有兩個(gè) 如果程序類型是可執(zhí)行應(yīng)用,入口文件是main.rs; 如果程序類型是庫(kù),入口文件是lib.rs; 入口文件中,必須聲明本地模塊,否則編譯器在編譯過(guò)程中,會(huì)報(bào)該模塊不存在的錯(cuò)誤。這個(gè)規(guī)則,在其它程序的編譯

    2024年02月09日
    瀏覽(26)
  • 模塊化

    模塊化

    能夠說(shuō)出模塊化的好處 能夠知道CommonJS規(guī)定了哪些內(nèi)容 能夠說(shuō)出Node.js中模塊的三大分類各自是什么 能夠使用npm管理包 能夠了解什么是規(guī)范的包結(jié)構(gòu) 能夠了解模塊的加載機(jī)制 模塊化的基本概念 Node.js中模塊的分類 npm與包 模塊的加載機(jī)制 1.1什么是模塊化 模塊化 是指解決一個(gè)

    2024年02月06日
    瀏覽(13)
  • 解構(gòu)模塊化區(qū)塊鏈

    在可擴(kuò)展性方面,模塊化區(qū)塊鏈?zhǔn)菂^(qū)塊鏈設(shè)計(jì)的最新范式。 模塊化的概念起源于Layer1區(qū)塊鏈Celestia,現(xiàn)在這個(gè)概念也逐漸被更多的人所關(guān)注,還有人甚至提出”模塊化區(qū)塊鏈將定義Web3創(chuàng)新的下一個(gè)十年“的口號(hào)。 但是,到底什么是模塊化區(qū)塊鏈,它到底能解決什么問(wèn)題,它

    2024年02月01日
    瀏覽(25)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包