
工程管理介绍 原创
工程介绍
APP包结构
在进行应用/元服务开发前,开发者应该掌握应用/元服务的逻辑结构。
应用/元服务发布形态为APP Pack(Application Package),它是由一个或多个HAP包以及描述APP Pack属性的pack.info文件组成。
一个HAP在工程目录中对应一个Module,它是由代码、资源、三方库及应用/元服务配置文件组成,HAP可以分为Entry和Feature两种类型。
- Entry:应用的主模块,作为应用的入口,提供了应用的基础功能。
- Feature:应用的动态特性模块,作为应用能力的扩展,可以根据用户的需求和设备类型进行选择性安装。
切换工程视图*
DevEco Studio工程目录结构提供工程视图和Ohos视图。工程视图(Project)展示工程中实际的文件结构,Ohos视图会隐藏一些编码中不常用到的文件,并将常用到的文件进行重组展示,方便开发者查询或定位所需编辑的模块或文件。
工程创建或打开后,默认显示工程视图,如果要切换到Ohos视图,在左上角单击Project > Ohos进行切换 。
工程目录结构
ArkTS工程目录结构(Stage模型)**
ArkTS Stage模型支持API Version 10及以上版本,其工程目录结构如下图所示:
- AppScope > app.json5:应用的全局配置信息。
- entry: 应用/元服务模块,编译构建生成一个HAP。
- src > main > ets:用于存放ArkTS源码。
- src > main > ets > entryability:应用/元服务的入口。
- src > main > ets > pages:应用/元服务包含的页面。
- src > main > resources: 用于存放应用/元服务模块所用到的资源文件,如图形、多媒体、字符串、布局文件等
资源目录 | 资源文件说明 |
base>element | 包括字符串、整型数、颜色、样式等资源的json文件。每个资源均由json格式进行定义,例如:- boolean.json:布尔型 |
- color.json:颜色
- float.json:浮点型
- intarray.json:整型数组
- integer.json:整型
- pattern.json:样式
- plural.json:复数形式
- strarray.json:字符串数组
- string.json:字符串值 | | base>media | 多媒体文件,如图形、视频、音频等文件,支持的文件格式包括:.png、.gif、.mp3、.mp4等。 | | rawfile | 用于存储任意格式的原始资源文件。rawfile不会根据设备的状态去匹配不同的资源,需要指定文件路径和文件名进行引用。 |
- src > main > module.json5:Stage模型模块配置文件,主要包含HAP的配置信息、应用在具体设备上的配置信息以及应用的全局配置信息
- build-profile.json5:当前的模块信息、编译信息配置项,包括buildOption、targets配置等。
- hvigorfile.ts:模块级编译构建任务脚本。
- oh-package.json5:描述三方包的包名、版本、入口文件(类型声明文件)和依赖项等信息。
- oh_modules:用于存放三方库依赖信息,包含应用/元服务所依赖的第三方库文件。
- build-profile.json5:应用级配置信息,包括签名、产品配置等。
- hvigorfile.ts:应用级编译构建任务脚本。
- oh-package.json5:描述全局配置,如:依赖覆盖(overrides)、依赖关系重写(overrideDependencyMap)和参数化配置(parameterFile)等。 DevEco Studio支持多种品类的应用/元服务开发,预置丰富的工程模板,可以根据工程向导轻松创建适应于各类设备的工程,并自动生成对应的代码和资源模板。同时,DevEco Studio还提供了多种编程语言供开发者进行应用/元服务开发,包括ArkTS、JS和C/C++。
工程模板介绍
工程模板支持的开发语言及模板说明如下表所示:
模板名称 | 说明 |
Empty Ability | 用于Phone、Tablet、2in1、Car设备的模板,展示基础的Hello World功能。 |
Native C++ | 用于Phone、Tablet、2in1、Car设备的模板,作为应用调用C++代码的示例工程,界面显示“Hello World”。 |
[CloudDev]Empty Ability | 端云一体化开发通用模板 |
[Lite]Empty Ability | 用于Lite Wearable设备的模板,展示了基础的Hello World功能。可基于此模板,修改设备类型及RuntimeOS,进行小型嵌入式设备开发。 |
Flexible Layout Ability | 用于创建跨设备应用开发的三层工程结构模板。三层工程结构包含common(公共能力层)、features(基础特性层)、products(产品定制层)。 |
Embeddable Ability | 用于开发支持被其他应用嵌入式运行的元服务的工程模板。 |
创建一个新的工程
说明
在运行DevEco Studio工程时,建议每一个运行窗口有2GB以上的可用内存空间。
创建和配置新工程
DevEco Studio提供了基础的工程模板资源,不同模板支持的设备类型、API Version可能不同,在创建新工程前,请提前了解各模板的相关信息
创建HarmonyOS工程
- 通过如下两种方式,打开工程创建向导界面。
- 如果当前未打开任何工程,可以在DevEco Studio的欢迎页,选择Create Project开始创建一个新工程。
- 如果已经打开了工程,可以在菜单栏选择File > New > Create Project来创建一个新工程。
- 根据工程创建向导,选择创建Application或再选择需要的Ability工程模板,然后单击Next。
说明
- 从API 11版本开始支持Atomic Service元服务工程开发。
- Atomic Service元服务工程暂不支持Native开发。
- 在工程配置页面,需要根据向导配置工程的基本信息。
- Project name:工程的名称,可以自定义,由大小写字母、数字和下划线组成。
- Bundle name:标识应用的包名,用于标识应用的唯一性。
说明
应用包名要求:
- 必须为以点号(.)分隔的字符串,且至少包含三段,每段中仅允许使用英文字母、数字、下划线(_),如“com.example.myapplication ”。
- 首段以英文字母开头,非首段以数字或英文字母开头,每一段以数字或者英文字母结尾,如“com.01example.myapplication”。
- 不允许多个点号(.)连续出现,如“com.example..myapplication ”。
- 长度为7~128个字符。
- Save location:工程文件本地存储路径,由大小写字母、数字和下划线等组成,不能包含中文字符。
- Compatible SDK:兼容的最低API Version。
- Module name: 模块的名称。
- Device type:该工程模板支持的设备类型。
- 单击Finish,工具会自动生成示例代码和相关资源,等待工程创建完成。
