HarmonyOS应用配置文件app对象内部结构,deviceConfig内部结构(FA模型)

这篇具有很好参考价值的文章主要介绍了HarmonyOS应用配置文件app对象内部结构,deviceConfig内部结构(FA模型)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

应用配置文件概述(FA模型)

每个应用项目必须在项目的代码目录下加入配置文件,这些配置文件会向HarmonyOS的编译工具、HarmonyOS操作系统和应用市场提供描述应用的基本信息。

应用配置文件需申明以下内容:

  • 应用的软件包名称,应用的开发厂商,版本号等应用的基本配置信息,这些信息被要求设置在app这个字段下。
  • 应用的组件的基本信息,包括所有的Ability,设备类型,组件的类型以及当前组件所使用的语法类型。
  • 应用在具体设备上的配置信息,这些信息会影响应用在设备上的具体功能。

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

配置文件的内部结构

config.json由app、deviceConfig和module三个部分组成,缺一不可。

属性名称 含义 数据类型 是否可缺省
app 标识应用的全局配置信息。同一个应用的不同HAP的app配置必须保持一致。 对象 不可缺省。
deviceConfig 标识应用在具体设备上的配置信息。 对象 不可缺省。
module 标识HAP的配置信息。该标签下的配置只对当前HAP生效。 对象 不可缺省。

config.json示例:

{
  "app": {
    "vendor": "example",
    "bundleName": "com.example.demo",
    "version": {
      "code": 1000000,
      "name": "1.0.0"
    }
  },
  "deviceConfig": {
  },
  "module": {
    "mainAbility": ".MainAbility_entry",
    "deviceType": [
      "tablet"
    ],
    "commonEvents": [
      {
        "name": ".MainAbility",
        "permission": "ohos.permission.GET_BUNDLE_INFO",
        "data": [
          "com.example.demo",
          "100"
        ],
        "events": [
          "install",
          "update"
        ]
      }
    ],
    "abilities": [
      {
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "action.system.home"
            ]
          }
        ],
        "orientation": "unspecified",
        "visible": true,
        "srcPath": "MainAbility_entry",
        "name": ".MainAbility_entry",
        "srcLanguage": "ets",
        "icon": "$media:icon",
        // $string:MainAbility_entry_desc为资源索引
        "description": "$string:MainAbility_entry_desc",
        "formsEnabled": false,
        // $string:MainAbility_entry_label为资源索引
        "label": "$string:MainAbility_entry_label",
        "type": "page",
        "launchType": "standard"
      }
    ],
    "distro": {
      "moduleType": "entry",
      "installationFree": false,
      "deliveryWithInstall": true,
      "moduleName": "myapplication"
    },
    "package": "com.example.myapplication",
    "srcPath": "",
    "name": ".myapplication",
    "js": [
      {
        "mode": {
          "syntax": "ets",
          "type": "pageAbility"
        },
        "pages": [
          "pages/index"
        ],
        "name": ".MainAbility_entry",
        "window": {
          "designWidth": 720,
          "autoDesignWidth": false
        }
      }
    ]
  }
}

app对象内部结构

app对象包含应用全局配置信息,内部结构如下:

表1 app对象内部结构说明

属性名称 含义 数据类型 是否可缺省
bundleName 标识应用的Bundle名称,用于标识应用的唯一性。Bundle名称是由字母、数字、下划线(_)和点号(.)组成的字符串,必须以字母开头。支持的字符串长度为7~127字节。Bundle名称通常采用反向域名形式表示(例如,“com.example.myapplication”)。建议第一级为域名后缀"com",第二级为厂商/个人名,也可以采用多级。 字符串 不可缺省。
vendor 标识对应用开发厂商的描述。字符串长度不超过255字节。 字符串 可缺省,缺省值为空。
version 标识应用的版本信息。 对象 不可缺省。
apiVersion 标识应用程序所依赖的HarmonyOS API版本。 对象 可缺省,缺省值为空。
smartWindowSize 标识应用在模拟器中运行时使用的屏幕尺寸。 字符串 可缺省,缺省值为空。
smartWindowDeviceType 标识应用在模拟器中运行时可以模拟的设备。 字符串数组 可缺省,缺省值为空。

version对象内部结构

