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语言
-
基本语法
-
状态管理
-
其他状态管理
-
其他状态管理概述
-
@Watch装饰器:状态变量更改通知
-
$$语法:内置组件双向同步
-
渲染控制
-
渲染控制概述
-
if/else:条件渲染
-
ForEach:循环渲染
-
LazyForEach:数据懒加载
扫描下方二维码免费领取,《鸿蒙5.0零基础入门学习指南》