1# restool工具 2 3 4## 简介 5 6restool是一种应用工程资源编译工具,通过编译资源文件创建资源索引、解析资源,开发者可以调用[资源管理接口](../reference/apis/js-apis-resource-manager.md)获取到对应资源。restool工具保存在sdk安装目录下的toolchains子目录。 7 8## 参数说明 9 10restool当前支持以下命令选项: 11 12| 选项 | 是否可缺省 | 是否存在入参 | 描述 | 13| -------- | -------- | -------- | -------- | 14| -i | 不可缺省 | 带参数 | 指定需要构建的[资源目录](#编译资源)或者需要构建的[资源中间文件目录](#编译资源)。同一个命令可以多次指定。 | 15| -j | 不可缺省 | 带参数 | 指定config.json或者module.json文件路径。 | 16| -o | 不可缺省 | 带参数 | 指定已编译资源的输出路径。 | 17| -p | 不可缺省 | 带参数 | 指定编译资源的bundle名称。 | 18| -r | 不可缺省 | 带参数 | 指定资源的头文件路径,有三种格式:“.txt”、“.js”、“.h”。 | 19| -e | 可缺省 | 带参数 | 指定生成资源的起始ID值,例如:0x01000000,范围[0x01000000, 0x06FFFFFF),[0x08000000, 0x41FFFFFF) | 20| -f | 可缺省 | 不带参数 | 如果输出路径已经存在。强制删除,重新生成。 | 21| -h | 可缺省 | 不带参数 | 查看工具帮助信息。 | 22| -m | 可缺省 | 带参数 | 多模块联合编译时,指定多个模块名。用“,”连接。 | 23| -x | 可缺省 | 带参数 | 指定生成中间文件的资源目录或单个资源路径。同一个命令可以多次指定。 | 24| -z | 可缺省 | 不带参数 | 针对资源终将文件目录,生成编译结果。 | 25| -v | 可缺省 | 不带参数 | 查看工具版本号。 | 26| --ids | 可缺省 | 带参数 | 指定生成id_defined.json的输出目录。 | 27| --defined-ids | 可缺省 | 带参数 | 指定id_defined.json文件路径,一般都是通过--ids生成。<br>id_defined.json包含资源类型、名称及其ID的列表。<br>开发者可以自定义id_defined.json中的资源ID。 | 28| --icon-check | 可缺省 | 不带参数 | 开启icon和startWindowIcon的PNG图片校验功能。 | 29 30## 使用实例 31 32例如:entry目录结构如下 33``` 34entry/src/main 35| |----resource 36| | |----base 37| | | |----element 38| | | |----media 39| | | |----profile 40| | |----rawfile 41| |----config.json/module.json 42``` 43 44### 编译资源 45 46编译资源的方式有两种,分别是全量资源编译和增量资源编译。 47 481、全量资源编译,命令如下: 49 50``` 51restool -i entry/src/main -j entry/src/main/module.json -p com.ohos.demo -o out -r out/ResourceTable.txt -f 52``` 53 542、增量资源编译,具体步骤如下: 55 56步骤一:生成资源中间件,命令如下: 57 58``` 59restool -x entry/src/main/resource -o out 60``` 61步骤二:编译资源中间件,命令如下: 62 63``` 64restool -i out1 -i out2 -o out -p com.ohos.demo -r out/ResourceTable.txt -j entry/src/main/module.json -f -z 65``` 66 67### 固定资源ID 68 69固定资源ID,具体步骤如下: 70 71步骤一:创建id_defined.json文件。创建方式有两种,分别是通过命令行和自定义。 72 73+ 方式一:通过命令行生成此文件,命令如下: 74 75``` 76restool -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 77``` 78 79+ 方式二:自定义文件,文件名必须是id_defined.json,文件内容如下: 80 81``` 82{ 83 "record" : 84 [ 85 { 86 "id" : "0x01000000", // 资源需要固定的ID值 87 "name" : "app_name", // 资源名称 88 "type" : "string" // 资源类型 89 } 90 ] 91} 92``` 93 94步骤二:完成资源ID固定。完成固定的方式有两种,通过命令一完成固定或者将自定义的id_definded.json放在resource/base/element/目录下后通过命令二完成固定。 95 96+ 命令一: 97``` 98restool -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 99``` 100 101+ 命令二: 102``` 103restool -i entry/src/main -j entry/src/main/module.json -p com.ohos.demo -o out1 -r out1/ResourceTable.txt -f 104```