• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 扫描工具
2
3## 简介
4
5扫描工具可用于分析检测应用安装包,根据不同的参数设定,扫描指定路径的HAP、HSP、App包内容并输出检测结果报告,为开发者优化包结构或排查问题提供数据支撑。目前扫描工具支持以下几种分析统计:
6- 扫描重复文件。
7- 扫描超出指定大小的文件。
8- 统计分析各类型文件的总大小和占比。<br>
9
10工具扫描结果默认以JSON和HTML两种文件格式输出。<br>
11扫描工具app_check_tool.jar需要从SDK路径下的toolchains目录中获取。
12
13![扫描工具系统架构图](figures/app-check-tool-construct.png)
14
15## 约束与限制
16扫描工具需运行在Java8及其以上环境。
17
18## 扫描重复文件示例
19
20<b>命令示例:</b>
21
22```
23java -jar app_check_tool.jar --input ./test.app --out-path ./test --stat-duplicate true
24```
25
26<b>扫描重复文件指令参数说明</b>
27
28| 指令             | 是否必选项 | 描述                                                               |
29| ---------------- | ---------- | ------------------------------------------------------------------ |
30| --input          | 是         | 指定传入的HAP、HSP、App包文件路径。                                |
31| --out-path       | 是         | 指定结果输出文件夹目录。                                           |
32| --stat-duplicate | 否         | 是否扫描重复文件。默认为false。<br>true:启用。<br>false:不启用。  |
33
34<b>JSON统计结果:</b>
35
36```
37[{
38    "taskType":1,
39    "taskDesc":"find the duplicated files",
40    "param":"--stat-duplicate",
41    "startTime":"2023-11-17 14:48:01:265",
42    "stopTime":"2023-11-17 14:48:01:434",
43	"result":[{
44        "md5":"975c41f5727b416b1ffefa5bb0f073b",
45        "size":1108880,
46        "files":[
47            "/application-entry-default.hap/libs/armeabi-v7a/example.so",
48            "/entry-default.hap/libs/armeabi-v7a/example.so"
49        ]
50    }]
51}]
52```
53
54**扫描重复文件字段信息**
55
56| 字段      | 类型   | 描述                        |
57| --------- | ------ | --------------------------- |
58| taskType  | int    | 取值为1,表示扫描重复文件。 |
59| taskDesc  | String | 任务的详细描述。            |
60| param     | String | 扫描程序传入参数。          |
61| startTime | String | 任务开始时间。              |
62| stopTime  | String | 任务结束时间。              |
63| result    | Struct | [参考下表。](#section1)       |
64
65**重复文件统计结果字段信息** <a name="section1"></a>
66
67| 字段  | 类型            | 描述                       |
68| ----- | --------------- | -------------------------- |
69| md5   | String          | 相同文件的MD5值。          |
70| size  | int             | 相同文件的大小。单位为Byte。 |
71| files | Vector\<String> | 相同文件名的对应路径。     |
72
73## 扫描超出指定大小的文件示例
74
75<b>命令示例:</b>
76
77```
78java -jar app_check_tool.jar --input ./test.app --out-path ./test --stat-file-size 4
79```
80
81<b>扫描超出指定大小的文件的指令参数说明</b>
82
83| 指令             | 是否必选项 | 描述                                                        |
84| ---------------- | ---------- | ----------------------------------------------------------- |
85| --input          | 是         | 指定传入的HAP、HSP、App包文件路径。                         |
86| --out-path       | 是         | 指定结果输出文件夹目录。                                    |
87| --stat-file-size | 否         | 扫描超过设定大小的文件,单位KB <br>范围为 0-4294967295 KB。 |
88
89<b>JSON统计结果:</b>
90
91```
92[{
93    "taskType":2,
94    "taskDesc":"find files whose size exceed the limit size",
95    "param":"--stat-file-size 4",
96    "startTime":"2023-11-17 14:48:01:458",
97    "stopTime":"2023-11-17 14:48:01:491",
98    "result":[{
99            "file":"/application-entry-default.hap/libs/x86_64/example.so",
100            "size":1292840
101    }]
102}]
103```
104
105
106**扫描超出指定大小的文件字段信息**
107
108| 字段      | 类型   | 描述                                |
109| --------- | ------ | ----------------------------------- |
110| taskType  | int    | 取值为2,表示扫描超出指定大小文件。 |
111| taskDesc  | String | 任务的详细描述。                    |
112| param     | String | 扫描程序传入参数。                  |
113| startTime | String | 任务开始时间。                      |
114| stopTime  | String | 任务结束时间。                      |
115| result    | Struct | [参考下表。](#section2)               |
116
117**超出指定大小的文件统计结果字段信息**<a name="section2"></a>
118
119| 字段 | 类型   | 描述                                 |
120| ---- | ------ | ------------------------------------ |
121| file | String | 扫描的大文件的对应路径。             |
122| size | int    | 扫描的大文件的对应大小,单位为Byte。 |
123
124## 统计各类型文件大小占比示例
125
126<b>命令示例:</b>
127
128```
129java -jar app_check_tool.jar --input ./test.app --out-path ./test --stat-suffix true
130```
131
132<b>统计各类型文件大小占比指令参数说明</b>
133
134| 指令          | 是否必选项 | 描述                                                                      |
135| ------------- | ---------- | ------------------------------------------------------------------------- |
136| --input       | 是         | 指定传入的HAP、HSP、App包文件路径。                                       |
137| --out-path    | 是         | 指定结果输出文件夹目录。                                                  |
138| --stat-suffix | 否         | 是否统计各类型文件大小及占比。默认为false。<br>true:启用。<br>false:不启用。|
139
140<b>JSON统计结果:</b>
141
142```
143[{
144    "taskType":3,
145    "taskDesc":"show files group by file type[.suffix]",
146    "param":"--stat-suffix",
147    "startTime":"2023-11-17 14:48:01:497",
148    "stopTime":"2023-11-17 14:48:01:537",
149    "pathList":[
150        "test.app/application-entry-default.hap",
151        "test.app/entry-default.hap"
152    ],
153    "result":[{
154        "suffix":"so",
155        "totalSize":1292840,
156        "files":[{
157            "compress":"false",
158            "file":"/application-entry-default.hap/libs/x86_64/example.so",
159            "size":1292840
160        }]
161    },
162    {
163        "suffix":"abc",
164        "totalSize":84852,
165        "files":[{
166            "file":"/application-entry-default.hap/ets/modules.abc",
167            "size":76304
168        },
169        {
170            "file":"/entry-default.hap/ets/modules.abc",
171            "size":8548
172        }]
173    }]
174}]
175```
176
177
178
179**统计各类型文件大小占比字段信息**
180
181| 字段      | 类型            | 描述                                                                                   |
182| --------- | --------------- | -------------------------------------------------------------------------------------- |
183| taskType  | int             | 取值为3,表示统计各类型文件大小占比。                                                  |
184| taskDesc  | String          | 任务的详细描述。                                                                       |
185| param     | String          | 扫描程序传入参数。                                                                     |
186| startTime | String          | 任务开始时间。                                                                         |
187| stopTime  | String          | 任务结束时间。                                                                         |
188| pathList  | Vector\<String> | 多个HAP、HSP包的路径。                                                                  |
189| result    | Struct          | [参考下表。](#section3)                                                                  |
190
191**各类型文件大小占比统计结果字段信息**<a name="section3"></a>
192
193| 字段      | 类型   | 描述                                       |
194| --------- | ------ | ------------------------------------------ |
195| suffix    | String | 同类型文件后缀名。                         |
196| totalSize | int    | 扫描的同类型<br>文件的总大小,单位为Byte。 |
197| files     | Stuct  | [参考下表。](#section4)                      |
198
199**同类型文件的对应路径和大小字段信息**<a name="section4"></a>
200| 字段     | 类型   | 描述                                                                |
201| -------- | ------ | ------------------------------------------------------------------- |
202| file     | String | 文件路径。                                                          |
203| size     | int    | 文件的大小。                                                        |
204| compress | bool   | 是否是压缩文件(仅so类型文件展示)。<br>true:是压缩文件。<br>false:不是压缩文件。 |
205