config.json解析

config.json作用

  1. 规定应用信息:包名、版本号等
  2. 在此声明Ability,及其属性、类型等。
  3. 规定应用支持的设备,和每种设备上面的属性或配置,如可以指定在 tv 设备中设置 keepAlive=true(跟随系统启动,仅限系统应用),而在wearable 中则不跟随系统启动。
  4. 声明需要的权限、定义自身需要的权限
    等等功能。

简介

在下面我整理了一些属性的作用。
有一些是项目创建后就默认有的。还有一些是我自己觉得比较常用的及其可选项,也加在了里面。

{
  "app": {
    "bundleName": "com.aos.learning",   //新建项目时指定的PackageName,而且IDE建议以 com.开头
    "vendor": "aos",                    //根据新建项目时指定的PackageName 的第一个 . 之后的字符串
    "version": {                        //版本
      "code": 1,                        //版本号,目前测试看,系统并不会阻止降级安装。
      "name": "1.0"                     //版本名
    },
    "apiVersion": {                     //依赖的鸿蒙SDK版本
      "compatible": 3,                  //兼容版本
      "target": 3                       //编译版本
    }
  },
  "deviceConfig": {                     //应用在不同设备上面的配置。
    "tv": {                             //目前看是有 "default","tv","wearable"。分别可以配置属性
      "keepAlive": true
    }
  },
  "module": {                           //模块列表,有三个必填的属性 : package,deviceType,distro
    "package": "com.aos.learning",      //模块的包名
    "name": ".Learning",                //模块名称
    "reqCapabilities": [                
      "video_support"
    ],
    "deviceType": [                     //目前看是有 "default","tv","wearable",smartVision 。
      "tv"
    ],
    "distro": {                         //distro下面都是必填项
      "deliveryWithInstall": true,      //是否在应用安装时,安装此模块的 hap
      "moduleName": "entry",            
      "moduleType": "entry"             //现在是有 entry,feature,har 三种。
    },
    "defPermissions": {                 //其它应用要访问你的App时需要拥有的权限。
      "name": "com.aos.permission.learning",   //权限名称
      "grantMode": "user_grant"         //user_grant 或者 system_grant
    },
    "reqPermissions": [                 //你的应用需要的权限列表,这里写明后,同样需要运行时申请。
      {
        "name": "ohos.permission.INTERNET"    //举例:网络访问权限。
      }
    ],
    "abilities": [                       //Ability列表
      {
        "skills": [
          {
            "entities": [
              "entity.system.home"        //在全部应用上面显示此Ability
            ],
            "actions": [
              "action.system.home"        //默认启动此Ability
            ]
          }
        ],
        "orientation": "landscape",         //横屏
        "formEnabled": false,                     //是否支持AbilityForm。
        "name": "com.aos.learning.MainAbility",   //Ability名称
        "icon": "$media:icon",                    //Ability图标
        "description": "$string:mainability_description",          //Ability描述
        "label": "Learning",                     //Ability标题
        "type": "page",                          //Ability类型 :PageAbility or ServiceAbility or DataAbility
        "launchType": "standard"                 //启动模式,目前支持 standard模式和 singleton模式。
      }
    ]
  }
}

稍微解释一下

  1. vender我测试是每次都选 第一个和第二个 . 中间的字符串,并且 建议 使用com…开头
  2. version.code和version.name 目前看在系统层面并无卵用,不影响覆盖安装或者使用。
  3. 权限grantMode 作用不明。
  4. 所有系统权限都可以在 ohos.security.SystemPermission中找到。
  5. reqPermissions虽然不是 required,默认项目配置中也没有,但是实际开发过程中会经常使用。比如应用联网就需要ohos.permission.INTERNET。
  6. AbilityForm 按我的理解就是安卓或者iOS上面的桌面小部件,但是不同的是鸿蒙貌似可以使用在非桌面应用中,没有测试过。
  7. PageAbility,ServiceAbility,DataAbility这三个概念可以参考这里
  8. 官方介绍
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值