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

「Mac畅玩鸿蒙与硬件8」鸿蒙开发环境配置篇8 - 应用依赖与资源管理

本篇将介绍如何在 HarmonyOS 项目中高效管理资源文件和依赖,以确保代码结构清晰并提升应用性能。资源管理涉及图片、字符串、多语言文件等,通过优化文件加载和依赖管理,可以显著提升项目的加载速度和运行效率。

关键词
  • 资源管理
  • 应用依赖优化
  • 屏幕适配
  • 多语言支持
  • 增量编译
  • 文件压缩

一、资源文件管理

在 HarmonyOS 项目中,资源文件通常存放在 resources/base 目录。根据资源的用途,可以将图片、音频等资源文件直接放入该目录,并通过清晰的命名方式便于区分用途。例如,将界面图片命名为 ui_logo.png,提示音频命名为 alert_sound.mp3,便于管理和后期维护。

1.1 多语言支持

HarmonyOS 支持通过多语言文件实现语言适配,以满足不同地区和语言的用户需求。系统会根据用户设备的语言设置自动加载相应语言的文件,示例路径如下:

  • 默认语言src/main/resources/base/element/string.json
  • 英文(美国)src/main/resources/en_US/element/string.json
  • 中文(中国)src/main/resources/zh_CN/element/string.json
1.2 资源引用示例

在代码中,可以通过 $r$rawfile 引用资源文件,以简化资源的调用方式:

  • 图片资源

    • 使用 $r 引用资源目录中的图片:

      Image($r('app.media.startIcon'))
      

      其中,app.media.startIcon 指向的是 resources/base/media 目录下的 startIcon.png

    • 使用 $rawfile 引用原始文件:

      Image($rawfile('startIcon.png'))
      

      此方式直接引用文件名,适用于未打包的原始文件引用。

  • 字符串资源

    • 使用 $r 引用字符串资源:
      Text($r('app.string.app_name'))
      
      这里 app.string.app_name 指的是 string.json 文件中定义的字符串键 app_name。系统会根据用户设备的语言环境自动加载对应语言的字符串内容。

二、资源优化方法

优化资源文件可以减少应用体积并提升加载速度。以下是几种常见的优化方法:

2.1 启用增量编译

增量编译通过缓存中间文件缩短编译时间,尤其适用于开发过程中频繁改动的场景。可以在 hvigor 工具中配置启用增量编译。

2.2 压缩资源文件
  • 图片压缩:使用 TinyPNG 或 Photoshop 等工具对 PNG、JPEG 图片进行无损压缩,以减少文件大小。
  • 音频压缩:使用 Audacity 等工具压缩音频文件,选择合适的音频格式(如 OGG 或 AAC),进一步减小文件体积。
2.3 启用矢量图形

在合适的场景下,使用矢量图形(如 SVG)代替位图,避免分辨率差异导致的图片模糊。矢量图的体积较小、适配性强,适合多种分辨率设备。


三、定期清理未使用资源与依赖

开发过程中可能产生未使用的资源和冗余依赖,建议定期手动检查和清理,以避免应用体积增大并优化项目性能。


四、应用依赖管理

HarmonyOS 项目通常依赖内部库和第三方库。合理管理依赖不仅能简化项目结构,还能减少潜在的冲突问题。

4.1 版本管理与一致性
  • 指定依赖版本:在添加依赖库时指定版本号,确保不同环境下一致,避免不兼容问题。
  • 升级依赖库:及时关注第三方库的更新,避免使用已过时的库,降低漏洞风险。
4.2 本地与远程依赖

开发阶段优先使用本地缓存依赖以加快构建速度,项目发布阶段则使用远程依赖以确保使用最新版本。


小结

本篇内容讲解了 HarmonyOS 项目中资源和依赖的管理优化方法。通过合理的资源管理和依赖控制,可以有效提升应用的加载速度和运行效率,为用户提供更流畅的体验。


下一篇预告

下一篇将介绍如何在 HarmonyOS 项目中使用 Git 进行版本控制。通过 Git 的分支管理、合并冲突处理等功能,开发者可以更好地协作并管理项目的历史版本,确保代码变更安全可靠。


