• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 资源管理器
2
3### 介绍
4
5本工程使用[@ohos.app.ability.common](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-app-ability-common.md)
6接口中的AbilityContext类,获取资源管理器resourceManager,使用[@ohos.resourceManager.d.ts](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-localization-kit/js-apis-resource-manager.md)
7中的接口,展示了格式化字符串查询、基于指定屏幕分辨率查询媒体资源、获取系统资源管理对象等基础功能,以及展示了资源静态overlay以及运行时overlay的特性功能。
8
9### 效果预览
10
11|主页|
12|---|
13|![main](sceenshots/device/Scene-directory.png)|
14
15#### 使用说明
16
17此界面为主页面,其中展示了资源管理API各类接口的调用以及特性Overlay场景功能。其作用有:
18
191、点击资源API调用示例按钮,可跳转到资源API示例页面
20
212、点击Overlay使用示例,可以跳转到Overlay的使用示例界面。
22
23#### 资源API调用示例
24
25|资源API测试|
26|---|
27|![main](sceenshots/device/basicResources.png)|
28
29#### 使用说明
30
31此页面展示了当前资源管理接口的调用以及接口对应的返回结果。
32
33#### 静态overlay场景
34
35|overlay场景|
36|---|
37|![main](sceenshots/device/overlayTest.png)|
38
39#### 使用说明
40
41此页面展示静态overlay功能,功能使用如下:
42
431、静态overlay是默认使能的,当前显示的是静态overlay中的字符串和图标。
44
452、点击Disable可以触发去使能,重启应用可以恢复显示应用的字符串和图标。
46
473、点击enable可以触发使能,重启应用可以再次显示overlay中的字符串和图标。
48
49源码参考:[Overlay示例](entry/src/main/ets/pages/Overlay.ets)
50
51#### 运行时overlay场景
52
53|运行时overlay场景|
54|---|
55|![main](sceenshots/device/overlayRuntimeTest.png)|
56
57#### 使用说明
58
59此页面展示运行时overlay功能,功能使用如下:
60
611、点击addResource可以触发运行时overlay,此时会使用运行时overlay中的资源覆盖之前的字符串和图标。
62
632、点击removeResource可以触发移除运行时overlay,此时会移除运行时overlay,恢复到覆盖前的字符串和图标。
64
65### 工程目录
66
67```
68entry/src/main/ets/
69|---entryability
70|---pages
71|   |---Index.ets                     // 场景首页
72|   |---BasicResources.ets            // 基础资源场景
73|   |---Overlay.ets                   // overlay场景
74|---libraryOverlay                    // 静态overlay
75|---libraryRuntimeOverlay             // 运行时overlay
76```
77
78### 具体实现
79
80#### 资源API调用示例具体实现:
81
821、使用getContext()接口获取context对象,使用context.resourceManager获取资源管理对象,然后调用resourceManager内部的相关接口获取对应资源,例如:
83* 获取字符串资源:resourceManager.getStringValue()
84* 获取字符串数组资源:resourceManager.getStringArrayValue()
85* 获取图片资源:resourceManager.getMediaContent()
86* 获取格式化字符串资源:resourceManager.getStringSync()
87* 获取指定屏幕分辨率媒体资源:resourceManager.getMediaContentBase64()
88
892、导包resourceManager,使用resourceManager.getSystemResourceManager()获取系统资源管理对象,然后获取系统资源。
90
91源码参考:[资源API调用示例](entry/src/main/ets/pages/BasicResources.ets)
92
93#### overlay场景的具体实现:
94
951、静态overlay主要是通过加载overly中的资源实现资源覆盖,需要在对应的module.json中添加"targetModuleName":"entry", 表示覆盖entry中的资源,默认使能,也可调用包管理接口进行使能和去使能。
96
97使用步骤为:在安装完entry的hap后,需要把library模块生成的library-default-signed.hsp推送到/data/test下,使用bm install命令进行安装。
98
99脚本语言如下:
100
101hdc_std shell mount -o remount,rw /
102
103hdc_std install ./entry-default-signed.hap
104
105hdc_std shell mkdir /data/test
106
107hdc_std file send ./libraryOverlay-default-signed.hsp /data/test
108
109hdc_std shell bm install -p "/data/test/libraryOverlay-default-signed.hsp"
110
111pause
112
1132、运行时overlay资源加载,主要是在应用运行过程中实现资源的覆盖,需要应用主动调用资源的addResource接口实现资源的覆盖以及资源的移除,此功能不持久化。
114
115使用步骤为: 在安装完entry的hap后,需要把libraryRuntimeOverlay模块生成的libraryRuntimeOverlay-default-signed.hsp推送到应用对应的安装目录下。
116
117脚本语言如下:
118
119hdc_std shell mount -o remount,rw /
120
121hdc_std install ./entry-default-signed.hap
122
123hdc_std file send ./libraryRuntimeOverlay-default-signed.hsp /data/app/el1/bundle/public/ohos.samples.resourcemanager
124
125pause
126
127源码参考:[Overlay示例](entry/src/main/ets/pages/Overlay.ets)
128
129
130### 相关权限
131
132不涉及。
133
134### 依赖
135
136不涉及。
137
138### 约束与限制
139
1401. 本工程示例仅支持标准系统上运行。
141
1422. 本工程仅支持API10版本SDK,SDK版本号(API Version 10 Release),镜像版本号(4.0Release)。
143
1443. 本工程示例需要使用DevEco Studio 版本号(4.0Release)及以上版本才可编译运行。
145
146### 下载
147
148如需单独下载本工程,执行如下命令:
149
150```
151git init
152git config core.sparsecheckout true
153echo code/BasicFeature/Resource/ResourceManager/ > .git/info/sparse-checkout
154git remote add origin https://gitee.com/openharmony/applications_app_samples.git
155git pull origin master
156```
157
158