【HarmonyOS Next】 鴻蒙應用useNormalizedOHMUrl詳解

【HarmonyOS Next】 鴻蒙應用useNormalizedOHMUrl詳解

一、useNormalizedOHMUrl是什么?

useNormalizedOHMUrl指的是是否使用標準化OHMUrl拼接。

在開發過程中,需要根據不同的環境或配置動態生成 URL。例如,在加載一些遠程模塊或者資源時,可能需要將基礎 URL 和具體的資源路徑進行拼接,并且要確保生成的 URL 格式符合要求,避免出現多余的斜杠、編碼問題等。

我們一般將useNormalizedOHMUrl 設置為true的時候。ohmurl使用的是新的拼接和解析方式。

標準化的OHMUrl統一了原有OHMUrl的格式。使用集成態HSP和字節碼HAR需使用標準化的OHMUrl格式。

{"app": {"products": [{"buildOption": {"strictMode": {"useNormalizedOHMUrl": true}}}]}
}

二、useNormalizedOHMUrl的使用場景

useNormalizedOHMUrl是為了解決HSP存在bundleName和簽名的一致性要求,而且在調試階段需要先安裝HSP包,導致多模塊集成開發存在很多集成的問題。

例如筆者開發了一個日志HSP,需要給其他公司使用,不可能別的公司應用包名和我的日志HSP包名一致吧?
但是前期HSP是要求bundleName和簽名的一致的。

官方為了解決該問題,提供了集成態HSP的方案。

集成態HSP是應用內HSP的一種中間編譯產物,目的就是解決使用方的bundleName和簽名之間的強耦合問題。

集成態HSP的模塊配置:build-profile.json5

{"apiType": "stageMode","buildOption": {"arkOptions": {"integratedHsp": true}}
}

這就是為什么,集成三方依賴,我們的項目需要添加useNormalizedOHMUrl為true的前因后果了。

并且需要補充的是,HAR字節碼包,也需要設置useNormalizedOHMUrl為ture。

關于字節碼HAR包,指的是其中包含的是編譯后的abc字節碼,相比包含源碼的HAR和包含js中間碼的HAR,可以有效提升應用模塊的編譯構建效率。

三、useNormalizedOHMUrl的注意事項

  1. useNormalizedOHMUrl 為true的時候ohmurl使用的是新的拼接和解析方式,不能和舊的ohmurl混用,會導致運行時無法識別。

  2. 集成態HSP需要在工程級的build-profile.json5文件中,將useNormalizedOHMUrl字段設置為true。

  3. 從DevEco Studio NEXT Beta1(5.0.3.800)版本開始,當工程級build-profile.json5中useNormalizedOHMUrl配置為true時,noExternalImportByPath缺省默認值為true;當useNormalizedOHMUrl配置為false時,noExternalImportByPath缺省默認值為false。【noExternalImportByPath指的是,是否嚴格檢查絕對路徑導入方式和相對路徑跨模塊導入方式。】

需要格外注意的是,鴻蒙中引用其他依賴模塊正確的方式,是通過index中export的導出的接口,來調用模塊函數或者類。如果使用的是相對路徑的方式導出,在useNormalizedOHMUrl設置為true后,會導致編譯報錯,需要整改。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/72043.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/72043.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/72043.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

wav格式的音頻壓縮,WAV 轉 MP3 VBR 體積縮減比為 13.5%、多個 MP3 格式音頻合并為一個、文件夾存在則刪除重建,不存在則直接建立

🥇 版權: 本文由【墨理學AI】原創首發、各位讀者大大、敬請查閱、感謝三連 🎉 聲明: 作為全網 AI 領域 干貨最多的博主之一,?? 不負光陰不負卿 ?? 文章目錄 問題一:wav格式的音頻壓縮為哪些格式,網絡傳輸給用戶播放…

MFC線程

