跟著小白一起學(xué)鴻蒙--JS應(yīng)用控制LED(十)
??想了解更多關(guān)于開源的內(nèi)容,請(qǐng)?jiān)L問:??
在《#跟著小白一起學(xué)鴻蒙# [九] 寫個(gè)簡(jiǎn)單的LED驅(qū)動(dòng)》我們熟悉了如何在開源鴻蒙開發(fā)驅(qū)動(dòng)應(yīng)用,并通過hdc工具拷貝至開發(fā)板運(yùn)行。在《#跟著小白一起學(xué)鴻蒙#[六]第一個(gè)hap應(yīng)用》的文章里我們學(xué)會(huì)如何用IDE工具編寫hap應(yīng)用并他通過IDE工具安裝至開發(fā)板運(yùn)行。我們學(xué)會(huì)了hap程序的開發(fā),但是hap程序是運(yùn)行在標(biāo)準(zhǔn)系統(tǒng)的應(yīng)用,對(duì)于輕量和小型系統(tǒng)我們應(yīng)該如何進(jìn)行開發(fā)呢?接下來我們需要學(xué)習(xí)下如何開發(fā)JS應(yīng)用。
輕量、小型系統(tǒng)JS應(yīng)用
Ace(foundation/arkui/ace_engine_lite)是OpenHarmony的輕量級(jí)系統(tǒng)所使用的UI框架子系統(tǒng),為開發(fā)者提供JS-UI開發(fā)框架。包括.html,.css,.js。開發(fā)者可以通過DevEco工具進(jìn)行開發(fā)。其中JS的引擎采用三方庫(kù)里的JerryScript(jerryscript是IoT設(shè)備上的輕量級(jí)JS引擎,支持ECMAScript 5.1標(biāo)準(zhǔn),適配低內(nèi)存硬件,最小運(yùn)行在64KB RAM和小于200KB的flash,提供C API)。關(guān)于jerryscript的詳細(xì)介紹可以看如下參考鏈接(https://github.com/jerryscript-project/jerryscript )。
詳細(xì)的內(nèi)容介紹在一下鏈接內(nèi)可以看到官方的說明:
參考鏈接:https://gitee.com/openharmony/arkui_ace_engine_lite。
此樣例參考小熊派設(shè)計(jì),使用小熊派HM_Micro開發(fā)板進(jìn)行驗(yàn)證。
JS-UI開發(fā)流程
創(chuàng)建工程配置工程增加LED程序添加JSAPI接口編譯運(yùn)行。
建立[Lite]Empty Ability。
配置工程。
工程結(jié)構(gòu)說明。
工程目錄主要在entry里,有以下內(nèi)容:
- .preview: 界面預(yù)覽目錄。
- build: 工程編譯目錄。
- src:包括i18n(國(guó)際化翻譯路徑),pages(界面目錄,index.css, index.hml, index.js)。
工程預(yù)覽。
添加按鍵功能控制LED燈。
- 修改index.hml
- 修改index.css
- 修改index.js
- 預(yù)覽
- 將代碼編譯成hap包:點(diǎn)擊編輯器最左下角的OhosBuild Varilants,打開編譯模式選擇視圖,編譯模式分debug和release,選擇release模式;
- 點(diǎn)擊編輯器上方菜單欄的Build->Build Hap(s)/App(s)->Build Hap(s),系統(tǒng)就會(huì)開始自動(dòng)編譯代碼成hap包,等到下方Build Output無編譯錯(cuò)誤,就表示代碼編譯完成了。
增加JS的API接口。
- 在app_module.h里增加接口
- 在app_module.cpp里增加接口實(shí)現(xiàn)
- 在foundation\ace\ace_engine_lite\ace_lite.gni中添加HDF頭文件路徑
- 添加編譯依賴
總結(jié)
- 基于JS擴(kuò)展的類Web開發(fā)范式的方舟開發(fā)框架,采用經(jīng)典的HML、CSS、JavaScript三段式開發(fā)方式。使用HML標(biāo)簽文件進(jìn)行布局搭建,使用CSS文件進(jìn)行樣式描述,使用JavaScript文件進(jìn)行邏輯處理。UI組件與數(shù)據(jù)之間通過單向數(shù)據(jù)綁定的方式建立關(guān)聯(lián),當(dāng)數(shù)據(jù)發(fā)生變化時(shí),UI界面自動(dòng)觸發(fā)更新。此種開發(fā)方式,更接近Web前端開發(fā)者的使用習(xí)慣,快速將已有的Web應(yīng)用改造成方舟開發(fā)框架應(yīng)用。主要適用于界面較為簡(jiǎn)單的中小型應(yīng)用開發(fā);
- 通過appmodule調(diào)用framework層接口,然后通過framework接口調(diào)用Hdf接口。
這樣我們就有了自己的driver和配置,后面的章節(jié)我們會(huì)講如何在hap應(yīng)用里調(diào)用驅(qū)動(dòng)接口。