上一篇「Mac畅玩鸿蒙与硬件7」鸿蒙开发环境配置篇7 - 使用命令行工具和本地模拟器管理项目
下一篇「Mac畅玩鸿蒙与硬件9」鸿蒙开发环境配置篇9 - 使用 Git 进行版本控制

相关文章:

「Mac畅玩鸿蒙与硬件8」鸿蒙开发环境配置篇8 - 应用依赖与资源管理

本篇将介绍如何在 HarmonyOS 项目中高效管理资源文件和依赖,以确保代码结构清晰并提升应用性能。资源管理涉及图片、字符串、多语言文件等,通过优化文件加载和依赖管理,可以显著提升项目的加载速度和运行效率。 关键词 资源管理应用依赖优化…...

【Gorm】传统sql的增删查改,通过go去操作sql

MySQL中的建库,建表,删库,删表,添加记录,查询,删除记录,更新记录这些命令是一定要回的,就算我们脱离 orm 这些,也能直接连接上数据库进行操作。 一、数据库的操作 # 查…...

HTML小阶段二维表和思维导图

下面是对标签、元素、属性的对比二维表,通过对比3w1h(what是什么、where用在哪、why为什么要用、how如何用)来学习区分学习标签、元素、属性 标签 元素 属性 what (Tags)标签是用来标记内容块或标明元素内容意义 …...

AI与低代码的碰撞:企业数字化转型的新引擎

引言 在当今的商业环境中,企业数字化转型已从选择题变成了必答题。面对日益复杂的市场竞争和不断变化的客户需求,传统的开发模式常常显得力不从心——开发周期冗长、技术门槛高、成本居高不下,企业很难快速响应市场变化。而在这种背景下&…...

HarmonyOS应用开发者基础认证——初级闯关习题参考答案大全

相关文章 HarmonyOS应用开发者中级认证——中级闯关习题参考答案大全 HarmonyOS应用开发者高级认证——高级闯关习题参考答案大全 文章目录 HarmonyOS第一课 HarmonyOS介绍判断题单选题多选题 HarmonyOS第一课 DevEco Studio的使用判断题单选题多选题 HarmonyOS第一课 ArkTS语法…...

Vue背景图片自适应大屏与小屏

1&#xff0c;父绝子相 效果是台式看的更多&#xff0c;笔记本看部分。但是图片不会变形 <div class"father" style"width:100%; position:relative"> <img src"test.png" class"son" style"width:1920px; position:a…...

MongoDB 8.0.3版本安装教程

MongoDB 8.0.3版本安装教程 一、下载安装 1.进入官网 2.选择社区版 3.点击下载 4.下载完成后点击安装 5.同意协议&#xff0c;下一步 6.选择第二个Custon&#xff0c;自定义安装 7.选择安装路径 &#xff01;记住安装路径 8.默认&#xff0c;下一步 9.取…...

【C语言】预处理(预编译)详解(下)(C语言最终篇)

文章目录 一、#和##1.#运算符2.##运算符 二、预处理指令#undef三、条件编译1.单分支条件编译2.多分支条件编译3.判断符号是否被定义4.判断符号是否没有被定义 四、头文件的包含1.库头文件的包含2.本地头文件的包含3.嵌套包含头文件的解决方法使用条件编译指令使用预处理指令#pr…...

[Linux] linux 软硬链接与动静态库

标题&#xff1a;[Linux] linux 软硬链接与动静态库 个人主页水墨不写bug &#xff08;图片来源于网络&#xff09; /** _oo0oo_* o8888888o* 88" . "88* (| -_- |)* …...

GitHub Actions的 CI/CD

GitHub Actions 是一个强大的 CI/CD 工具&#xff0c;适用于自动化各种开发任务。GitHub Actions 的原理是基于事件驱动的自动化流水线工具&#xff0c;通过定义触发条件和执行步骤&#xff0c;可以让项目在特定条件下自动运行一系列操作&#xff0c;比如构建、测试、部署等。 …...

doris 表结构批量导出

导出 test 数据库中的 table1 表&#xff1a;mysqldump -h127.0.0.1 -P9030 -uroot --no-tablespaces --databases test --tables table1 导出 test 数据库中的 table1 表结构&#xff1a;mysqldump -h127.0.0.1 -P9030 -uroot --no-tablespaces --databases test --tables tab…...

linux查看文件命令

