OpenHarmony 簡(jiǎn)介
ArkUI 開(kāi)發(fā)框架
OpenHarmony 提供了一套UI開(kāi)發(fā)框架,即方舟開(kāi)發(fā)框架(ArkUI 框架)。
兩種開(kāi)發(fā)范式
支持兩種開(kāi)發(fā)范式阱表,分別是基于ArkTS的聲明式開(kāi)發(fā)范式(簡(jiǎn)稱“聲明式開(kāi)發(fā)范式”)和兼容JS的類Web開(kāi)發(fā)范式(簡(jiǎn)稱“類Web開(kāi)發(fā)范式”)腐晾。
開(kāi)發(fā)范式名稱 | 語(yǔ)言生態(tài) | UI更新方式 | 適用場(chǎng)景 | 適用人群 |
---|---|---|---|---|
聲明式開(kāi)發(fā)范式 | ArkTS語(yǔ)言 | 數(shù)據(jù)驅(qū)動(dòng)更新 | 復(fù)雜度較大鸭蛙、團(tuán)隊(duì)合作度較高的程序 | 移動(dòng)系統(tǒng)應(yīng)用開(kāi)發(fā)人員较屿、系統(tǒng)應(yīng)用開(kāi)發(fā)人員 |
類Web開(kāi)發(fā)范式 | JS語(yǔ)言 | 數(shù)據(jù)驅(qū)動(dòng)更新 | 界面較為簡(jiǎn)單的程序應(yīng)用和卡片 | Web前端開(kāi)發(fā)人員 |
兩種應(yīng)用模型
OpenHarmony 先后提供了兩種應(yīng)用模型:
- Stage模型: OpenHarmony API 9 開(kāi)始新增的模型材蹬,是目前主推且會(huì)長(zhǎng)期演進(jìn)的模型。
- FA(Feature Ability)模型: OpenHarmony API 7 開(kāi)始支持的模型吝镣,已經(jīng)不再主推。
寫(xiě)一個(gè) Hello World 并在華為手機(jī)上跑起來(lái)
安裝 DevEco Studio
安裝最新版 DevEco Studio
構(gòu)建第一個(gè)ArkTS應(yīng)用(Stage模型)
ArkTS工程目錄結(jié)構(gòu)(Stage模型)
AppScope > app.json5:應(yīng)用的全局配置信息昆庇。
-
entry:OpenHarmony工程模塊末贾,編譯構(gòu)建生成一個(gè)HAP包。
- src > main > ets:用于存放ArkTS源碼整吆。
- src > main > ets > entryability:應(yīng)用/服務(wù)的入口拱撵。
- src > main > ets > pages:應(yīng)用/服務(wù)包含的頁(yè)面辉川。
- src > main > resources:用于存放應(yīng)用/服務(wù)所用到的資源文件,如圖形拴测、多媒體乓旗、字符串、布局文件等集索。關(guān)于資源文件屿愚,詳見(jiàn)資源文件的分類。
- src > main > module.json5:模塊配置文件务荆。主要包含HAP包的配置信息妆距、應(yīng)用/服務(wù)在具體設(shè)備上的配置信息以及應(yīng)用/服務(wù)的全局配置信息。具體的配置文件說(shuō)明函匕,詳見(jiàn)module.json5配置文件娱据。
- build-profile.json5:當(dāng)前的模塊信息 、編譯信息配置項(xiàng)盅惜,包括buildOption中剩、targets配置等。
- hvigorfile.ts:模塊級(jí)編譯構(gòu)建任務(wù)腳本抒寂,開(kāi)發(fā)者可以自定義相關(guān)任務(wù)和代碼實(shí)現(xiàn)结啼。
- obfuscation-rules.txt:混淆規(guī)則文件∨钔疲混淆開(kāi)啟后妆棒,在使用Release模式進(jìn)行編譯時(shí),會(huì)對(duì)代碼進(jìn)行編譯沸伏、混淆及壓縮處理糕珊,保護(hù)代碼資產(chǎn)。
oh_modules:用于存放三方庫(kù)依賴信息毅糟。
build-profile.json5:應(yīng)用級(jí)配置信息红选,包括簽名signingConfigs、產(chǎn)品配置products等姆另。
hvigorfile.ts:應(yīng)用級(jí)編譯構(gòu)建任務(wù)腳本喇肋。
值得一提,DevEco IDE 依賴 Node.js 和 pnpm迹辐,我創(chuàng)建項(xiàng)目使用的版本是 node-16.20.1蝶防,pnpm 用于安裝 npm 依賴。
構(gòu)建頁(yè)面
右鍵點(diǎn)擊“pages”文件夾明吩,選擇“New > ArkTS File”间学。打開(kāi)“entry > src > main > resources > base > profile”,在main_pages.json文件中的“src”下配置頁(yè)面路由“pages/Xxx”。
也可以在右鍵點(diǎn)擊“pages”文件夾時(shí)低葫,選擇“New > Page”详羡,則無(wú)需手動(dòng)配置相關(guān)頁(yè)面路由。
實(shí)現(xiàn)頁(yè)面間的跳轉(zhuǎn)
頁(yè)面間的導(dǎo)航可以通過(guò)頁(yè)面路由router來(lái)實(shí)現(xiàn)嘿悬。使用頁(yè)面路由請(qǐng)導(dǎo)入router模塊实柠。如果需要實(shí)現(xiàn)更好的轉(zhuǎn)場(chǎng)動(dòng)效等,推薦使用 Navigation 善涨。
使用真機(jī)運(yùn)行應(yīng)用
OpenHarmony 應(yīng)用可以打包成 hap 安裝包窒盐,但打包了也沒(méi)用,因?yàn)?hap 不支持側(cè)載躯概,在 HarmonyOS 手機(jī)上也無(wú)法直接安裝 hap 包登钥,除非上了應(yīng)用市場(chǎng)。OpenHarmony 設(shè)備(特殊開(kāi)發(fā)板)則可以直接安裝娶靡。
開(kāi)發(fā)者可以通過(guò) IDE 安裝到手機(jī)上牧牢,首先要生成簽名。
點(diǎn)擊 File > Project Structure… > Project > SigningConfigs 界面勾選 “Automatically generate signature” 和 “Support HarmonyOS”姿锭,并登錄華為賬號(hào)塔鳍,等待自動(dòng)簽名完成即可。
接下來(lái)呻此,HarmonyOS 手機(jī)開(kāi)啟開(kāi)發(fā)者模式轮纫,連接電腦,選擇文件傳輸模式焚鲜,并打開(kāi) USB 調(diào)試掌唾,IDE 上就能看到設(shè)備了(我的是老古董 HUAWEI Mate 30 Pro),點(diǎn)擊運(yùn)行忿磅,手機(jī)上就能看到頁(yè)面了糯彬。
手機(jī)上也多了一個(gè)應(yīng)用圖標(biāo)
大功告成,把 HarmonyOS 原生應(yīng)用裝到了手機(jī)上葱她。
過(guò)程中還是遇到了一些坑撩扒,記錄一下:
Failure[INSTALL_PARSE_FAILED_USESDK_ERROR]
這是因?yàn)?DevEco Studio 使用的 SDK 版本與手機(jī) HarmonyOS 的 SDK 版本不匹配,我的手機(jī) HarmonyOS 4 對(duì)應(yīng) API 9吨些,但創(chuàng)建項(xiàng)目我選了 API 10搓谆,改為用 API 9 創(chuàng)建項(xiàng)目就沒(méi)問(wèn)題了,目前還沒(méi)有真機(jī)(華為手機(jī))支持 API 10豪墅,OpenHarmony 開(kāi)發(fā)板才可以泉手。
Failure[MSG_ERR_INSTALL_FAILED_VERIFY_APP_PKCS7_FAIL]
簽名時(shí)需要勾選 “Support HarmonyOS”,并登錄華為賬號(hào)偶器。