一个软件工程就是一个App Pack(Application Package)。
一个APP Pack由一个或多个HAP(OpenHarmony Ability Package)和pack.info(描述App Pack 属性)组成。
一个HAP是由代码,资源,第三方库以及应用配置文件组成的模块包。
HAP分为两种类型,Entry和Feature。
APP Pack中,Entry是应用的主模块,必须有且仅有一个,Feature是应用的动态性模块,可有可无。
HAP里面只有一个Ability。
Ability分为两种类型,FA和PA。FA有界面用于展现页面逻辑,PA无界面用于提供后台运行任务的能力。通过配置Ability的Type属性来进行设置,如果Type属性是Page就是FA,如果Type属性是Serviceh或Date就是PA。
Ability是对能力的抽象,一个应用具备多个能力,自然它就拥有多个Ability。
工程目录结构(JS的FA模型)entry:OpenHarmony工程模块,编译构建生成一个Hap包。
- src > main > js:用于存放js源码。
- src > main > js > MainAbility:应用/服务的入口。
- src > main > js > MainAbility > i18n:用于配置不同语言场景资源内容,比如应用文本词条、图片路径等资源。
- src > main > js > MainAbility > pages: MainAbility包含的页面。
- src > main > js > MainAbility > app.js: 承载Ability生命周期。
- src > main > resources: 用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。
- src > main > config.json: 模块配置文件,主要包含HAP包的配置信息、应用在具体设备上的配置信息以及应用的全局配置信息。
- entry > build-profile.json5: 当前的模块信息、编译信息配置项,包括buildOption、targets配置等
- entry > hvigorfile.js: 模块级编译构建任务脚本,开发者可以自定义相关任务和代码实现。
build-profile.json5: 应用级配置信息,包括签名、产品配置等。
hvigorfile.js: 应用级编译构建任务脚本。
JS FA开发基础参考这个视频
应用配置文件config.json{ "app": {},//应用的全局配置信息 "deviceConfig": {},// 具体设备上的配置 "module": {} }
在同一个应用的多个HAP包的config.json中的app对象应保持一致
JS生命周期函数运行顺序打开该页面时
onInit()------>onReady()------->onShow()
从该页面跳转到另一个页面时
onHide()
隐藏该页面到后台
onInActive()------->onHide()
恢复该页面到前台
onActive()----------->onShow()
退出该页面时
onBackPress()------->onHide()---------->onDestroy()
JS FA常用组件基于JS扩展的类Web开发范式
JS FA常用API接口