HarmonyOS 开发实战:搞定应用名字与图标更换,全流程可运行示例

摘要

现在的应用开发里,一个好记、好看的名字和图标,不仅能让用户第一眼就记住你,还能在应用市场里提升辨识度。在 HarmonyOS 的应用开发中,更改应用名字和图标其实并不复杂,只要掌握正确的文件位置和配置方法,就能快速完成。本文会用非常接地气的方式,从原理到实战,带你一步步改出一个"自己的"应用名字和图标,并给出可运行的 Demo 示例,让你在几分钟内完成这项"高颜值优化"。

引言

过去在 Android 上,改应用名字和图标主要依赖 AndroidManifest.xml 和资源文件,而在 HarmonyOS 中,我们用的是 module.json5(以及资源目录 resources)来配置。 实际开发中,你可能会遇到这些场景:

  • 项目初期用的是临时名字,现在要改成正式的产品名。
  • 图标初版设计比较粗糙,正式版需要替换成高质量、统一风格的图标。
  • 一个应用要打多个渠道包,需要不同名字和图标区分版本(比如测试版、内测版、正式版)。

下面我会结合实际项目,直接给你代码和步骤,让你边看边改。

更改应用名字

在 HarmonyOS 项目里,应用名字主要是在 module.json5 和资源文件里配置的。

代码示例

假设我们项目结构是这样:

csharp 复制代码
entry/
 ├── module.json5
 └── src/main/resources/base/element/string.json

module.json5 示例:

json5 复制代码
{
  "module": {
    "name": "entry",
    "type": "entry",
    "label": "$string:app_name",
    "icon": "$media:app_icon",
    "description": "$string:app_desc"
  }
}

string.json 示例:

json 复制代码
{
  "string": [
    {
      "name": "app_name",
      "value": "我的鸿蒙应用"
    },
    {
      "name": "app_desc",
      "value": "这是一个支持快速改名和换图标的 Demo 应用"
    }
  ]
}

操作流程:

  1. 找到 module.json5 中的 "label" 字段,它是应用名字的入口。
  2. "label" 通常会引用 string.json 里的某个 name(比如 $string:app_name)。
  3. string.json 里修改 "value" 就能改名字,比如改成 "超级笔记"
  4. 重新编译运行,图标下的文字就变了。

更换应用图标

图标在 HarmonyOS 中是放在 resources/base/media 目录下的,不同分辨率会放在不同子目录(mediamedia-xxxhdpi 等)。

代码示例

假设我们的项目路径:

css 复制代码
entry/
 ├── src/main/resources/base/media/app_icon.png
 ├── src/main/resources/base/media-xxxhdpi/app_icon.png

module.json5 中:

json5 复制代码
"icon": "$media:app_icon"

操作流程:

  1. 找到 resources/base/media 下的 app_icon.png
  2. 用同名的 PNG 图标替换它(建议使用 512x512 或更高分辨率)。
  3. 如果有多分辨率目录(media-xxxhdpi 等),也替换对应版本的图标。
  4. 确保文件名和 module.json5 里的 "icon" 一致。
  5. 编译运行,新图标就生效了。

结合实际场景的应用示例

场景一:测试版与正式版名字区分

有些时候,你需要让测试版和正式版在设备上同时安装,这时就要改名字和图标。

json5 复制代码
// module.json5
"label": "$string:app_name_beta"
json 复制代码
// string.json
{
  "string": [
    {
      "name": "app_name_beta",
      "value": "超级笔记(测试版)"
    }
  ]
}

这样用户就不会混淆两个版本。

场景二:节日主题图标

有的应用会在节日换个应景的图标,比如春节时换成带灯笼的小图标。

json5 复制代码
"icon": "$media:app_icon_spring"

只要在 media 目录放上 app_icon_spring.png,就能实现节日氛围。

场景三:多品牌共用代码

如果你做的项目是多品牌共用一套代码,可以用不同的 string.jsonmedia 目录来区分打包。

比如:

bash 复制代码
resources/brand_a/string.json
resources/brand_a/media/app_icon.png

resources/brand_b/string.json
resources/brand_b/media/app_icon.png

在打包时切换 resources 源目录,就能生成不同品牌的包。

QA 环节

Q1:更改名字和图标后,应用市场需要重新审核吗? A:是的,大多数市场会把它当作一次新版本发布,需要走提审流程。

Q2:图标有推荐尺寸吗? A:推荐主图标用 512x512 PNG,然后导出多分辨率版本放到不同目录。

Q3:更名后安装包能覆盖旧版本吗? A:如果包名(bundleName)没变,是可以覆盖的;如果改了包名,就会并存安装。

总结

在 HarmonyOS 中改应用名字和图标,其实就是两个地方:

  • 名字:module.json5 + string.json
  • 图标:module.json5 + media 目录

你可以用这个方法快速实现不同版本区分、节日换肤、多品牌共用等功能,而且步骤非常直观,不需要改底层代码。 在实际开发里,这种小改动的频率很高,掌握之后能大大提升你的打包和上线效率。

相关推荐
用户7227868123444 小时前
HarmonyOS实现快递APP自动识别地址
harmonyos
爱笑的眼睛115 小时前
HarmonyOS声明式UI开发:深入探索ArkUI与Stage模型
华为·harmonyos
爱笑的眼睛115 小时前
HarmonyOS应用开发:深入理解声明式UI与弹窗交互的最佳实践
华为·harmonyos
Cobboo5 小时前
HarmonyOS 5.1.1版本图片上传功能
华为·harmonyos
爱笑的眼睛1114 小时前
HarmonyOS 应用开发新范式:深入探索 Stage 模型与 ArkUI 声明式开发
华为·harmonyos
祥睿夫子19 小时前
零基础搞定 ArkTS 类与对象!保姆级教程:定义→创建→测试全流程 + 代码示例
harmonyos
程序员潘Sir21 小时前
HarmonyOS实现快递APP自动识别地址
harmonyos·鸿蒙
萌虎不虎21 小时前
【鸿蒙(openHarmony)自定义音频播放器的开发使用说明】
华为·音视频·harmonyos
李洋-蛟龙腾飞公司1 天前
HarmonyOSAI编程万能卡片生成(一)
华为·ai编程·harmonyos