OpenHarmony 應(yīng)用(HarmonyOS 原生應(yīng)用)- 寫(xiě)一個(gè) Hello World 并在華為手機(jī)上跑起來(lái)

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)偶器。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末螃诅,一起剝皮案震驚了整個(gè)濱河市啡氢,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌术裸,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件亭枷,死亡現(xiàn)場(chǎng)離奇詭異袭艺,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)叨粘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)猾编,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人升敲,你說(shuō)我怎么就攤上這事答倡。” “怎么了驴党?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵瘪撇,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我港庄,道長(zhǎng)倔既,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任鹏氧,我火速辦了婚禮渤涌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘把还。我一直安慰自己实蓬,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布吊履。 她就那樣靜靜地躺著安皱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪率翅。 梳的紋絲不亂的頭發(fā)上练俐,一...
    開(kāi)封第一講書(shū)人閱讀 52,475評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音冕臭,去河邊找鬼腺晾。 笑死,一個(gè)胖子當(dāng)著我的面吹牛辜贵,可吹牛的內(nèi)容都是我干的悯蝉。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼托慨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼鼻由!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤蕉世,失蹤者是張志新(化名)和其女友劉穎蔼紧,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體狠轻,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡奸例,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了向楼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片查吊。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖湖蜕,靈堂內(nèi)的尸體忽然破棺而出逻卖,到底是詐尸還是另有隱情,我是刑警寧澤昭抒,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布评也,位于F島的核電站,受9級(jí)特大地震影響戈鲁,放射性物質(zhì)發(fā)生泄漏仇参。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一婆殿、第九天 我趴在偏房一處隱蔽的房頂上張望诈乒。 院中可真熱鬧,春花似錦婆芦、人聲如沸怕磨。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)肠鲫。三九已至,卻和暖如春或粮,著一層夾襖步出監(jiān)牢的瞬間导饲,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工氯材, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留渣锦,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓氢哮,卻偏偏與公主長(zhǎng)得像袋毙,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子冗尤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容