鸿蒙开发入门:app对象内部结构

2023-12-18

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、tv、car、wearable等属性。default标签内的配置适用于所有通用设备,其他设备类型如果有特殊的需求,则需要在该设备类型的标签下进行配置。

deviceConfig对象内部结构

表1 deviceConfig对象内部结构说明

属性名称 含义 数据类型 是否可缺省
default 能够使用全部系统能力的HarmonyOS设备。 对象 可缺省,缺省值为空。
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"            }          ]        }      }    }  }}

最后

这里整理了一份《鸿蒙零基础入门学习指南》,希望能对那些想要学习鸿蒙,但是有没有方向的人提供一点帮助。本文档适用于HarmonyOS应用开发的初学者(由于文档内容过多,因此为了避免影响到大家的阅读体验,在此只以截图展示部分内容,详细完整版的看文末有免费的获取方式!)

《鸿蒙零基础入门学习指南》

目录

在这里插入图片描述

一、快速入门

适用于HarmonyOS应用开发的初学者。通过构建一个简单的具有页面跳转/返回功能的应用,快速了解工程目录的主要文件,熟悉HarmonyOS应用开发流程。

  • 开发准备
    • 基本概念
    • 工具准备
  • 构建第一个ArkTS应用(Stage模型)
  • 构建第一个ArkTS应用(FA模型)
  • 构建第一个JS应用(FA模型)

在这里插入图片描述

二、开发基础知识

  • 应用程序包基础知识
    • 应用程序包概述
    • 应用程序包结构
    • 应用程序包多HAP机制
    • 应用程序包安装和卸载流程
    • 应用程序包更新流程
    • 共享包
    • 应用程序包快速修复
  • 应用配置文件(Stage模型)
    • 应用配置文件概述(Stage模型)
    • app.json5配置文件
    • module.json5配置文件
  • 应用配置文件概述(FA模型)
    • 应用配置文件概述(FA模型)
    • app对象内部结构
    • deviceConfig内部结构
    • module对象内部结构

在这里插入图片描述

三、资源分类与访问

应用开发过程中,经常需要用到颜色、字体、间距、图片等资源,在不同的设备或配置中,这些资源的值可能不同。

  • 资源分类与访问
    • 资源分类
    • 资源目录
    • 资源组目录
  • 创建资源目录和资源文件
    • 创建资源目录和资源文件
    • 创建资源目录
    • 创建资源文件
  • 资源访问
    • 应用资源
    • 系统资源
    • 资源匹配
      在这里插入图片描述