表2 version对象内部结构说明

属性名称 含义 数据类型 是否可缺省
name 标识应用的版本号,用于向应用的终端用户呈现。取值可以自定义,长度不超过127字节。自定义规则如下:API5及更早的版本:推荐使用三段数字版本号(也兼容两段式版本号),如A.B.C(也兼容A.B),其中A、B、C取值为0-999范围内的整数。除此之外不支持其他格式。A段,一般表示主版本号(Major)。B段,一般表示次版本号(Minor)。C段,一般表示修订版本号(Patch)。API6版本起:推荐采用四段式数字版本号,如A.B.C.D,其中A、B、C取值为0-99范围内的整数,D的取值为0-999范围内的整数。A段,一般表示主版本号(Major)。B段,一般表示次版本号(Minor)。C段,一般表示特性版本号(Feature)。D段,一般表示修订版本号(Patch)。 数值 不可缺省。
code 标识应用的版本号,仅用于HarmonyOS管理该应用,不对应用的终端用户呈现。取值规则如下:API5及更早版本:二进制32位以内的非负整数,需要从version.name的值转换得到。转换规则为:code值=A * 1,000,000 + B * 1,000 + C例如,version.name字段取值为2.2.1,则code值为2002001。API6版本起:code的取值不与version.name字段的取值关联,开发者可自定义code取值,取值范围为2^31以内的非负整数,但是每次应用版本的更新,均需要更新code字段的值,新版本code取值必须大于旧版本code的值。 数值 不可缺省。
minCompatibleVersionCode 标识应用可兼容的最低版本号,用于跨设备场景下,判断其他设备上该应用的版本是否兼容。格式与version.code字段的格式要求相同。说明当前版本暂不支持跨设备能力。 数值 可缺省,缺省值为code标签值。

apiVersion内部结构

表3 apiVersion内部结构说明

属性名称 含义 数据类型 是否可缺省
compatible 运行应用所需要的最低API版本,取值范围为0~2147483647。 数值 配置在build.profile中,打包时由IDE填充到config.json中。
target 用于标识应用运行时使用的API版本,取值范围为0~2147483647。 数值 配置在build.profile中,打包时由IDE填充到config.json中。
releaseType 用于标识应用运行时SDK的状态。canary:面向特定开发者早期预览版本,不承诺质量,不承诺API稳定。beta:公开发布的Beta版本,早期Beta版本不承诺API稳定,经历若干次发布后,通过Release Notes对开发者声明该Beta版本为API稳定里程碑,后续版本的API冻结。release:正式发布版本,承诺质量,API不可变更。当版本处于此状态时版本号中不呈现Stage字段。 字符串 配置在build.profile中,打包时由IDE填充到config.json中。

app对象示例

"app": {
    "bundleName": "com.example.myapplication",
    "vendor": "example",
    "version": {
      "code": 8,
      "name": "8.0.1"
    },
    "apiVersion": {
      "compatible": 8,
      "target": 9,
      "releaseType": "Beta1"
    }
  }

deviceConfig内部结构

deviceConfig包含设备上的应用配置信息,可以包含default,phone,tv,car,wearable等属性。default标签内的配置适用于所有通用设备,其他设备类型如果有特殊的需求,则需要在该设备类型的标签下进行配置。

deviceConfig对象内部结构

表1 deviceConfig对象内部结构说明

属性名称 含义 数据类型 是否可缺省
default 能够使用全部系统能力的HarmonyOS设备。 对象 可缺省,缺省值为空。
phone 标识手机的应用配置信息。 对象 可缺省,缺省值为空。
tablet 标识平板的应用配置信息。 对象 可缺省,缺省值为空。
tv 标识智慧屏特有的应用配置信息。 对象 可缺省,缺省值为空。
car 标识车机特有的应用配置信息。 对象 可缺省,缺省值为空。
wearable 标识智能穿戴特有的应用配置信息。 对象 可缺省,缺省值为空。

上表中各类设备对象的内部结构说明请见表2。

deviceConfig设备对象内部结构

表2 deviceConfig设备对象内部结构说明

