写点什么

开源一夏|OpenHarmony 中 FA 模型中应用包结构的参数

作者:坚果
  • 2022 年 8 月 14 日
    浙江
  • 本文字数:2144 字

    阅读完需:约 7 分钟

今天我们来一起了解一下 FA 模型中应用包结构的参数。


作者“坚果,华为云享专家,InfoQ 签约作者,润和软件 KOL 专家,电子发烧友鸿蒙 MVP,51CTO 博客专家博主,阿里云博客专家,开源项目 gin-vue-admin 成员之一。

config.json

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


  • app :表示应用的全局配置信息。同一个应用的不同 HAP 包的 app 配置必须保持一致。

  • deviceConfig:表示应用在具体设备上的配置信息。

  • module:表示 HAP 包的配置信息。该标签下的配置只对当前 HAP 包生效


接下来我们对三个对象一一了解。

app 对象内部结构

app 对象包含应用全局配置信息。


app 对象的内部由四部分组成,包括 bundleName,vender,version,apiVersion,接下来对这四部分进行了解


  • bundleName:应用的包名,用于标识应用的唯一性,字母开头,支持字母、数字、下划线(_)和点号(.)

  • vender:对应用开发厂商的描述。

  • version:应用的版本信息。

  • apiVersion:标识应用程序所依赖的 OpenHarmony API 版本。

version

version,应用的版本信息,主要由 name,code 和 minCompatibleVersionCode 组成。


  • name:应用的版本号,用于向用户呈现,API6 版本起:推荐采用四段式数字版本号,如 A.B.C.D,其中 A、B、C 取值为 0-99 范围内的整数,D 的取值为 0-999 范围内的整数。 A 段,一般表示主版本号(Major)。 B 段,一般表示次版本号(Minor)。 C 段,一般表示特性版本号(Feature)。 D 段,一般表示修订版本号(Patch)。

  • code:应用的版本号,仅用于 OpenHarmony 管理该应用,不对应用的终端用户呈现,API6 版本起:code 的取值不与 version.name 字段的取值关联,开发者可自定义 code 取值,取值范围为 2^31 以内的非负整数,但是每次应用版本的更新,均需要更新 code 字段的值,新版本 code 取值必须大于旧版本 code 的值。

  • minCompatibleVersionCode:表示应用可兼容的最低版本号,用于跨设备场景下,判断其他设备上该应用的版本是否兼容。 格式与 version.code 字段的格式要求相同。

apiVersion

apiVersion 由 compatible,target,以及 releaseType 组成。


  • compatible:运行应用所需要的最低 API 版本,取值范围为 0~2147483647。

  • target:用于标识应用运行所需的目标 API 版本,取值范围为 0~2147483647。

  • releaseType:用于标识应用运行所需的目标 API 版本的类型。

deviceConfig 对象内部结构

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


  • default:表示所有设备通用的应用配置信息。

  • tablet:表示平板的应用配置信息。

  • tv:表示智慧屏特有的应用配置信息。

  • car:表示车机特有的应用配置信息。

  • wearable:表示智能穿戴特有的应用配置信息。

deviceConfig 对象的内部结构说明

default、tablet、tv、car、wearable 等对象的内部结构说明,


  • process:表示应用或者 Ability 的进程名。如果在 deviceConfig 标签下配置了 process 标签,则该应用的所有 Ability 都运行在这个进程中。如果在 abilities 标签下也为某个 Ability 配置了 process 标签,则该 Ability 就运行在这个进程中。标签最大长度为 31。

  • supportBackup:布尔值,表示应用是否支持备份和恢复。,默认 false,表示不支持为该应用执行备份或恢复操作。

  • compressNativeLibs:表示 libs 库是否以压缩存储的方式打包到 HAP 包。如果配置为"false",则 libs 库以不压缩的方式存储,HAP 包在安装时无需解压 libs,运行时会直接从 HAP 内加载 libs 库。

  • directLaunch:指定设备被锁定时是否可以启动应用程序。如果要在不解锁设备的情况下启动应用程序,请将此设备设置为"true"。运行 OHOS 的设备不支持此属性。

  • ark:标识 maple 配置信息

  • network:表示网络安全性配置。该标签允许应用通过配置文件的安全声明来自定义其网络安全,无需修改应用代码。

ark

由 reqVersion 和 flag 组成


  • reqVersion:表示支持应用的 maple 版本号,不可缺省。具体由 compatible 和 target 组成

  • compatible:表示支持应用程序的最低 maple 版本

  • target:指定 maple 应用程序的类型,采用 32 位无符号整形表示

  • flag:指定 maple 应用程序的类型,不可缺省且只能为"m",“mo”,“z”。

network 对象的内部结构说明

network 由 cleartextTraffic 和 secutityConfig 组成。


  • cleartextTraffic:布尔值,默认 false,表示是否允许应用使用明文网络流量(例如,明文 HTTP)。 true:允许应用使用明文流量请求。 false:拒绝应用使用明文流量的请求。

  • securityConfig:表示应用的网络安全配置信息。由 domainSettings 以及他的两个子属性 cleartextPermitted 和 domains 组成。

  • domainSettings:表示自定义的网域范围的安全配置,支持多层嵌套,即一个 domainSettings 对象中允许嵌套更小网域范围的 domainSettings 对象。

  • cleartextPermitted:表示自定义的网域范围内是否允许明文流量传输。当 cleartextTraffic 和 security 同时存在时,自定义网域是否允许明文流量传输以 cleartextPermitted 的取值为准。 true:允许明文流量传输。 false:拒绝明文流量传输。

  • domains:表示域名配置信息,包含两个参数:subdomains 和 name。 subdomains(布尔类型):表示是否包含子域名。如果为"true",此网域规则将与相应网域及所有子网域(包括子网域的子网域)匹配。否则,该规则仅适用于精确匹配项。 name(字符串):表示域名名称。

发布于: 刚刚阅读数: 3
用户头像

坚果

关注

此间若无火炬,我便是唯一的光 2020.10.25 加入

公众号:“大前端之旅”,华为云享专家,InfoQ签约作者,51CTO博客首席体验官,专注于大前端技术的分享,包括Flutter,小程序,安卓,VUE,JavaScript。

评论

发布
暂无评论
开源一夏|OpenHarmony中FA模型中应用包结构的参数_开源_坚果_InfoQ写作社区