• Home
Name Date Size #Lines LOC

..--

include/12-May-2024-2,0591,331

src/12-May-2024-6,2805,259

test/12-May-2024-9275

BUILD.gnD12-May-20242.4 KiB8980

CMakeLists.txtD12-May-20241.7 KiB4335

LICENSED12-May-20249.9 KiB177150

OAT.xmlD12-May-20241.8 KiB4021

README.mdD12-May-20241.7 KiB6142

README_zh.mdD12-May-20244.8 KiB11082

bundle.jsonD12-May-2024857 3534

restool.gniD12-May-2024695 1513

win32.cmakeD12-May-2024409 119

README.md

1# OpenHarmony resource compile tool
2
3## Description
4resource tool is used in computer.In OpenHarmony SDK toolchain.Provide to IDE.Support Windows, Linux, MacOS platform.
5
6## Directory Structure
7
8```
9/developtools
10|----global_resource_tool
11|    |----include         #Header file
12|    |----src             #source code file
13|    |----test            #Test case
14|    |----build           #Depending on the third-party library compilation script
15|    |----BUILD.gn        #Compile script
16|    |----CMakeLists.txt  #CMake file
17|    |----win32.cmake     #Windows cross compilation script
18```
19
20## Instructions
21
22### Test
23
24In PC, run `python test.py ./restool ./out`
25
26### Help
27
28resource tool usually integrate to IDE, OpenHarmony compile system.
29
30resource tool command e.g:
31
32-v version
33-i input resource path
34-o output resource path
35-r resource ID header file path
36-p package name
37-f if output path exists,force override it
38-m module name, can add more, split by ','(like entry1,entry2,...)
39-j config.json path
40-e start id mask, e.g 0x01000000, in [0x01000000, 0x06FFFFFF),[0x08000000, 0x41FFFFFF)
41
42```
43entry Directory Structure
44|    |----resource
45|    |----config.json or module.json
46```
47`./restool -i entry1 -i entry2 -j xxx/module.json -p ohos.demo.xxx -o out -r out/ResourceTable.h `
48
49##  Related to the storehouse
50
51**global_resource_tool**
52
53[third_party_libxml2](https://gitee.com/openharmony/third_party_libxml2/blob/master/README.md)
54
55[third_party_jsoncpp](https://gitee.com/openharmony/third_party_jsoncpp/blob/master/README.md)
56
57[third_party_sqlite](https://gitee.com/openharmony/third_party_sqlite/blob/master/README.md)
58
59[third_party_bounds_checking_function](https://gitee.com/openharmony/third_party_bounds_checking_function/blob/master/README.en.md)
60
61

README_zh.md

1# OpenHarmony资源编译工具
2
3## 简介
4restool(资源编译工具)是一种资源构建工具。通过编译资源文件创建资源索引、解析资源。restool保存在sdk安装目录下的toolchains子目录。
5
6## 代码目录
7
8```
9/developtools
10|----global_resource_tool
11|    |----include         #头文件
12|    |----src             #源代码文件
13|    |----test            #测试用例
14|    |----build           #依赖三方库编译脚本
15|    |----BUILD.gn        #编译脚本
16|    |----CMakeLists.txt  #CMake文件
17|    |----win32.cmake     #Windows交叉编译脚本
18```
19
20## 使用说明
21
22### SDK编译命令
23
24[SDK编译命令参考](https://gitee.com/openharmony/build/blob/master/README_zh.md)
25
26### 参数说明
27
28restool当前支持以下命令选项:
29
30| 选项 | 是否可缺省 | 是否存在入参 | 描述 |
31| -------- | -------- | -------- | -------- |
32| -i/--inputPath | 不可缺省 | 带参数 | 指定需要构建的资源目录或者需要构建的资源中间文件目录。同一个命令可以多次指定。 |
33| -j/--json | 不可缺省 | 带参数 | 指定config.json或者module.json文件路径。 |
34| -o/--outputPath | 不可缺省 | 带参数 | 指定已编译资源的输出路径。 |
35| -p/--packageName | 不可缺省 | 带参数 | 指定编译资源的bundle名称。 |
36| -r/--resHeader | 不可缺省 | 带参数 | 指定资源的头文件路径,有三种格式:“.txt”、“.js”、“.h”。 |
37| -e/--startId | 可缺省 | 带参数 | 指定生成资源的起始ID值,例如:0x01000000,范围[0x01000000, 0x06FFFFFF),[0x08000000, 0x41FFFFFF) |
38| -f/--forceWrite | 可缺省 | 不带参数 | 如果输出路径已经存在。强制删除,重新生成。 |
39| -h/--help | 可缺省 | 不带参数 | 查看工具帮助信息。 |
40| -m/--modules | 可缺省 | 带参数 | 多模块联合编译时,指定多个模块名。用“,”连接。 |
41| -x/--append | 可缺省 | 带参数 | 指定生成中间文件的资源目录或单个资源路径。同一个命令可以多次指定。 |
42| -z/--combine | 可缺省 | 不带参数 | 针对资源终将文件目录,生成编译结果。 |
43| -v/--version | 可缺省 | 不带参数 | 查看工具版本号。 |
44| -l/--fileList | 可缺省 | 带参数 | 指定命令选项的集合json文件,例如:resConfig.json。详细格式查看开发文档。 |
45| --ids | 可缺省 | 带参数 | 指定生成id_defined.json的输出目录。 |
46| --defined-ids | 可缺省 | 带参数 | 指定id_defined.json文件路径,一般都是通过--ids生成。<br>id_defined.json包含资源类型、名称及其ID的列表。<br>开发者可以自定义id_defined.json中的资源ID。 |
47| --dependEntry | 可缺省 | 带参数 | FA模型下单独编译feature时,指定entry模块的编译结果目录。 |
48
49### 使用实例
50
51例如:entry目录结构如下
52```
53entry/src/main
54|    |----resource
55|    |    |----base
56|    |    |    |----element
57|    |    |    |----media
58|    |    |    |----profile
59|    |    |----rawfile
60|    |----config.json/module.json
61```
62
63构建资源全量命令:
64
65```
66restool -i entry/src/main  -j entry/src/main/module.json -p com.ohos.demo -o out -r out/ResourceTable.txt -f
67```
68
69构建资源增量命令(仅预览模式可用),具体步骤如下:
70
711.生成资源中间件:
72```
73restool -x entry/src/main/resource -o out
74```
752.编译中间件:
76```
77restool -i out1 -i out2 -o out -p com.ohos.demo -r out/ResourceTable.txt -j entry/src/main/module.json -f -z
78```
79
80固定资源ID的方式有两种,如下:
81
82方式一:在resource/base/element/目录下存放自定义id_defined.json文件。构建成功后,生成的ID值将会和id_defined.json文件中自定义的ID值保持一致。
83
84方式二:通过--ids 命令生成id_defined.json文件。--defined-ids命令指定id_defined.json文件。构建成功后,生成的ID值将会和id_defined.json文件中自定义的ID值保持一致。
85
86生成id_defined.json文件:
87```
88restool -i entry/src/main  -j entry/src/main/module.json -p com.ohos.demo -o out -r out/ResourceTable.txt --ids out/id_defined.json -f
89```
90
91指定资源ID固定的id_defined.json文件:
92```
93restool -i entry/src/main  -j entry/src/main/module.json -p com.ohos.demo -o out1 -r out1/ResourceTable.txt --defined-ids out/id_defined.json -f
94```
95
96### 资源类型介绍
97[资源类型介绍](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/quick-start/resource-categories-and-access.md)
98
99## 相关仓
100
101**global_resource_tool**
102
103[third_party_libxml2](https://gitee.com/openharmony/third_party_libxml2/blob/master/README.md)
104
105[third_party_jsoncpp](https://gitee.com/openharmony/third_party_jsoncpp/blob/master/README.md)
106
107[third_party_sqlite](https://gitee.com/openharmony/third_party_sqlite/blob/master/README.md)
108
109[third_party_bounds_checking_function](https://gitee.com/openharmony/third_party_bounds_checking_function/blob/master/README.md )
110