属性名称 含义 数据类型 是否可缺省
process 标识应用或者Ability的进程名。如果在deviceConfig标签下配置了process标签,则该应用的所有Ability都运行在这个进程中。如果在abilities标签下也为某个Ability配置了process标签,则该Ability就运行在这个进程中。该标签最大长度为31。 字符串 可缺省,缺省值为空。
keepAlive 标识应用是否始终保持运行状态,仅支持系统应用配置,三方应用配置不生效。该标签为布尔类型,可缺省,缺省值为false,如果配置为true,应用将始终保持为运行状态,并在系统启动的时候被系统驱动起来,应用进程退出后,系统也会重新启动应用进程。 布尔值 可缺省,缺省值为false。
supportBackup 标识应用是否支持备份和恢复。如果配置为"false",则不支持为该应用执行备份或恢复操作。 布尔值 可缺省,缺省值为false。
compressNativeLibs 标识libs库是否以压缩存储的方式打包到HAP。如果配置为"false",则libs库以不压缩的方式存储,HAP在安装时无需解压libs,运行时会直接从HAP内加载libs库。 布尔值 可缺省,缺省值为true。
network 标识网络安全性配置。该标签允许应用通过配置文件的安全声明来自定义其网络安全,无需修改应用代码。 对象 可缺省,缺省值为空。

network对象的内部结构

表3 network对象的内部结构说明

属性名称 含义 数据类型 是否可缺省
cleartextTraffic 标识是否允许应用使用明文网络流量(例如,明文HTTP)。true:允许应用使用明文流量的请求。false:拒绝应用使用明文流量的请求。 布尔值 可缺省,缺省值为false。
securityConfig 标识应用的网络安全配置信息。 对象 可缺省,缺省为空。

securityConfig对象的内部结构

表4 securityConfig对象的内部结构说明

属性名称 含义 数据类型 是否可缺省
domainSettings 标识自定义的网域范围的安全配置,支持多层嵌套,即一个domainSettings对象中允许嵌套更小网域范围的domainSettings对象。 对象类型 可缺省,缺省为空。

domainSettings对象内部结构

表5 domainSettings对象内部结构说明

属性名称 含义 数据类型 是否可缺省
cleartextPermitted 标识自定义的网域范围内是否允许明文流量传输。当cleartextTraffic和security同时存在时,自定义网域是否允许明文流量传输以cleartextPermitted的取值为准。true:允许明文流量传输。false:拒绝明文流量传输。 布尔类型 可缺省,缺省值为空。
domains 标识域名配置信息,包含两个参数:subdomains和name。subdomains(布尔类型):表示是否包含子域名。如果为"true",此网域规则将与相应网域及所有子网域(包括子网域的子网域)匹配。否则,该规则仅适用于精确匹配项。name(字符串):表示域名名称。 对象数组 可缺省,缺省值为空。

deviceConfig示例文章来源地址https://www.toymoban.com/news/detail-775391.html

"deviceConfig": {
  "default": {
    "process": "com.example.test.example",
    "supportBackup": false,
    "network": {
      "cleartextTraffic": true,
      "securityConfig": {
        "domainSettings": {
          "cleartextPermitted": true,
          "domains": [
            {
              "subdomains": true,
              "name": "example.ohos.com"
            }
          ]
        }
      }
    }
  }
}

