本章内容
-
方舟框架介绍
-
初识Ability
-
FA模型和Stage模型
-
eTS文件基本组成
-
资源管理
-
访问应用资源
-
访问系统资源
-
-
像素单位
-
国际化
本章目标
- ArkUI框架简介
- 资源管理
- 像素单位
- 国际化
创建工程信息详解
上一章运行了一个Hello World程序,在工程配置阶段并没有进行详细说明。
工程信息详解
Project name:工程的名称
可以自定义,由大小写字母、数据和下划线组成。
Project type:工程的类型
标识该工程是一个传统方式的需要安装的应用(Application)或原子化服务(Atomic service),默认类型为Application。
Bundle name:软件包名称
默认情况下,应用ID也会使用该名称,应用发布时,应用ID需要唯一。如果“Project type”选择了Atomic service,则Bundle name的后缀名必须是.hmservice。
Save location:工程文件本地存储路径
由大小写字母、数字和下划线等组成,不能包含中文字符。
Compile SDK:编译的SDK版本。
Model:选择FA模型或Stage模型(Stage模型仅Compile API为9及以上支持)。
Enable Super Visual:选择开发模式,部分模板支持低代码开发,可选择打开该开关。
Language:开发语言。
Compatible SDK:兼容的SDK最低版本。
Device type:该工程模板支持的设备类型
Default 代表了一个功能比较全面的OpenHarmony设备,具有全部的系统能力,开发者可以不用判断即可使用OpenHarmony的全部API。
Show in service center:是否在服务中心展示。(服务卡片)
工程目录结构
FA模型和Stage模型的工程目录结构存在差异,API version8只支持FA模型,API version9则两者都支持。
eTS工程目录结构(FA模型)
-
entry:OpenHarmony工程模块,编译构建生成一个Hap包。
- src > main > ets:用于存放ets源码。 src > main > ets > MainAbility:应用/服务的入口。
- src > main > ets > MainAbility > app.ets:承载Ability生命周期。
- src > main > ets > pages:MainAbility包含的页面。
- src > main > resources:用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。
- base>element:包括字符串、整型数、颜色、样式等资源的json文件。
- base>media:多媒体文件,如图形、视频、音频等文件,支持的文件格式包 括:.png、.gif、.mp3、.mp4等。
- src > main >config.json:模块配置文件,主要包含HAP包的配置信息、应用在具体设备上的配置信息以及应用的全局配置信息。
- build-profile.json5:当前的模块信息、编译信息配置项,包括buildOption、targets配置等。
- hvigorfile.js:模块级编译构建任务脚本。
- build-profile.json5:应用级配置信息,包括签名、产品配置等。
-
hvigorfile.js:应用级编译构建任务脚本。
eTS工程目录结构(Stage模型)
- AppScope > app.json5:应用的全局配置信息。
- entry:OpenHarmony工程模块,编译构建生成一个Hap包。
- src > main > ets:用于存放ets源码。
- src > main > ets > Application > AbilityStage.ts:实现AbilityStage接口。
- src > main > ets > MainAbility:应用/服务的入口。
- src > main > ets > MainAbility > MainAbility.ts:承载Ability生命周期。
- src > main > ets > pages:MainAbility包含的页面。
- src > main > resources:用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布 局文件等。
- base>element:包括字符串、整型数、颜色、样式等资源的json文件。
- base>media:多媒体文件,如图形、视频、音频等文件,支持的文件格式包 括:.png、.gif、.mp3、.mp4等。
- base>profile:用于存储任意格式的原始资源文件。
- src > main > module.json5:模块配置文件,主要包含HAP包的配置信息、应用在具体设备上的配置信息以及应用的全局配置信息。
- build-profile.json5:当前的模块信息、编译信息配置项,包括buildOption、targets配置等。
- hvigorfile.js:模块级编译构建任务脚本。
- build-profile.json5:应用级配置信息,包括签名、产品配置等。
- hvigorfile.js:应用级编译构建任务脚本。
对于初学者,两者区别主要讲目录区别,和思想区别,生命周期等熟练使用后在讲解。初学者更需要一个直观的了解。
初识Ability
什么是Ability?
Ability译为能力,一个OpenHarmony应用包含N个能力(Ability),它们是系统调用应用的最小单元。应用程序开发其实本质上就是开发Ability。
自己试试对应用进行拆分,你会发现它们具备很多小能力。把这些小能力组合起来就变成了一个应用。
开发模型
OpenHarmony又对这些能力(Ability)进行了划分:
第一种按照特征(可见与不可见)划分为FA(Feature Ability)和PA(Particle Ability)。简称FA模型开发。
FA支持Page Ability,PA支持Service Ability、Data Ability、以及FormAbility。
PageAbility是具备ArkUI实现的Ability,是用户具体可见并可以交互的Ability实例。
ServiceAbility也是Ability一种,但是没有UI,提供其他Ability调用自定义的服务,在后台运行。
DataAbility也是没有UI的Ability,提供其他Ability进行数据的增删查服务,在后台运行。
FormAbility是卡片Ability,是一种界面展示形式。
第二种按照发展(一个基础能力当参照物)划分为Abilit