openharmony - 应用的包结构配置文件(FA模型)和资源文件

本文详细介绍了OpenHarmony应用的config.json配置文件结构,包括app、deviceConfig和module三个部分,以及资源文件的组织方式。config.json中包含了应用的全局信息、设备特定配置和模块信息。资源文件则按base目录、限定词目录和rawfile目录进行管理,同时详细阐述了各部分的用途和内容。
摘要由CSDN通过智能技术生成

openharmony应用包结构配置文件

应用开发中,需要在config.json配置文件中对应的包结构进行声明

配置文件的内部结构:
config.json配置文件由app、deviceConfig、module三部分组成,缺一不可。

  • app:表示应用的全局配置信息
  • deviceConfig:表示应用在具体设备上的配置信息
  • module:表示HAP包的配置信息。该标签的配置只对当前HAP生效
{
  "app": {
    "vendor": "example",
    "bundleName": "com.example.helloworld",
    "version": {
      "code": 1000000,
      "name": "1.0.0"
    }
  },
  "deviceConfig": {},
  "module": {
    "mainAbility": ".MainAbility",
    "deviceType": [
      "default",
      "tablet"
    ],
    "abilities": [
      {
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "action.system.home"
            ]
          }
        ],
        "orientation": "unspecified",
        "visible": true,
        "srcPath": "MainAbility",
        "name": ".MainAbility",
        "srcLanguage": "ets",
        "icon": "$media:icon",
        "description": "$string:MainAbility_desc",
        "formsEnabled": false,
        "label": "$string:MainAbility_label",
        "type": "page",
        "launchType": "standard"
      }
    ],
    "distro": {
      "moduleType": "entry",
      "installationFree": false,
      "deliveryWithInstall": true,
      "moduleName": "entry"
    },
    "package": "com.example.entry",
    "name": ".entry",
    "js": [
      {
        "mode": {
          "syntax": "ets",
          "type": "pageAbility"
        },
        "pages": [
          "pages/index",
          "pages/second"
        ],
        "name": ".MainAbility",
        "window": {
          "designWidth": 720,
          "autoDesignWidth": false
        }
      }
    ]
  }
}

app对象的内部结构:

  • vendor:表示对应用开发商的描述。
  • bundleName:表示应用包名,用于标识应用的唯一性
  • version:表示应用的版本信息。向用户呈现
    name:表示应用版本号。A.B.C(API5以前,取值范围0-999),A.B.C.D(API6后,前三位取值范围0-99,后一位为0-999)
    code:表示应用版本号。管理应用,不对用户呈现
    minCompatibleVersionCode:表示应用可兼容的最低版本号
  • apiVersion:标识应用程序所依赖的openharmony API版本
    compatible:运行应用所需的最低API版本
    target:用于标识应用运行所需的目标API版本
    resleaseType:用于标识应用运行所需的目标API类型
"app": {
    "vendor": "example",
    "bundleName": "com.example.helloworld",
    "version": {
      "code": 1000000,
      "name": "1.0.0"
    },
    "apiVersion": {
      "compatible": 8,
      "target": 8,
      "releaseType": "Beta1"
    }
}

deviceConfig对象的内部结构:

  • default:表示所有设备通用的应用配置信息
  • table:表示平板的应用配置信息
  • tv:表示智慧屏特有的应用配置信息
  • car:表示车机特有的应用配置信息
  • wearable:表示智能穿戴特有的应用配置信息
    不同设备的内部结构:
  • process:表示应用或Ability的进程名
  • supportBackup:表示应用是否支持备份和恢复
  • network:表示网络安全性配置
    cleartextTraffic:表示是否允许应用使用明文网络流量
    securityConfig:表示应用的网络安全配置信息
"deviceConfig": {
	"default": {
		"process": "com.example.test.example",
		"supportBackup": false,
		"network": {
			"cleartextTraffic": true,
			"securityConfig": {
				"domainSettings": {
					"cleartextPermitted": true,
					"domains": [
						{
							"subdomains": true,
							"name": "example.ohos.com"
						}
					]
				}
			}
		}
	}
}

module对象的内部结构:

  • mainAbility:服务中心图标露出的ability,常驻进程拉起时会启动mainAbility
  • package:表示HAP的包结构名称
  • name:表示HAP的类名
  • deviceType:表示允许Ability运行的设备类型
  • distro:表示HAP发布的具体描述
  • js:表示基于ArkUI框架开发的JS模块集合
  • reqPermission:表示应用运行时向系统申请的权限
  • abilities:表示当前模块内的所有ability

资源文件的分类

应用开发中使用的各种资源,需要放在特定的子目录中存储管理
resources目录:
应用的资源文件(字符串、图片、音频等)统一存放在resources
主要分为两大类目录:base目录与限定词目录、rawfile目录

resources
|---base  // 默认存在的目录
|   |---element
|   |   |---string.json
|   |---media
|   |   |---icon.png
|---en_GB-vertical-car-mdpi // 限定词目录示例,需要开发者自行创建   
|   |---element
|   |   |---string.json
|   |---media
|   |   |---icon.png
|---rawfile  // 默认存在的目录

资源组目录:
base目录下可创建资源组目录(包括element、media、animation、layout、graphic、profile)
element:表示元素资源,以下每一类数据都采用相应的JSON文件来表征。

  • boolean,布尔型
  • color,颜色
  • float,浮点型
  • intarray,整型数组
  • integer,整型
  • pattern,样式
  • plural,复数形式
  • strarray,字符串数组
  • string,字符串

element目录中的文件名称建议与下面的文件名保持一致。每个文件中只能包含同一类型的数据。

  • boolean.json
  • color.json
  • float.json
  • intarray.json
  • integer.json
  • pattern.json
  • plural.json
  • strarray.json
  • string.json

media:表示媒体资源,包括图片、音频、视频等非文本格式的文件。 文件名可自定义,例如:icon.png。
animation:表示动画资源,采用XML文件格式。 文件名可自定义,例如:zoom_in.xml。
layout:表示布局资源,采用XML文件格式。 文件名可自定义,例如:home_layout.xml。
graphic:表示可绘制资源,采用XML文件格式。 文件名可自定义,例如:notifications_dark.xml。
profile:表示其他类型文件,以原始文件形式保存。 文件名可自定义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值