到了这里,关于HarmonyOS应用配置文件app对象内部结构,deviceConfig内部结构(FA模型)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 鸿蒙HarmonyOS应用开发:扫描仪文件扫描

    华为鸿蒙HarmonyOS已经发展到4.0,使用ArkTS作为开发语言。这篇文章结合Dynamsoft Service开发一个简单的鸿蒙应用,用来获取办公室里连接PC的扫描仪( 惠普,富士通,爱普生,等 ),把文档扫描到手机里。 Dynamsoft Service 在连接着扫描仪的电脑上安装Dynamsoft Service。安装包可以满足各

    2024年02月07日
    浏览(72)
  • HarmonyOS/OpenHarmony元服务开发-配置卡片的配置文件

    卡片相关的配置文件主要包含FormExtensionAbility的配置和卡片的配置两部分: 1.卡片需要在module.json5配置文件中的extensionAbilities标签下,配置FormExtensionAbility相关信息。FormExtensionAbility需要填写metadata元信息标签,其中键名称为固定字符串“ohos.extension.form”,资源为卡片的具体配

    2024年02月14日
    浏览(31)
  • Java Web3J :使用web3j调用自己的智能合约,返回一个内部有数组的对象结构时出现NPE问题

    之前有写过一篇文章Java Web3J :使用web3j调用自己的智能合约的方法(教程),当时只是简单的方法调用,也不涉及到什么复杂的数据类型,入参是long类型,出参是String类型。 遇到这个问题是因为有一个方法,需要通过提案的治理id,查询链上提案数据,这个就需要接收提案

    2024年01月19日
    浏览(62)
  • HarmonyOS鸿蒙应用开发(三、轻量级配置存储dataPreferences)

    在应用开发中存储一些配置是很常见的需求。在android中有SharedPreferences,一个轻量级的存储类,用来保存应用的一些常用配置。在HarmonyOS鸿蒙应用开发中,实现类似功能的也叫首选项,dataPreferences。 ohos.data.preferences (用户首选项) dataPreferences(首选项),为应用提供Key-Value键

    2024年01月22日
    浏览(92)
  • 纯鸿蒙!华为HarmonyOS NEXT不再兼容安卓应用,无法安装Apk文件

            8月7日消息,近日,华为举行2023年华为开发者大会(HDC.Together)上,除了发布HarmonyOS 4、全新升级的鸿蒙开发套件外,华为还带来了HarmonyOS NEXT开发者预览版。 据了解,HarmonyOS NEXT开发者预览版8月面向合作企业开发者开放,2024年第一季度面向所有开发者开放。  

    2024年02月09日
    浏览(58)
  • RFSoC应用笔记 - RF数据转换器 -08- RFSoC关键配置之RF-DAC内部解析(二)

    RFSoC中最重要的部分是射频直采ADC和DAC的配置,因此了解内部相关原理结构可以帮助我们更好理解相关功能配置参数含义。本文参考官方手册,主要对RF-DAC 奈奎斯特区操作、逆sinc滤波器以及数据通路的相关操作进行介绍。 每个 RF-DAC 都可以通过使用混合模式功能优化其在第二

    2024年02月04日
    浏览(63)
  • RFSoC应用笔记 - RF数据转换器 -05- RFSoC关键配置之RF-ADC内部解析(三)

    RFSoC中最重要的部分是射频直采ADC和DAC的配置,因此了解内部相关原理结构可以帮助我们更好理解相关功能配置参数含义。本文参考官方手册,主要对RFSoC ADC的校准机制进行介绍。 Zynq UltraScale+ RFSoC 中的每个 RF-ADC 都建立在交错架构中的多个子 RF-ADC 之上。 交织过程的性质要求

    2024年02月15日
    浏览(43)
  • Telegraf介绍和使用(安装、使用、内部数据结构-InfluxDB行协议、配置、架构、Glob的使用、插件的集成和实现、集合Prometheus)

    Telegraf是一个基于插件的开源指标采集工具。本身是为InfluxDB(一款时序数据库)量身打造的数据收集器,但是它过于优秀,能够将抓取的数据写到很多地方,尤其在时序数据库领域,很多时序数据库都能够与它配合使用。通常,它每隔一段时间抓取一批指标数据(比如机器的

    2024年02月12日
    浏览(58)
  • 关于uni-app中uni-forms表单验证时“多级结构对象数据”如何做数据校验的解决方案

    这几天在做uni-app表单验证时遇到了一个问题,按官方文档给出的方法,当需要数据校验时,只需要 1.为uni-forms中的\\\" modelValue \\\"数据设置“ :rules ”对应 2.“ uni-forms-item ”的name和“ uni-easyinput ”中“v-model”中的key和“ rules ”中的key相同 就可以对该项“uni-easyinput”做数据校验

    2023年04月09日
    浏览(135)
  • 苹果手机的ios系统ipa应用app文件怎么安装手机上

    当您有一个.ipa安装包时,您可以使用以下方法将其安装到手机上: 方法1:使用Xcode 连接设备:使用USB将您的iPhone或iPad设备连接到您的电脑。 打开Xcode:打开Xcode开发工具。 选择设备:在Xcode的顶部工具栏中,选择您连接的设备作为目标设备。 导入.ipa文件:在Xcode左侧导航栏

    2024年02月04日
    浏览(74)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包