当前位置: 首页 > news >正文

HarmonyOS鸿蒙学习笔记(27)resources目录说明

resources目录说明

  • 目录结构
  • 目录说明
    • base目录
    • rawfile目录
    • resfile目录
    • 资源组目录
  • 参考资料

目录结构

在HarmonyOS的项目结构中,有resources目录,用于存放应用/服务所用到的资源文件,如图形、多媒体、字符串、布局文件等。关于资源文件,详见资源分类与访问。其结构如下:
在这里插入图片描述
项目目录结构如下:

resources
|---base
|   |---element
|   |   |---string.json
|   |---media
|   |   |---icon.png
|   |---profile
|   |   |---test_profile.json
|---en_US  // 默认存在的目录,设备语言环境是美式英文时,优先匹配此目录下资源
|   |---element
|   |   |---string.json
|   |---media
|   |   |---icon.png
|   |---profile
|   |   |---test_profile.json
|---zh_CN  // 默认存在的目录,设备语言环境是简体中文时,优先匹配此目录下资源
|   |---element
|   |   |---string.json
|   |---media
|   |   |---icon.png
|   |---profile
|   |   |---test_profile.json
|---en_GB-vertical-car-mdpi // 自定义限定词目录示例,由开发者创建
|   |---element
|   |   |---string.json
|   |---media
|   |   |---icon.png
|   |---profile
|   |   |---test_profile.json
|---rawfile // 其他类型文件,原始文件形式保存,不会被集成到resources.index文件中。文件名可自定义。
|---resfile // 其他类型文件,原始文件形式保存,不会被集成到resources.index文件中。文件名可自定义。

目录说明

base目录

base目录是默认存在的目录,二级子目录element用于存放字符串、颜色、布尔值等基础元素,media、profile存放媒体、动画、布局等资源文件。目录中的资源文件会被编译成二进制文件,并赋予资源文件ID。通过指定资源类型(type)和资源名称(name)引用。

rawfile目录

支持创建多层子目录,子目录名称可以自定义,文件夹内可以自由放置各类资源文件。
目录中的资源文件会被直接打包进应用,不经过编译,也不会被赋予资源文件ID。通过指定文件路径和文件名引用。

resfile目录

支持创建多层子目录,子目录名称可以自定义,文件夹内可以自由放置各类资源文件。
目录中的资源文件会被直接打包进应用,不经过编译,也不会被赋予资源文件ID。应用安装后,resfile资源会被解压到应用沙箱路径,通过Context属性resourceDir获取到resfile资源目录后,可通过文件路径访问。

资源组目录

资源组目录包括element、media、profile三种类型的资源文件,用于存放特定类型资源。
在这里插入图片描述
比如color.json其值只能是颜色类型的值:

{"color": [{"name": "color_hello","value": "#ffff0000"},{"name": "color_world","value": "#ff0000ff"}]
}

如果我将上面color_hello的value改成其他字符串,IDE会自动报错:
在这里插入图片描述

参考资料

资源分类与访问
HarmonyOS鸿蒙学习笔记(26)ArkTS工程目录结构(Stage模型)

相关文章:

  • 前端Vue小兔鲜儿电商项目实战Day03
  • [DDR5 Jedec 4-1] 预充电命令 Precharge
  • 数据结构 实验 1
  • 解决torch.cuda.is_available()一直为false的问题
  • 0开篇-介绍
  • 经典的滑动窗口的题目 力扣 2799. 统计完全子数组的数目(面试题)
  • 【代码随想录训练营】【Day 38】【贪心-5】| Leetcode 435, 763, 56
  • 算法金 | 再见,支持向量机 SVM!
  • 富格林:应用正规技巧阻挠被骗
  • 原生js访问http获取数据的方法
  • 数据在计算机内的表示和存储
  • 哈夫曼树的构造,哈夫曼树的存在意义--求哈夫曼编码
  • 【安卓跨进程通信IPC】-- Binder
  • 简易图像处理器的设计
  • ChatGLM3-6B部署
  • Google 是如何开发 Web 框架的
  • 77. Combinations
  • Angular4 模板式表单用法以及验证
  • co.js - 让异步代码同步化
  • HomeBrew常规使用教程
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • supervisor 永不挂掉的进程 安装以及使用
  • 浮现式设计
  • 关于extract.autodesk.io的一些说明
  • 观察者模式实现非直接耦合
  • 记录一下第一次使用npm
  • 如何进阶一名有竞争力的程序员?
  • 入手阿里云新服务器的部署NODE
  • 少走弯路,给Java 1~5 年程序员的建议
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 新版博客前端前瞻
  • 原生js练习题---第五课
  • 《天龙八部3D》Unity技术方案揭秘
  • #在 README.md 中生成项目目录结构
  • (35)远程识别(又称无人机识别)(二)
  • (代码示例)使用setTimeout来延迟加载JS脚本文件
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (一)Thymeleaf用法——Thymeleaf简介
  • (转)linux 命令大全
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • .equals()到底是什么意思?
  • .gitignore文件使用
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .net访问oracle数据库性能问题
  • .NET中的Exception处理(C#)
  • @ComponentScan比较
  • @EventListener注解使用说明
  • @RunWith注解作用
  • @test注解_Spring 自定义注解你了解过吗?
  • []error LNK2001: unresolved external symbol _m
  • [Android]使用Git将项目提交到GitHub
  • [Angular] 笔记 20:NgContent