麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > 千鋒教育鴻蒙(HarmonyOS)開發教程:HAR模塊詳解

千鋒教育鴻蒙(HarmonyOS)開發教程:HAR模塊詳解

來源:千鋒教育
發布人:千鋒
時間: 2023-11-18 14:47:55 1700290075

HAR(Harmony Archive)是靜態共享包,可以包含代碼、C++庫、資源和配置文件。通過HAR可以實現多個模塊或多個工程共享ArkUI組件、資源等相關代碼。HAR不同于HAP,不能獨立安裝運行在設備上,只能作為應用模塊的依賴項被引用。

創建HAR模塊

通過DevEco Studio創建一個HAR模塊,詳見創建庫模塊。HAR模塊默認不開啟混淆能力,開啟混淆能力,需要把HAR模塊的build-profile.json5文件中的artifactType字段設置為obfuscation,配置如下所示:

{
"apiType": "stageMode",
"buildOption": {
"artifactType": "obfuscation"
}
}

 

artifactType字段有以下兩種取值,默認缺省為original。

original:不混淆。

obfuscation:混淆,目前僅支持uglify混淆。

需要對代碼資產進行保護時,建議開啟混淆能力,混淆能力開啟后,DevEco Studio在構建HAR時,會對代碼進行編譯、混淆及壓縮處理,保護代碼資產。

注意:artifactType字段設置為obfuscation時,apiType字段必須設置為stageMode,因為Stage模型才支持混淆。

HAR開發注意事項

HAR不支持在配置文件中聲明abilities、extensionAbilities組件。

HAR不支持在配置文件中聲明pages頁面。

HAR不支持在build-profile.json5文件的buildOption中配置worker。

FA模型與Stage模型的HAR不支持相互引用。

Stage模型的HAR,不能引用AppScope內的內容。在編譯構建時APPScope中的內容不會打包到HAR中,導致HAR資源引用失敗。

導出HAR的ArkUI組件、接口、資源

index.ets文件是HAR導出聲明文件的入口,HAR需要導出的接口,統一在index.ets文件中導出。index.ets文件是DevEco Studio默認自動生成的,用戶也可以自定義,在模塊的oh-package.json5文件中的main字段配置入口聲明文件,配置如下所示:

{
"main": "index.ets"
}

 導出ArkUI組件

ArkUI組件的導出方式與ts的導出方式一致,通過export導出ArkUI組件,示例如下:

// library/src/main/ets/components/MainPage/MainPage.ets
@Component
export struct MainPage {
@State message: string = 'Hello World'
build() {
Row() {
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
}
.width('100%')
}
.height('100%')
}
}

 HAR對外暴露的接口,在index.ets導出文件中聲明如下所示:

// library/index.ets
export { MainPage } from './src/main/ets/components/MainPage/MainPage'

 

導出ts類和方法

通過export導出ts類和方法,支持導出多個ts類和方法,示例如下所示:

// library/src/main/ts/test.ets
export class Log {
static info(msg) {
console.info(msg);
}
}

export function func() {
return "har func";
}

export function func2() {
return "har func2";
}

 HAR對外暴露的接口,在index.ets導出文件中聲明如下所示:

// library/index.ets
export { Log } from './src/main/ts/test'
export { func } from './src/main/ts/test'
export { func2 } from './src/main/ts/test'

 

資源

HAR模塊編譯打包時會把資源打包到HAR中。在編譯構建HAP時,DevEco Studio會從HAP模塊及依賴的模塊中收集資源文件,如果不同模塊下的資源文件出現重名沖突時,DevEco Studio會按照以下優先級進行覆蓋(優先級由高到低):

AppScope(僅API9的Stage模型支持)。

HAP包自身模塊。

依賴的HAR模塊,如果依賴的多個HAR之間有資源沖突,會按照依賴順序進行覆蓋(依賴順序在前的優先級較高)。

引用HAR的ArkUI組件、接口、資源

引用HAR前,需要先配置對HAR的依賴,配置方式可參考引用HAR文件和資源。

引用HAR的ArkUI組件

HAR的依賴配置成功后,可以引用HAR的ArkUI組件。ArkUI組件的導入方式與ts的導入方式一致,通過import引入HAR導出的ArkUI組件,示例如下所示:

// entry/src/main/ets/pages/index.ets
import { MainPage } from "@ohos/library"

@Entry
@Component
struct Index {
@State message: string = 'Hello World'
build() {
Row() {
// 引用HAR的ArkUI組件
MainPage()
Column() {
Text(this.message)
.fontSize(50)
.fontWeight(FontWeight.Bold)
}
.width('100%')
}
.height('100%')
}
}

 

引用HAR的類和方法

通過import引用HAR導出的ts類和方法,示例如下所示:

// entry/src/main/ets/pages/index.ets
import { Log } from "@ohos/library"
import { func } from "@ohos/library"

@Entry
@Component
struct Index {
build() {
Row() {
Column() {
Button('Button')
.onClick(()=>{
// 引用HAR的類和方法
Log.info("har msg");
func();
})
}
.width('100%')
}
.height('100%')
}
}

 

引用HAR的資源

通過$r引用HAR中的資源,例如在HAR模塊的src/main/resources里添加字符串資源(在string.json中定義,name:hello_har)和圖片資源(icon_har.png),然后在Entry模塊中引用該字符串和圖片資源的示例如下所示:

// entry/src/main/ets/pages/index.ets
@Entry
@Component
struct Index {
build() {
Row() {
Column() {
// 引用HAR的字符串資源
Text($r("app.string.hello_har"))
.fontSize(50)
.fontWeight(FontWeight.Bold)
// 引用HAR的圖片資源
Image($r("app.media.icon_har"))
}
.width('100%')
}
.height('100%')
}
}

 微信截圖_20231118134638

聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT
主站蜘蛛池模板: 羞羞漫画小舞被黄漫免费| 美国式禁忌免费| 美女裸体a级毛片| 黑人系列合集h| 精品久久久久久久中文字幕| 午夜国产在线视频| 西西人体444rt高清大胆| 四虎影视精品永久免费| 国产成人三级经典中文| 永久毛片| 美女毛片在线观看| 大胸年轻的搜子4理论| 免费三级黄| 美女让男人桶出水的网站| 又黄又爽又猛的视频免费| 日本乱码电影| 美女扒开胸露出奶乳免费视频 | 国产福利萌白酱喷水视频铁牛| 日本午夜免费福利视频| 日韩理论电影在线| 夜来香高清在线观看| 娇妻之欲海泛舟白丽交换 | 国产日韩欧美亚洲| av成人在线电影| 久久婷婷国产综合精品| 免费观看女人与狥交视频在线| 欧美一级特黄aa大片在线观看免费| 日漫艳母| 一级做a爱片久久毛片| 免费a级毛片18以上观看精品 | 免费观看我爱你电影| 啊灬啊别停灬用力啊呻吟| 国产在线播放免费| 十七岁日本片| 处女影院| 国内a级毛片免费···| 国产激情一区二区三区| 国产对白受不了了中文对白| 天天干天天干天天干| 87福利电影| 美女脱下裤子让男人捅|