色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【技術視界】DevEco Hvigor高效編譯,構建過程新秘籍

HarmonyOS開發者 ? 來源:未知 ? 2023-09-26 12:10 ? 次閱讀
# 技術視界# 【技術視界】欄目為開發者提供華為研發專家對于HarmonyOS關鍵技術的專業解讀,從不同角度、不同方面幫助開發者更好更快地掌握HarmonyOS相關開發知識。本期文章為大家帶來的是華為終端BG編譯構建技術專家的分享,希望能為您的開發之路帶來啟發~ 作者:Lewei,華為終端BG編譯構建技術專家

DevEcoHvigor是使用TypeScript語言開發的全新輕量化的任務調度工具,針對HarmonyOS應用提供了一系列編譯構建任務,支持將HarmonyOS應用編譯構建出對應的產物包。作為一款HarmonyOS應用編譯構建任務流工具,DevEco Hvigor具備許多可以提升構建效率的特性,支持多產物差異化構建,也支持HarmonyOS應用可分可合等特性。可以稱得上是"麻雀雖小五臟俱全"。

任務并行

DevEco Hvigor具備任務并行執行的能力。對于C++編譯、ArkTS任務等耗時而沒有依賴關系的任務,DevEcoHvigor可以使用不同的工作線程并行執行,提高構建效率。在多模塊的中大型工程中,將帶來可觀的耗時節省。

在DevEco Studio中開啟DevEco Hvigor的并行編譯構建能力,需要在DevEcoStudio中打開Settings - Build, Execution,Development - Build Tools - Hvigor選項,并勾選"Executetasks in parallel mode"。

wKgaomUroLKAAAToAAJmi5DP4MQ835.png

任務增量

HarmonyOS應用的編譯構建流程是由任務組成的。DevEco Hvigor具備任務增量執行的能力,通過判斷任務的輸入與輸出,對于輸入與輸出沒有變化的任務,可以復用上次構建產物,從而跳過對應的任務,節省構建時間。

在DevEco Studio中開啟DevEco Hvigor的任務增量能力,需要在DevEco Studio中打開Settings - Build,Execution, Development - Build Tools - Hvigor選項,并勾選"Re-execute the task in incremental mode"。

wKgaomUroLKAZOopAAJnJ_ZuaEc105.png

常駐進程

DevEco Hvigor提供了常駐進程的功能機制。通過將進程常駐在內存中,一方面避免了Node進程重復啟動、減少了加載js文件的耗時,另一方面可以復用構建過程中的增量緩存、減少增量緩存信息的讀取與落盤操作。

另外,啟用DevEco Hvigor的常駐進程功能,還可以支持預覽器的急速預覽功能和調試的Hot reload功能。DevEco Hvigor通過對代碼文件的監聽,可以快速編譯代碼片段,急速更新預覽畫面和在設備上實時調試代碼修改。

在DevEco Studio中開啟DevEco Hvigor的常駐進程構建能力,需要在DevEcoStudio中打開Settings - Build, Execution,Development - Build Tools - Hvigor選項,并勾選"Enablethe Daemon for tasks"。

wKgaomUroLOARh4yAAJm20YrJAM748.png

在命令行中,可以通過使用hvigorw命令行工具來查看常駐進程狀態或關閉常駐進程。

  • 在工程目錄下執行./hvigorw --status-daemon,可以查看所有常駐進程的狀態。

  • 在工程目錄下執行./hvigorw --stop-daemon,可以關閉當前工程對應的常駐進程。

  • 在工程目錄下執行./hvigorw --stop-daemon-all,可以關閉當前運行的所有DevEco Hvigor常駐進程。

構建過程可視化

DevEco Hvigor會記錄每次構建任務的日志信息,并通過可視化的圖表界面進行展示。記錄的信息包括任務執行的耗時與線程、ArkTS編譯中的各環節的細分耗時情況等。開發者可以藉此分析構建過程中的耗時情況、進而改善構建效率。

在DevEco Studio中開啟DevEco Hvigor的常駐進程構建能力,需要在DevEcoStudio中打開Settings - Build, Execution,Development - Build Tools - Hvigor選項,并勾選"Enablethe Daemon for tasks"。

