工程结构

Catalogue   

项目结构介绍

  • AppScope:存放全局所需要的资源文件
    • resources:
      • base:
        • element:存放公共的字符串、布局文件等资源
        • media:多媒体资源文件
    • app.json5: 项目配置信息,例如应用包名、版本号、应用图标、应用名称和依赖的SDK版本号等。
  • oh_modules:工程的依赖包,存放工程依赖的源文件
  • build-profile.json5:工程级配置信息,包括签名、产品配置等
  • hvigorfile.ts:工程级编译构建任务脚本,hvigor是基于任务管理机制实现的一款全新的自动化构建工具,主要提供任务注册排编,工程模型管理、配置管理等核心功能
  • oh-package.json5:依赖配置文件,类似于Flutter中的pubspec.yaml
  • entry或者feature
    • src:
      • main:
        • ets:
          • entryability: 类似于Android的Activity,表示应用的一个能力,程序的入口
          • pages:程序的页面集合
        • reources:
          • base:
            • element:
            • media:
            • profile:
              • main_pages.json:页面配置信息
          • module.json5:当前模块的描述文件,声明ability,定义系统图标、名称等
    • oh-package.json5: 当前模块的配置信息
    • build-profile.json5:当前模块的编译配置信息
    • consumer-rules.txt: 库模块默认导出的混淆规则文件,会打包到HAR包中;仅支持HAR模块

app.json5

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/app-configuration-file-0000001427584584-V2

module.json5

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V2/module-configuration-file-0000001427744540-V2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55


{
"module": {
"name": "default", //当前module的名字,打成hap后,表示hap的名字
"type": "entry",//模块类型,entry、feature、har
"description": "$string:module_desc",
"mainElement": "DefaultAbility",
"deviceTypes": [
"phone",
"tablet",
"2in1"
],
"deliveryWithInstall": true,
"installationFree": false,
"pages": "$profile:main_pages",//对应的是main_pages.json文件,用于配置ability中用到的page信息
"abilities": [ //模块所有ability元能力信息
{
"name": "DefaultAbility",
"srcEntry": "./ets/defaultability/DefaultAbility.ets",//入口文件路径
"description": "$string:ability_desc",//模块描述信息
"icon": "$media:layered_image",
"label": "$string:ability_label",//标签名
"startWindowIcon": "$media:startIcon",//启动页面的图标
"startWindowBackground": "$color:start_window_background",//启动页面的背景色
"exported": true,
"visible": true,//是否可以被其他应用程序调用
"skills": [//标识能够接收的意图的action值的集合
{
"entities": [//能够接收Want的Action值的集合
"entity.system.home"
],
"actions": [//能够接收Want的Entity值的集合
"action.system.home"
]
}
]
}
],
"extensionAbilities": [
{
"name": "DefaultBackupAbility",
"srcEntry": "./ets/defaultbackupability/DefaultBackupAbility.ets",
"type": "backup",
"exported": false,
"metadata": [
{
"name": "ohos.extension.backup",
"resource": "$profile:backup_config"
}
],
}
]
}
}

main_pages.json

所有需要进行路由跳转的page页面都要在此配置

目录结构

https://docs.openharmony.cn/pages/v5.0/zh-cn/application-dev/file-management/app-sandbox-directory.md

  • bundle:HAP资源包存放目录
  • cache:目录大小超过一定额度后会被清理
  • files:随应用卸载清理
  • preferences
  • temp:运行期间产生的文件存储目录,应用退出后即清理
  • distributedfiles:分布式设备可访问
  • database:分布式数据库存储目录

/data/storage/el2/base/files/performance/是沙箱路径,对应真实的物理路径为/data/app/el2/100/base/包名/files/performance/

真实物理路径,文档目录:
/storage/media/100/local/files/Docs