創建線程 HANDLE m_hThread; m_hThread CreateThread(NULL, 0, save_snapshot, (LPVOID)this, 0, &iThreadId);開啟線程循環等待 DWORD WINAPI save_snapshot(LPVOID pVoid) {while (true){//持續循環等待事件到達。接收到事件信號后才進入if。if (::WaitForSingleObjec…

賦能農業數字化轉型 雛森科技助力“聚農拼”平臺建設

賦能農業數字化轉型,雛森科技助力“聚農拼”平臺建設 在數字化浪潮席卷各行業的今天,農業領域也在積極探索轉型升級之路。中農集團一直以“根植大地,服務三農”為核心,以“鄉村振興,農民增收”為目標,及時…

千峰React:Hooks(上)

什么是Hooks ref引用值 普通變量的改變一般是不好觸發函數組件的渲染的,如果想讓一般的數據也可以得到狀態的保存,可以使用ref import { useState ,useRef} from reactfunction App() {const [count, setCount] useState(0)let num useRef(0)const h…

Ubuntu20.04安裝Redis

1.切換到root用戶 如果沒有切換到root用戶的,切換到root用戶。 2.使用 apt install redis 安裝redis 遇到y/n直接y即可。 redis安裝好之后就自動啟動起來了,因此我們可以通過netstat -anp | grep redis命令來查看是否安裝成功。 6379是Redis的默認端…

鴻蒙-AVPlayer

compileVersion 5.0.2(14) 音頻播放 import media from ohos.multimedia.media; import common from ohos.app.ability.common; import { BusinessError } from ohos.base;Entry Component struct AudioPlayer {private avPlayer: media.AVPlayer | nu…

機器學習數學通關指南——泰勒公式

前言 本文隸屬于專欄《機器學習數學通關指南》,該專欄為筆者原創,引用請注明來源,不足和錯誤之處請在評論區幫忙指出,謝謝! 本專欄目錄結構和參考文獻請見《機器學習數學通關指南》 正文 一句話總結 泰勒公式是用多…

游戲引擎學習第124天

倉庫:https://gitee.com/mrxiao_com/2d_game_3 回顧/復習 今天是繼續完善和調試多線程的任務隊列。之前的幾天,我們已經介紹了多線程的一些基礎知識,包括如何創建工作隊列以及如何在線程中處理任務。今天,重點是解決那些我們之前沒有注意到…

在MacOS上打造本地部署的大模型知識庫(一)

一、在MacOS上安裝Ollama docker run -d -p 3000:8080 --add-hosthost.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main 最后停掉Docker的ollama,就能在webui中加載llama模…

(八)Java-Collection

一、Collection接口 1.特點 Collection實現子類可以存放多個元素,每個元素可以是Object; 有些Collection的實現類,可以存放重復的元素,有些不可以; 有些Collection的實現類,有些是有序的(Li…

大模型RAG(檢索增強)創新--SELF-RAG

檢索增強生成 (RAG) 提供了一種將 ChatGPT/GPT-4 等大型語言模型與自定義數據集成的途徑,但存在局限性。讓我們看看 RAG 最近的研究是如何解決一些問題。 大語言模型(LLM)將改變整個金融領域。其中一個場景是大語言模型可以學習大量文檔,并在很短的時間內…

《AI和人工智能和編程日報》

OpenAI:將深度研究擴展到 ChatGPT Plus、Team、Edu 和 Enterprise 用戶,每月 10 次查詢;Pro 用戶每月有 120 次查詢,ChatGPT 語音模式向免費用戶開放。DeepSeek:R1 大模型宣布降價,調用價格將至四分之一&am…

【音視頻】編解碼相關概念總結

NALU RTP PS流 三者總體關系 NALU在RTP中的應用:視頻流的RTP傳輸通常將NALU作為基本的單元進行傳輸。每個RTP包攜帶一個或多個NALU,這些NALU包含了視頻編碼數據。RTP協議通過其頭部信息(如時間戳、序列號等)幫助接收端重新排列和…

端口映射/內網穿透方式及問題解決:warning: remote port forwarding failed for listen port

文章目錄 需求:A機器是內網機器,B機器是公網服務器,想要從公網,訪問A機器的端口方式:端口映射,內網穿透,使用ssh打洞端口:遇到問題:命令執行成功,但是端口轉發…

11特殊函數

一、遞歸函數 遞歸概念:如果一個函數內部,包含了對自身的調用,則該函數稱為遞歸函數。要點: 只有能被表達為遞歸的問題,才能用遞歸函數解決。遞歸函數必須有一個可直接退出的條件,否則會進入無限遞歸。遞歸…

如何使用useContext進行全局狀態管理?

在 React 中,使用 useContext 進行全局狀態管理是一種有效的方法,尤其在需要在多個組件之間共享狀態時。useContext 允許你在組件樹中傳遞數據,而無需通過每個組件的 props 逐層傳遞。以下是關于如何使用 useContext 進行全局狀態管理的詳細指…

鴻蒙 ArkUI 實現敲木魚小游戲

敲木魚是一款具有禪意的趣味小游戲,本文將通過鴻蒙 ArkUI 框架的實現代碼,逐步解析其核心技術點,包括動畫驅動、狀態管理、音效震動反饋等。 一、架構設計與工程搭建 1.1 項目結構解析 完整項目包含以下核心模塊: ├── entry…

神經性肺纖維的預防方法

神經性肺纖維的預防方法 一、引言 神經性肺纖維化是一種慢性進行性肺部疾病,其病因復雜,包括遺傳、環境等多種因素。該病不僅影響患者的呼吸功能,還可能對神經系統造成損害。因此,預防神經性肺纖維化顯得尤為重要。本文將詳細介…

azure sql 網絡安全組 網絡安全sql注入

🍅 點擊文末小卡片 ,免費獲取網絡安全全套資料,資料在手,漲薪更快 SQL注入 1、原理 針對注入的攻擊行為可描述為通過用戶可控參數中注入SQL語法,破壞原有SQL結構,達到編寫程序意料之外結果的攻擊行為。 其…

【Day50 LeetCode】圖論問題 Ⅷ

一、圖論問題 Ⅷ 1、dijkstra算法 堆優化 采用堆來優化&#xff0c;適合節點多的稀疏圖。代碼如下&#xff1a; # include<iostream> # include<vector> # include<list> # include<queue> # include<climits>using namespace std;class myco…