wKgaomUroLOAMOMKAAJob4p0yIA793.png

后,可以點擊DevEco Studio下方的"Build Analyzer"標簽頁,查看構建過程中的日志信息和耗時情況。

wKgaomUroLSAGOcPAAGMpv-VDh8943.png

差異化構建打包

常情況下,應用廠商會根據不同的部署環境、不同的目標人群以及不同的運行環境等,將同一個應用定制為不同的版本。DevEcoHvigor支持差異化構建打包,在構建配置文件中將差異化部分顯示配置出來,即可在編譯構建過程中實現一個應用構建出不同的目標產物版本,從而實現源代碼、資源文件等的高效復用。

通過配置Target,每個HAP包都可以定制功能和資源。在每個HAP模塊的build-profile.json5中,可以配置該模塊支持的Targets:

{
  "apiType": 'stageMode',
  "buildOption": {  
  },
  "targets": [  //定義不同的target
    {
      "name": "default",  //默認target名稱default
      "runtimeOS": "HarmonyOS",
    },
    {
      "name": "free",  //免費版target名稱
      "runtimeOS": "HarmonyOS"
    },
    {
      "name": "pay",  //付費版target名稱
      "runtimeOS": "HarmonyOS",
    }
  ]
}

(左右滑動查看更多)

在每個target中,可以定制其頁面源碼集、資源目錄、支持的設備類型等,比如當你只希望某個hap對應平板設備、而某個hap包對應手機配置時,可以如下配置:
{
  "apiType": 'stageMode',
  "buildOption": {
  },
  "targets": [
    {
      "name": "default",
      "runtimeOS": "HarmonyOS",
    },
    {
      "name": "phone",
      "runtimeOS": "HarmonyOS",
      "config": {
        "deviceType": [  //定義free支持的設備類型為phone
          "phone"
        ]
      }
    },
    {
      "name": "tablet",
      "runtimeOS": "HarmonyOS",
      "config": {
        "deviceType": [  //定義pay支持的設備類型為phone
          "tablet"
        ]
      }
    }
  ]
}
(左右滑動查看更多通過配置將哪些HAP模塊的Target與Product綁定,讓定制化的HAP可以組合成APP包、發布上架應用市場。在工程級的build-profile.json5中,先定義Product,并可以定制使用不同的bundleName和簽名材料:
"app": {
    "signingConfigs": [],
    "compileSdkVersion": 9,
    "compatibleSdkVersion": 9,
    "products": [
      {
        "name": "default",
        "bundleName": "com.example00.com",  //定義default的bundleName信息
        "signingConfig": "default" //定義default的簽名文件信息
      },
      {
        "name": "productA",
        "bundleName": "com.example01.com",  //定義productA的bundleName信息
        "signingConfig": "productA" //定義productA的簽名文件信息
      },
      {
        "name": "productB",
        "bundleName": "com.example02.com",  //定義productB的bundleName信息
        "signingConfig": "productB" //定義productB的簽名文件信息
      }
    ]
}
(左右滑動查看更多再定義需要將哪些HAP模塊的Target與Product綁定,就可以在上架應用商店時提供不同的APP包。
{
  "app": {
    "signingConfigs": [],
    "compileSdkVersion": 9,
    "compatibleSdkVersion": 9,
    "products": [
      {
        "name": "default",
        "bundleName": "com.example00.com",
        "signingConfig": "default"
      },
      {
        "name": "productA",
        "bundleName": "com.example01.com",
        "signingConfig": "productA"
      },
      {
        "name": "productB",
        "bundleName": "com.example02.com",
        "signingConfig": "productB"
      }
    ]
  },
  "modules": [
    {
      "name": "entry",
      "srcPath": "./entry",
      "targets": [
        {
          "name": "default",  //將default target分別打包到default、productA和productB APP中
          "applyToProducts": [
            "default",
            "productA",
            "productB"
          ]
        },
        {
          "name": "free",  //將free target打包到productA APP中
          "applyToProducts": [
            "productA"
          ]
        },
        {
          "name": "pay",  //將pay target打包到productB APP中
          "applyToProducts": [
            "productB"
          ]
        }
      ]
    }
  ]
}
(左右滑動查看更多最后,在DevEco Studio中,可以使用可視化界面來選擇運行和調試指定模塊和Target。從DevEco Studio界面的右上角打開面板,執行需要調試或運行的Target,DevEco Hvigor就會執行指定模塊、指定Target的編譯構建,并在預覽和調試中都使用該配置。

wKgaomUroLSAKb6XAAJ5D1FyAoU784.png

未來特性與總結

目前,DevEcoHvigor作為全新開發的編譯構建工具,雖然已經有了不少可以提升編譯效率的地方,但仍有許多新的特性、功能和性能優化還在路上。比如,DevEcoHvigor即將開放的自定義構建任務插件能力和編譯流程插樁接口、在運行時獲取構建配置的BuildProfile機制等。我們會繼續努力,力求將更好的編譯效率、更便捷的構建體驗,帶給每一位HarmonyOS應用的開發者。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • HarmonyOS
    +關注

    關注

    79

    文章

    1973

    瀏覽量

    30143

原文標題:【技術視界】DevEco Hvigor高效編譯,構建過程新秘籍

文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    鴻蒙Flutter實戰:02-Windows環境搭建踩坑指南

    ,鴻蒙開發需要配置ohpm, hvigor及node C:\\\\Program Files\\\\Huawei\\\\DevEco Studio\\\\tools\\\\ohpm\\\\bin C
    發表于 10-22 15:05

    鴻蒙Flutter實戰:01-搭建開發環境

    \\\\Huawei\\\\DevEco Studio\\\\tools\\\\hvigor\\\\bin C:\\\\Program Files\\\\Huawei\\\\DevEco
    發表于 10-21 19:35

    RT-Thread Studio構建和重新構建的不同,一般我們編譯工程時用哪個?

    想請教在RT-Thread Studio中,構建和重新構建的不同,一般我們編譯工程時用哪個,謝謝!
    發表于 07-25 07:38

    AI編譯技術剖析

    隨著人工智能技術的飛速發展,AI編譯器作為一種新興的編譯技術逐漸進入人們的視野。AI編譯器不僅具備傳統
    的頭像 發表于 07-17 18:28 ?1616次閱讀

    鴻蒙OpenHarmony開發:【編譯構建指導】

    OpenHarmony編譯子系統是以GN和Ninja構建為基座,對構建和配置粒度進行部件化抽象、對內建模塊進行功能增強、對業務模塊進行功能擴展的系統,該系統提供以下基本功能
    的頭像 發表于 05-13 09:31 ?1759次閱讀
    鴻蒙OpenHarmony開發:【<b class='flag-5'>編譯</b><b class='flag-5'>構建</b>指導】

    鴻蒙OpenHarmony【標準系統編譯】 (基于RK3568開發板)

    DevEco Device Tool支持Rockchip RK3568開發板的源碼一鍵編譯功能,提供編譯工具鏈和編譯環境依賴的檢測及一鍵安裝,簡化復雜
    的頭像 發表于 04-24 20:55 ?1266次閱讀
    鴻蒙OpenHarmony【標準系統<b class='flag-5'>編譯</b>】 (基于RK3568開發板)

    鴻蒙OpenHarmony【小型系統編譯】 (基于Hi3516開發板)

    DevEco Device Tool支持Hi3516DV300開發板的源碼一鍵編譯功能,提供編譯工具鏈和編譯環境依賴的檢測及一鍵安裝,簡化復雜編譯
    的頭像 發表于 04-23 15:53 ?513次閱讀
    鴻蒙OpenHarmony【小型系統<b class='flag-5'>編譯</b>】 (基于Hi3516開發板)

    鴻蒙OpenHarmony【輕量系統編譯】 (基于Hi3861開發板)

    DevEco Device Tool支持Hi3861V100開發板的源碼一鍵編譯功能,提供編譯工具鏈和編譯環境依賴的檢測及一鍵安裝,簡化復雜編譯
    的頭像 發表于 04-22 15:19 ?562次閱讀
    鴻蒙OpenHarmony【輕量系統<b class='flag-5'>編譯</b>】 (基于Hi3861開發板)

    交換芯片的構建過程

    交換芯片的構建過程是一個復雜而精細的技術活動,它涉及多個模塊的設計和集成。這一過程不僅要求工程師們對芯片的結構和功能有深入的理解,還需要他們具備高超的
    的頭像 發表于 03-22 16:21 ?827次閱讀

    鴻蒙開發【編譯構建】講解

    編譯構建是將應用/服務的源代碼、資源、第三方庫等,通過編譯工具轉換為可直接在硬件設備上運行的二進制機器碼,然后再將二進制機器碼封裝為HAP/APP軟件包,并為HAP/APP包進行簽名的過程
    發表于 02-27 17:41

    鴻蒙DevEco Service開發準備與使用

    DevEco低代碼是一個基于Serverless和ArkUI的端云一體化低代碼開發平臺,可通過拖拽式開發,可視化配置構建元服務。打通HarmonyOS云側與端側能力,輕松實現HMS Core和AGC
    發表于 02-23 15:40

    OpenHarmony 移植:build lite 編譯構建過程

    這些疑惑,會對 build lite 編譯構建過程有個更深入的理解。 1、產品解決方案代碼是如何被調用編譯的 在文件 buildliteBUILD.gn 配置文件中的
    的頭像 發表于 02-19 16:19 ?941次閱讀

    DevEco Studio 4.1帶來多種調試能力,助力鴻蒙原生應用開發高效調試

    ,HUAWEI DevEco Studio不斷挖掘、汲取開發者的需求和建議,經過持續打磨和系列升級實現新突破,將全力支持鴻蒙原生應用開發。 為助力高效開發,快速定位問題,DevEco Studio 4.1帶來多種
    的頭像 發表于 02-04 15:35 ?737次閱讀

    鴻蒙南向開發—OpenHarmony技術編譯構建框架

    概述 OpenHarmony編譯子系統是以GN和Ninja構建為基座,對構建和配置粒度進行部件化抽象、對內建模塊進行功能增強、對業務模塊進行功能擴展的系統,該系統提供以下基本功能: 以部件為最小
    發表于 01-04 16:47

    如何構建linux開發環境和編譯軟件工程、應用程序

    前文介紹了如何使用官方提供的鏡像文件啟動開發板,本文將說明如何構建linux開發環境和編譯軟件工程、應用程序。
    的頭像 發表于 01-03 12:31 ?2041次閱讀
    如何<b class='flag-5'>構建</b>linux開發環境和<b class='flag-5'>編譯</b>軟件工程、應用程序
    主站蜘蛛池模板: 国产传媒麻豆剧精品AV| 中文字幕s级优女区| 精品无人区一区二区三区| 亚洲一区精品伊人久久伊人| 久久久久青草大香线综合精品| 97超碰在线视频 免费| 强奸日本美女小游戏| 国产成人在线视频播放| 亚洲不卡高清免v无码屋| 久久成人免费观看草草影院| 69久久国产精品热88人妻| 欧洲电影巜肉欲丛林| 国产精品久久久久久日本| 亚洲伊人久久网| 免费看黄色小说| 高潮久久久久久久久不卡| 亚洲电影不卡| 乱xxxjapanese黑人| 成人欧美尽粗二区三区AV| 鸭子玩富婆流白浆视频| 久久伊人中文字幕有码| 扒开她的黑森林让我添动态图| 忘忧草在线影院WWW日本动漫| 久久se精品一区二区国产| A片毛片免费视频在线看| 乌克兰内射私拍| 久久免费国产视频| gogogo视频在线观看| 午夜性色一区二区三区不卡视频| 精油按摩日本| vidosgratis tv少女| 亚洲电影不卡| 男人插曲女人下生免费大全| 国产福利视频在线观看福利| 一品探花论坛| 日产亚洲一区二区三区| 教室眠催白丝美女校花| yellow日本高清在线| 亚洲精品无夜久久久久久久久| 嫩草AV久久伊人妇女| 国产色综合久久无码有码|