鸿蒙开发:了解应用级配置信息

server/2025/3/16 19:53:04/

前言

本文基于Api13。

在创建任意一个项目后,我们会发现,都会默认创建一个AppScope目录,这个目录就是我们的应用级配置信息的地方,它是创建项目后自动生成的,不可进行删除的,它的作用也很明显,一是用于存放全局的资源,二是配置应用的相关信息。

目录结构

默认的目录结构如下图所示,app.json5用于配置应用的相关信息,比如包名,应用图标等,resources是资源目录,子目录base是资源默认目录,再往下element目录是用于存放字符串、颜色、布尔值等基础元素,media用于存放图片、音频、视频等非文本格式的文件。

app.json5文件

应用的相关配置信息,默认的配置如下:

{"app": {"bundleName": "com.abner.demo","vendor": "example","versionCode": 1000000,"versionName": "1.0.0","icon": "$media:app_icon","label": "$string:app_name"}
}

字段相关概述:

属性

概述

bundleName

标识应用的Bundle名称,用于标识应用的唯一性,命名规则如下 :

- 必须为以点号(.)分隔的字符串,且至少包含三段,每段中仅允许使用英文字母、数字、下划线(_)。

- 首段以英文字母开头,非首段以数字或英文字母开头,每一段以数字或者英文字母结尾。

- 不允许多个点号(.)连续出现。

- 字符串最小长度为7字节,最大长度128字节。

- 推荐采用反域名形式命名(如“com.example.demo”,建议第一级为域名后缀com,第二级为厂商/个人名,第三级为应用名,也可以多级)。

对于随系统源码编译的应用,建议命名为“com.ohos.demo”形式,其中的ohos标识系统应用。

vendor

标识对应用开发厂商的描述,取值为长度不超过255字节的字符串。

versionCode

标识应用的版本号,取值为小于2^31次方的正整数。此数字仅用于确定某个版本是否比另一个版本更新,数值越大表示版本越高。

开发者可以将该值设置为任何正整数,但是必须确保应用的新版本都使用比旧版本更大的值。

versionName

标识向用户展示的应用版本号。

取值为长度不超过127字节的字符串,仅由数字和点构成,推荐采用“A.B.C.D”四段式的形式。四段式推荐的含义如下所示。

第一段:主版本号/Major,范围0~99,重大修改的版本,如实现新的大功能或重大变化。

第二段:次版本号/Minor,范围0~99,表示实现较突出的特点,如新功能添加或大问题修复。

第三段:特性版本号/Feature,范围0~99,标识规划的新版本特性。

第四段:修订版本号/Patch,范围0~999,表示维护版本,如修复bug。

icon

标识应用的图标,取值为图标资源文件的索引。

label

标识应用的名称,取值为字符串资源的索引,字符串长度不超过63字节。

 

resources目录

资源目录,如果你的项目有多个Module,一些共用的资源可以统一放到这里,比如图片资源,颜色,字符串等等。

base是默认的目录,除了base之外,你可以创建其它的目录,比如国际化语言设置,颜色模式设置等等。

element目录下,可以创建的资源文件比较多,比如颜色,字符串等等,具体可创建如下:

表示元素资源,以下每一类数据都采用相应的JSON文件来表征(目录下仅支持文件类型)。- boolean,布尔型- color,颜色- float,浮点型,范围是-2^128-2^128- intarray,整型数组- integer,整型,范围是-2^31-2^31-1- plural,复数形式- strarray,字符串数组- string,字符串

简单举例

因为是全局的,任何的Module下都可以直接的获取到资源,比如我定义了一个字符串。

代码中,可以和本Module使用方式一样,直接获取即可。

其它资源调用,和以上的使用方式基本一致。

总结

在实际的开发中,如果有共用的资源,建议大家都放到AppScope目录下,对于一些应用级别的信息,比如应用的名字,还有应用的图标,虽然说在Moulde下也可以配置,但是为了更方便的管理,这里比较推荐以AppScope目录下的app.json5为主,当然了,只是推荐,实际当中,两者都可以实现,大家选择其中一种方式即可。


http://www.ppmy.cn/server/175509.html

相关文章

Linux 中的管道:进程间数据传输的利器

个人主页:chian-ocean 文章专栏-Linux 前言 **进程间通信(Inter-Process Communication, IPC)**是指在操作系统中,不同进程之间交换数据或信息的方式。由于每个进程都有自己的地址空间,直接访问另一个进程的数据是不…

Word 小黑第17套

对应大猫18 在目录前面添加一个空白页 点布局 -分隔符 -下一页 制作封面图片移动不了 调整一下图片的环绕文字 对文档内容进行分节:在要分节内容的前面操作 布局 -分隔符 -下一页 (通过导航窗格) 修改定义新编号样式 将另一个文档中的样式…

基于SpringBoot的Mybatis和纯MyBatis项目搭建的区别

【由于之前学习MyBatis的时候是跟着视频敲的纯MyBatis项目,以至于在突然看到别人在SpringBoot项目里搭建MyBatis方式的时候很懵比…特此文字形式记录一下区别(应该还有好多种其他方式是我不知道的,主要应该就是要知道关键的流程步骤&#xff…

翻硬币问题

小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币,用“”表示正面,用“o”表示反面(是小写字母,不是零)。比如可能情形是“**oo***ooo”,如果同时翻转左边的两个硬币,则变为“oooo*…

音视频入门基础:RTP专题(19)——FFmpeg源码中,获取RTP的音频信息的实现(下)

本文接着《音视频入门基础:RTP专题(18)——FFmpeg源码中,获取RTP的音频信息的实现(上)》,继续讲解FFmpeg获取SDP描述的RTP流的音频信息到底是从哪个地方获取的。本文的一级标题从“四”开始。 四…

钉钉项目报销与金蝶系统高效集成技术解析

钉钉报销【项目报销类】集成到金蝶付款单【画纤骨】的技术实现 在企业日常运营中,数据的高效流转和准确对接是提升业务效率的关键。本文将分享一个具体的系统对接集成案例:如何将钉钉平台上的项目报销数据无缝集成到金蝶云星空的付款单系统中。本次方案…

第四章-PHP文件包含

PHP文件包含 一,PHP文件包含简介 在 PHP 开发中,文件包含(File Inclusion)是一种代码复用和组织的重要机制,其核心目的是将代码模块化、提高可维护性。 文件包含的作用 1. 代码复用与模块化 拆分重复代码&#xff…

【后端】【django drf】Django DRF API 编写规范(程序设计规则)

Django DRF API 编写规范(程序设计规则) 为了确保 Django DRF 代码的可维护性、可扩展性和高质量,API 设计不仅要符合 RESTful 规范,还需要遵循一定的程序设计规则。以下是一些关键的编写规范,以保证代码的清晰性、可…