系统资源组件应用ohos.global.systemres是 OpenHarmony系统中全局系统资源组件的核心应用包,对应编译产物为 SystemResources.hap,是鸿蒙系统资源管理体系的 “统一入口”。它承载了系统级的公共资源(如字符串、图片、颜色、布局、动画、主题样式等),为系统服务、系统应用及第三方应用提供标准化、可复用的资源访问能力,确保全系统资源的一致性、可维护性和多语言 / 多设备适配性。

简单来说,ohos.global.systemres 就是鸿蒙系统的 “公共资源仓库”—— 无论是桌面图标、系统提示语、按钮样式,还是多语言翻译、深色模式适配,都由该组件统一管理和分发,避免了各模块重复定义资源,降低了开发与维护成本。

ohos.global.systemres 组件源码通常位于 OpenHarmony 源码的 //base/global/system_resources/systemres/ 目录下,核心结构分为三部分:

systemres/
├── AppScope/           # 应用级资源配置
│   ├── app.json        # 应用配置文件(定义组件基本信息)
│   └── resources/      # 应用级公共资源(全局主题、基础样式)
└── main/               # 模块级核心资源
    ├── module.json     # 模块配置文件(定义HAP属性、依赖等)
    └── resources/      # 系统核心资源(按类型/语言/分辨率分类)
        ├── zh_CN/      # 中文资源(字符串、布局等)
        ├── en_US/      # 英文资源
        ├── drawable/   # 图片资源(不同分辨率:mdpi/hdpi/xhdpi等)
        ├── color/      # 颜色资源(主题色、状态色)
        ├── layout/     # 布局资源
        └── style/      # 样式资源(按钮、文本样式)

组件本身不包含复杂业务逻辑,核心是通过鸿蒙资源框架(Resource Manager) 对外提供资源访问能力,应用 / 服务可通过以下方式调用(以 ArkTS 为例):


// 导入资源管理模块
import resourceManager from '@ohos.resourceManager';

// 获取系统资源管理器(指向ohos.global.systemres)
let sysResMgr: resourceManager.ResourceManager;
async function getSystemResource() {
  try {
    // 获取全局系统资源管理器
    sysResMgr = await resourceManager.getSystemResourceManager();
    // 示例1:获取系统字符串(如“确定”按钮文本)
    let confirmStr = await sysResMgr.getStringValue($r('sys.string.confirm'));
    // 示例2:获取系统图标(如返回箭头)
    let backIcon = await sysResMgr.getMedia($r('sys.drawable.ic_back'));
    // 示例3:获取系统颜色(如主题主色)
    let primaryColor = await sysResMgr.getColorValue($r('sys.color.primary'));
    console.log(`系统资源获取成功:${confirmStr}`);
  } catch (error) {
    console.error(`系统资源获取失败:${error}`);
  }
}

定制系统资源(以修改 Toast 浮层文字大小为例)

修改 Toast 相关配置 (扩大 Toast 宽度限制 + 调大文字大小):

# 修改float.json:扩大Toast内容最大宽度限制
diff --git a/systemres/main/resources/base/element/float.json b/systemres/main/resources/base/element/float.json
index d60fc2f1..15c0f35f 100644
--- a/systemres/main/resources/base/element/float.json
+++ b/systemres/main/resources/base/element/float.json
@@ -1518,7 +1518,7 @@
         },
         {
             "name": "ohos_id_toast_content_limit_max_width",
-            "value": "400.0vp"
+            "value": "600.0fp"
         },
         {
             "name": "ohos_id_toast_content_max_width",

# 修改float_sys.json:调整Toast文字大小(Body_M字体改为42fp)
diff --git a/systemres/main/resources/base/element/float_sys.json b/systemres/main/resources/base/element/float_sys.json
index 6dbcd529..709b0f6b 100644
--- a/systemres/main/resources/base/element/float_sys.json
+++ b/systemres/main/resources/base/element/float_sys.json
@@ -826,7 +826,7 @@
         },
         {
             "name": "toast_Body_M",
-            "value": "$float:Body_M"
+            "value": "36.0fp"
         },
         {

ohos_id_toast_content_limit_max_width:Toast 浮层的最大宽度限制,从 400vp 扩大到 600fp,适配更长文本;
toast_Body_M:Toast 文字的字体大小,从默认的Body_M(约 16fp)改为 36fp,显著放大文字。

编译 ohos.global.systemres 应用(rk3568)

./build.sh --product-name rk3568 --ccache --fast-rebuild -T system_resources

核心产物路径

# 最终安装包路径(可直接推送至设备使用)
/home/mc/rk/out/rk3568/packages/phone/system/app/ohos.global.systemres/SystemResources.hap

# 中间编译产物路径(用于调试)
/home/mc/rk/out/rk3568/obj/base/global/system_resources/systemres/

开发板推送验证:

hdc shell mount -o remount -rw /
hdc file send YOURPATH:\SystemResources.hap /system/app/ohos.global.systemres
Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