在《#跟着小白一起学鸿蒙# [九] 写个简单的LED驱动》我们熟悉了如何在开源鸿蒙开发驱动应用,并通过hdc工具拷贝至开发板运行。在《#跟着小白一起学鸿蒙#[六]第一个hap应用》的文章里我们学会如何用IDE工具编写hap应用并他通过IDE工具安装至开发板运行。我们学会了hap程序的开发,但是hap程序是运行在标准系统的应用,对于轻量和小型系统我们应该如何进行开发呢?接下来我们需要学习下如何开发JS应用。
轻量、小型系统JS应用
Ace(foundation/arkui/ace_engine_lite)是OpenHarmony的轻量级系统所使用的UI框架子系统,为开发者提供JS-UI开发框架。包括.html,.css,.js。开发者可以通过DevEco工具进行开发。其中JS的引擎采用三方库里的JerryScript(jerryscript是IoT设备上的轻量级JS引擎,支持ECMAScript 5.1标准,适配低内存硬件,最小运行在64KB RAM和小于200KB的flash,提供C API)。关于jerryscript的详细介绍可以看如下参考链接(https://github.com/jerryscript-project/jerryscript )。
详细的内容介绍在一下链接内可以看到官方的说明:
参考链接:https://gitee.com/openharmony/arkui_ace_engine_lite。
此样例参考小熊派设计,使用小熊派HM_Micro开发板进行验证。
JS-UI开发流程
创建工程配置工程增加LED程序添加JSAPI接口编译运行。
建立[Lite]Empty Ability。
配置工程。
工程结构说明。
工程目录主要在entry里,有以下内容:
- .preview: 界面预览目录。
- build: 工程编译目录。
- src:包括i18n(国际化翻译路径),pages(界面目录,index.css, index.hml, index.js)。
工程预览。
添加按键功能控制LED灯。
- 修改index.hml
- 修改index.css
- 修改index.js
- 预览
- 将代码编译成hap包:点击编辑器最左下角的OhosBuild Varilants,打开编译模式选择视图,编译模式分debug和release,选择release模式;
- 点击编辑器上方菜单栏的Build->Build Hap(s)/App(s)->Build Hap(s),系统就会开始自动编译代码成hap包,等到下方Build Output无编译错误,就表示代码编译完成了。
增加JS的API接口。
- 在app_module.h里增加接口
- 在app_module.cpp里增加接口实现
- 在foundation\ace\ace_engine_lite\ace_lite.gni中添加HDF头文件路径
- 添加编译依赖
总结
- 基于JS扩展的类Web开发范式的方舟开发框架,采用经典的HML、CSS、JavaScript三段式开发方式。使用HML标签文件进行布局搭建,使用CSS文件进行样式描述,使用JavaScript文件进行逻辑处理。UI组件与数据之间通过单向数据绑定的方式建立关联,当数据发生变化时,UI界面自动触发更新。此种开发方式,更接近Web前端开发者的使用习惯,快速将已有的Web应用改造成方舟开发框架应用。主要适用于界面较为简单的中小型应用开发;
- 通过appmodule调用framework层接口,然后通过framework接口调用Hdf接口。
这样我们就有了自己的driver和配置,后面的章节我们会讲如何在hap应用里调用驱动接口。