HarmonyOS-Java 三、config.json详解

config.json详细细节

  1. 应用的每个HAP的根目录下都存在一个config.json 配置文件
    1)应用全局配置信息,包含应用包名,生产厂商,版本号等基本信息
    2)应用在具体设备上的配置信息
    3)HAP包的配置信息,包含每个Ability必须定义的基本属性
    4)应用访问系统或其他应用受保护所需的权限
  2. config.json 文件
    1)属性:不分先后 唯一的
    2)值:可以是 (数值 字符串 布尔值 数组 对象 或者 null)
  3. config.json 文件内部结构
    app 应用的全局配置信息 每个模块都是一样的
    deviceConfig 在具体设备上的配置信息
    module HAP包配置信息
    每个模块这三块是缺一不可的

app:

{
  "app": { /*应用的全局配置信息*/
    "bundleName": "com.example.mydemo",  /*应用包名 唯一*/
    "vendor": "example",  /*是对应用开发商的描述*/
    "version": {   /*应用版本信息*/
      "code": 1000000,    /*版本号*/
      "name": "1.0.0"     /*版本名称*/
    }
  },
  "apiVersion": {  /*应用依赖鸿蒙API的版本*/
    "compatible": 5,   /*API 最小版本*/
    "target": 5       /*运行需要的版本*/
  }
}

2 deviceConfig

"deviceConfig": {},  //应用在具体设备上的信息

3 module

"module": {      /*HAP包配置信息 只对对应的HAP包生效*/
    "package": "com.example.mydemo",   /*包名*/
    "name": ".MyApplication",  /*主入口类*/
    "mainAbility": "com.example.mydemo.MainAbility",
    "deviceType": [  /*当前HAP包在什么设备上运行,可以指定多个*/
      "phone",
      "tv"
    ],
    "distro": {     /*发布相关*/
      "deliveryWithInstall": true,   /*能不能随着app安装而安装*/
      "moduleName": "entry",      /*模块名字*/
      "moduleType": "entry",      /*模块类型*/
      "installationFree": false
    },
    "abilities": [    /*HAP中所有的 Ability 都需要在这里注册*/
      {
        "skills": [     /*这个Ability 接受Intent的特征 系统启动的页面*/
          {
            "entities": [   /*类型*/
              "entity.system.home"   /*这个是鸿蒙系定义好的  系统主页 可以自定义*/
            ],
            "actions": [  /*行为*/
              "action.system.home"   /*去app 主页的行为  可以自定义*/
            ]
          }
        ],
        "orientation": "unspecified",  /*横屏竖屏*/
       /* "unspecified",  跟随系统
        "landscape",  横屏
        "portrait",   竖屏
        "followRecent" 跟随上一个页面*/
        "name": "com.example.mydemo.MainAbility",   /*Ability名称*/
        "icon": "$media:icon",    /*应用图标*/
        "description": "$string:mainability_description", /*描述*/
        "label": "$string:entry_MainAbility",  /*显示的名称*/
        "type": "page",   /*Ability类型*/
        "launchType": "standard"    /*Ability启动模式*/
        /*"singleton",   可以有多个实例
        "standard",       只有一个实例
        "singleMissio*/"
      }
    ]
}

开发完成 了解一下 打包的APP

  1. HAP的分类
    HAP可分为 entry 和feature 两种模块类型:
    1). entry: 应用的主模块。
    一个APP中,对于同一设备类型必须有且只有一个entry 类型的HAP,可以独立安装运行。
    2). feature: 应用的动态特性模块
    一个app 可以包含零个或多个 feature 类型的HAP

  2. HAP 的组成
    HAP是由代码Ability,资源 应用配置 第三方库 等,只由包含Ability的HAP才能独立运行
    1). Ability
    一个应用可以包含一个或多个 Ability 是应用所具备的能力
    Ability分为两种类型 FA(Feature Ability) 和 PA(Particle Ability)
    FA有UI界面,PA没有UI界面
    2). 库文件
    第三方代码 存放在libs目录。
    3). 资源文件
    资源文件(字符串 图片 音视频等)存放于resources 目录下
    4). 配置文件
    配置文件(config.json) 用于声明Ability,版本信息,以及应用所需权限等信息

  3. pack.info文件
    描述应用软件包中的每个HAP的属性,由IDE编译生成,应用市场根据该文件进行拆包和HAP的分类储存。
    HAP的具体属性包括:
    1)delivery-with-install:表示该HAP是否支持随应用安装
    2)name:HAP 文件名称
    3)module-type 模块类型 ,entry 或 feature
    4)device-type:表示支持该HAP运行的设备类型

上一篇: HarmonyOS-Java 二、创建布局文件

你可能感兴趣的:(HarmonyOS-Java 三、config.json详解)