四、学习ArkTs语言

ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在 TypeScript (简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集。因此,在学习ArkTS语言之前,建议开发者具备TS语言开发能力。

  • 初识ArkTS语言
  • 基本语法
    • 基本语法概述
    • 声明式UI描述
    • 自定义组件
  • 状态管理
  • 其他状态管理
    • 其他状态管理概述
    • @Watch装饰器:状态变量更改通知
    • $$语法:内置组件双向同步
  • 渲染控制
    • 渲染控制概述
    • if/else:条件渲染
    • ForEach:循环渲染
    • LazyForEach:数据懒加载

在这里插入图片描述

扫描下方二维码免费领取,《鸿蒙5.0零基础入门学习指南》

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

鸿蒙开发入门:app对象内部结构 的相关文章

随机推荐

  • 干货下载丨不分业态、不关注核心需求,怎么做得好项目管理?!

    项目管理 装备制造业的破局利刃 对于装备制造行业而言 每一笔订单都是 非标定制 小批量制造 这种特性决定了其行业企业普遍存在 新品开发周期长 生产效率低 质量不稳定 交货期不稳定 成本预算难控制 非标品报价慢 等问题 如何提升企业的管理水平
  • 智能机器人:未来与现实的交汇

    导言 人工智能智能机器人是当今科技领域的璀璨明珠 将技术 感知和智能相结合 呈现出前所未有的发展态势 人工智能助力的智能机器人代表了科技融合的巅峰 其强大的感知 学习和决策能力正深刻改变着我们的生活 本文将深入探讨人工智能智能机器人的定义
  • 网信办新规“1小时上报”,赛宁网安积极响应!

    12月8日 国家互联网信息办公室起草发布了 网络安全事件报告管理办法 征求意见稿 以下简称 办法 办法 明确规定了运营者在发生网络安全事件时 应当及时启动应急预案进行处置 属于较大 重大或特别重大网络安全事件的 应当于1小时内进行报告 办法
  • 【Linux】进程周边005之环境变量

    樊梓慕 个人主页 个人专栏 C语言 数据结构 蓝桥杯试题 LeetCode刷题笔记 实训项目 C Linux 每一个不曾起舞的日子 都是对生命的辜负 目录 前言 1 环境变量是什么 1 1查看环境变量的方法
  • 通过Python运算符来了解基本操作和语法规则

    Python运算符是一种用于执行特定操作的符号 它们可以用于执行各种数学运算 比如加法 减法 乘法和除法 在Python中 有几种不同类型的运算符 包括算术运算符 比较运算符 逻辑运算符 位运算符和赋值运算符 每种运算符都有其特定的用途和语
  • oracle数据库密码有限期查询

    SELECT FROM dba profiles WHERE resource name PASSWORD LIFE TIME oracle数据库密码有限期修改为 无限期 ALTER PROFILE DEFAULT LIMIT PASSWO
  • 扬帆证券:证券约定购回是什么?包括哪些基本要素?

    证券约好购回是什么 证券约好购回是指投资者按约好价格向券商卖出标的证券 并约好好在未来的某一时期按照另一约好价格从券商手中买回该标的证券的生意行为 该生意目的是为了帮助投资者的进行短期的资金融通 证券约好购回包括了初始生意和购回生意共两次生
  • equals()和hashcode() 方法的区别

    equals和hashCode方法主要的区别在于 性能 可靠性 对于需要大量并且快速对比 如果都用equals比较效率太低 所以每当需要对象比较时 先用hashCode对比 如果hashCode值不一样 两对象肯定不相等 也就没必要再用eq
  • jQuery 动画 - animate() 方法

    jQuery animate 方法用于创建自定义动画 语法 selector animate params speed callback 必需的params参数定义形成动画的CSS属性 可选的speed参数规定效果的时长 它可以取以下值 s
  • 题解 | #平均活跃天数和月活人数#

    金融科技岗分享 欢聚shopline 凉 又遇毁到offer 爱奇艺互动产品运营实习面经 百度大搜2024校招补录 搜索时效性团队工作职责 1 通过query理解 召回 排序全链路的优化 持续优化百度搜索时效排序效果2 持续探索落地最前沿的
  • SQL使用WITH ROLLUP子句计算每个分组的合计值

    先来看一个示例的SQL查询语句 假设我们有一个名为t sales的表 记录了销售订单的信息 包括订单日期 销售额等字段 我们想要按照订单日期进行分组 并计算每天的销售总额和总订单数 同时还希望得到整体的销售总额和订单数 SELECT IFN
  • 扬帆证券:长线资金积极涌入 新能源汽车产业链获青睐

    近日 广汽集团与中国银行 广州工业出资控股集团有限公司举行了战略协作签约仪式 三方将作为有限合伙人按33 4 33 3 33 3 的份额认缴出资 建议建立广州新祺智联股权出资基金 据悉 该基金总规划为300亿元 首期规划为100亿元 由广汽
  • jQuery - 获取内容和属性

    jQuery拥有可操作HTML元素和属性的强大方法 jQuery DOM操作 jQuery中非常重要的部分 就是操作DOM的能力 jQuery提供一系列与DOM相关的方法 这使访问和操作元素和属性变得很容易 lamp DOM Documen
  • Andriod:andriod手机屏幕坐标系

    如图所示 左上角为坐标原点 越向下 y值越大 越向右 x值越大
  • 玩转 TableAgent 数据智能分析

    一 什么是数据智能分析 数据智能分析 是指利用先进的技术和工具对 大量数据 进行收集 整理 分析和挖掘 以获取有益的信息和见解 这种分析通常涉及 人工智能 机器学习 数据挖掘和统计分析 等技术 旨在揭示数据背后隐藏的模式 关联和趋势 以帮助
  • AtCoder Beginner Contest 332 G. Not Too Many Balls(最大流转最小割 dp)

    题目 n n lt 500 种球 第i种有ai 0 lt ai lt 1e12 个球 m m lt 5e5 个盒子 第j个能放bj 0 lt bj lt 1e12 个球 特别地 第j个盒子最多能放i j个第i种球 求m个盒子能放的最多的球的
  • 扬帆证券:优先股有哪些限制?怎样才能持有优先股?

    优先股有哪些束缚 持有优先股相较于持有一般股 在行使一些公司权力时会受到束缚 如优先股持股股东不能行使选举权及被选举权 虽然对公司事务可以提出建议但无表决权等 另外 由于优先股股息率事前设定 也就是股息固定 那么不论公司市值怎样上涨 股票价
  • 中国首家!腾讯云入选Gartner®视频平台服务市场指南代表厂商

    近日 Gartner正式发布 Market Guide for Video Platform Services 视频平台服务市场指南 下称 指南 凭借领先的音视频技术和产品组合优势 腾讯云成为中国首家且唯一入选的代表厂商 腾讯云VPS一站式
  • 人工智能深度学习:探索智能的深邃奥秘

    导言 人工智能深度学习作为当今科技领域的明星 正引领着智能时代的浪潮 深度学习和机器学习作为人工智能领域的两大支柱 它们之间的关系既有协同合作 又存在着显著的区别 本文将深入研究深度学习在人工智能领域的角色 以及其在各行各业中的深远影响 研
  • 鸿蒙开发入门:app对象内部结构

    app对象内部结构 app对象包含应用全局配置信息 内部结构如下 表1 app对象内部结构说明 属性名称 含义 数据类型 是否可缺省 bundleName 标识应用的Bundle名称 用于标识应用的唯一性 Bundle名称是由字母 数字 下