查看文件命令 显示命令 cat 语法&#xff1a;cat 【选项】 文件 选项 命令含义n显示行号包括空行b显示行号不包括空行s压缩空行为一行A显示隐藏字符 cat -n 文件&#xff1a;显示行号包括空行 cat -b 文件 cat -s 文件 cat -A 文件 more和less是 分页查看 tac和rev都…...

【2023工业图像异常检测文献】DiAD: 基于扩散模型的多类异常检测方法

DiAD: A Diffusion-based Framework for Multi-class Anomaly Detection 1、Background 当前主流的三种异常检测方法&#xff1a; 基于合成的方法&#xff1a;在正常图像上合成异常&#xff0c;通过训练模型识别这些合成的异常来提高检测和定位能力。基于嵌入的方法&#xff…...

三相继电保护机 继电器保护校验仪 微机继电保护测试仪

性能特点 电压电流输出灵活组合 输出达4相电压3相电流&#xff0c;可各种组合实现常规4相电压3相电流型输出模式&#xff0c;既可兼容传统的各种试验方式&#xff0c;也可方便地进行三相变压器差动试验和厂用电快切和备自投试验。 操作方式装置直接外接笔记本电脑或台式机进行…...

MyEclipse中讲解Git使用——结合GitLab

1、什么是Git Git是分布式版本控制系统 Git是一款免费、开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或小或大的项目。 2、在myeclipse安装Git插件 下载该文件&#xff0c;将egit.zip解压放入 myeclipse安装路径>dropins>下重新启动myeclipse EGit -…...

pdf转为txt文本格式并使用base64加密输出数据

第一步&#xff0c;pom.xml中引入jar包 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.24</version></dependency> 第二步 package org.example.test.example.changefile;…...

SpringBoot篇(运维实用篇 - 临时属性)

目录 一、临时属性设置 1. 简介 2. 属性加载优先级 那是否还有其他的配置方式呢&#xff1f; 3. 知识小结 二、开发环境中使用临时属性 1. 如何操作 2. 知识小结 3. 思考 三、配置文件分类 1. 简介 2. 4个级别 3. 为什么设计多种配置文件&#xff1f; 一个典型的应…...

MySQL定时异机备份

场景&#xff1a;将A机器MySQL数据库部分表每日定时备份到B机器上 &#xff08;只适用于Linux&#xff09; 实现方式算是比简单了&#xff0c;就是用mysqldump生成文件&#xff0c;使用scp命令传输到另一台机器上。 1. 编写备份shell脚本 在A机器新建脚本 (当然没有vim的话vi…...

MMA: Multi-Modal Adapter for Vision-Language Models

两个观察 图1所示。各种基于transformer的CLIP模型中不同层的数据集级识别精度。这个实验是为了确定样本属于哪个数据集。我们用不同的种子运行了三次&#xff0c;并报告了每层识别精度的平均值和标准差。 X E m b e d XEmbed XEmbed是指变压器块之前的文本或图像嵌入层&#x…...

uniapp通过id获取div的宽度,高度,位置等(应该是 任意平台都通用 )

uniapp通过id获取div的宽度&#xff0c;高度&#xff0c;位置等&#xff08;应该是 任意平台都通用 &#xff09; <template><view class"" id"domId"></view> </template>// 如果获取的dome高度等不对&#xff0c;还需要加上延迟…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

LRU 缓存机制详解与实现(Java版) + 力扣解决

&#x1f4cc; LRU 缓存机制详解与实现&#xff08;Java版&#xff09; 一、&#x1f4d6; 问题背景 在日常开发中&#xff0c;我们经常会使用 缓存&#xff08;Cache&#xff09; 来提升性能。但由于内存有限&#xff0c;缓存不可能无限增长&#xff0c;于是需要策略决定&am…...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分&#xff1a;派生类构造函数与析构函数 当创建一个派生类对象时&#xff0c;基类成员是如何初始化的&#xff1f; 1.当派生类对象创建的时候&#xff0c;基类成员的初始化顺序 …...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障

关键领域软件测试的"安全密码"&#xff1a;Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力&#xff0c;从金融交易到交通管控&#xff0c;这些关乎国计民生的关键领域…...

SQL Server 触发器调用存储过程实现发送 HTTP 请求

文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...