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示例

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/583678.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

存算分离降本增效,StarRocks 助力聚水潭 SaaS 业务服务化升级

作者:聚水潭数据研发负责人 溪竹 聚水潭是中国领先的 SaaS 软件服务商,核心产品是电商 ERP,协同350余家电商平台,为商家提供综合的信息化、数字化解决方案。公司是偏线下商家侧的 toB 服务商,员工人数超过3500&#xf…

Arthas常用命令

Arthas常用命令 help 显示Arthas帮助auth 对当前会话进行身份验证keymap 显示指定连接的所有可用的keymap。sc 搜索JVM加载的所有类sm 搜索JVM加载类的方法classloader 显示classloader信息jad 分解类getstatic 显示类的静态字段monitor 监…

Ubuntu安装K8S(1.28版本,基于containrd)

原文网址:Ubuntu安装K8S(1.28版本,基于containrd)-CSDN博客 简介 本文介绍Ubuntu安装K8S的方法。 官网文档:这里 1.安装K8S 1.让apt支持SSL传输 sudo apt-get update sudo apt-get -y install apt-transport-https ca-certi…

计算机图形学光线追踪大作业C++基于Optix为框架实现的光线追踪算法合集,含直射光阴影效果、漫反射阴影效果、镜面反射效果等示例

MineRay 使用Optix为框架实现的光线追踪算法。 包含4个示例,直射光阴影效果、漫反射阴影效果、镜面反射效果、折射效果 环境需求 本项目在Windows 10中测试,以下环境为Windows中的环境 CUDA 10.1 OptiX 7 SDK cmake 编译方式 使用cmake编译 打开Mi…

TCP连接数据包解析

1、TCP的SYN标志位,它表示一个TCP连接的初始同步请求。这条信息描述了一个从端口184到端口80的TCP连接请求,其中包含了一些TCP连接的参数和标志位。这条信息的各个部分内容: 184**->80**: 这表示源端口是184**,目标端口是80**…

nbuntu 18.04 终端打开后无内容

1. 问题 2. 删除bash并重新安装 删除: sudo rm /bin/bash (https://blog.csdn.net/u011128515/article/details/22896837) 再安装: bash文件电脑中是有下载的deb文件的,按上图路径找到了并下载了出来 ar t bash_4.4…

反转链表、链表的中间结点、合并两个有序链表(leetcode 一题多解)

一、反转链表 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 思路一:翻转单链表指针方向 这里解释一下三个指针的作用: n1&#xff1…

如何在无公网IP环境下远程访问Serv-U FTP服务器共享文件

文章目录 1. 前言2. 本地FTP搭建2.1 Serv-U下载和安装2.2 Serv-U共享网页测试2.3 Cpolar下载和安装 3. 本地FTP发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 科技日益发展的今天,移动电子设备似乎成了我们生活的主角,智能…

英飞凌TC3xx之一起认识GTM系列(三)重点说一说GTM中断

英飞凌TC3xx之一起认识GTM系列(三)重点说一说GTM中断 GTM中断电平中断模式脉冲中断模式脉冲通知中断模式(常用)单脉冲中断模式GTM中断集中方法GTM中断对比GTM中断寄存器ATOM中断配置INT_TRIGxIRQ_NOTIFYIRQ_ENIRQ_FORCINTIRQ_MODETIM中断配置

Linux文件和目录管理命令---- tail 命令

Linux 中的 tail 命令是一个非常实用的工具,主要用于查看文本文件的最后部分。下面将详细介绍 tail 命令的不同用法 1. 基本用法 tail 命令最常见的用法是显示文件的最后几行。 命令: tail filename.txt结果: 这将显示 filename.txt 文件的最后 10 行。 2. 指定行数 可…

Java正则表达式

本文主要描述Java正则表达式(Regular Expression),其作用是预先定义一个规则,然后,使用该规则匹配输入的字符串是否符合定义的规则,也可以从匹配的输出中提取字符串,正则表达式的常用使用场景包…

SSH是什么?有什么使用场景。

—ChatGPT-3.5 SSH(Secure Shell)是一种用于在网络上安全传输数据的协议。它主要用于在不安全的网络中提供加密的通信渠道,以防止窃听和数据篡改。SSH最初是为替代不安全的Telnet和FTP而设计的,但它现在被广泛用于安全地连接和管…

【Electron】富文本编辑器之文本粘贴

由于这个问题导致,从其他地方复制来的内容 粘贴发送之后都会多一个 换行 在发送的时候如果直接,发送innerHTML 就 可以解决 Electron h5 Andriod 都没问题,但是 公司的 IOS 端 不支持,且不提供支持(做不了。&#xff…

UE5.1_移动端运行问题梳理

UE5.1_移动端运行问题梳理 目录 ue_移动端运行问题梳理 问题1.

Unity 旋转跟随

Unity 使用任意一个局部轴指向目标 效果: 主要用于在编辑器中可视化对象的朝向,同时提供了选择不同轴向的功能。在运行时,物体将根据所选择的轴向朝向目标,并在 Scene 视图中绘制一个带箭头的圆环。 定义轴向枚举:…

一起玩儿物联网人工智能小车(ESP32)——13. 用ESP32的GPIO控制智能小车运动起来(一)

摘要:本文更深入的讲述了GPIO的相关知识,并完成了导线连接工作,为下一步的软件开发做好了准备。 通用输入输出端口(GPIO:General Purpose Input/Output Port),在前面已经有了初步的介绍&#xf…

三天吃透Spring面试八股文

目录: Spring的优点Spring 用到了哪些设计模式?什么是AOP?AOP有哪些实现方式?Spring AOP的实现原理JDK动态代理和CGLIB动态代理的区别?Spring AOP相关术语Spring通知有哪些类型?什么是IOC?IOC的…

flutter学习-day19-国际化支持

文章目录 1. 介绍2. 使用3. 获取当前区域Locale4. 监听语言切换5. 实现国际化5-1. 添加依赖5-2. 创建arb文件5-3. 添加provider状态管理5-4. 完成切换 本文学习和引用自《Flutter实战第二版》:作者:杜文 1. 介绍 默认情况下,Flutter SDK中的…

svn外网打不开url地址怎么解决

在家或者出差在外经常会有连接到公司内部SVN服务器的需求, 但是 svn外网打不开url地址怎么解决?如何才能连接到公司内部SVN服务器?今天小编教你一招,在本地SVN服务的内网IP端口用快解析软件添加映射,一步就可以提供让公…

Python模块、包与面向对象综合案例

Python模块、包与面向对象综合案例 一、Python内置模块 1、什么是Python模块 Python 模块(Module),是一个Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。模块能定义函数,类和变量,模块里也能包含可执行的代码。 2、模块的分类 在Python中,模块通常可…