• Home
Name Date Size #Lines LOC

..--

pkgs/12-May-2024-311274

README.mdD12-May-20245.4 KiB154125

__init__.pyD12-May-2024704 160

ram_analyzer.pyD12-May-202421.7 KiB469407

rom_analyzer.pyD12-May-20249.6 KiB217183

README.md

1[toc]
2
3# Rom_analyzer.py
4
5## 功能介绍
6
7基于BUILD.gnbundle.json、编译产物system_module_info.json、out/{product_name}/packages/phone目录下的编译产物,分析各子系统及部件的rom大小。
8
9结果以json与xls格式进行存储,其中,json格式是必输出的,xls格式需要-e参数控制。
10
11## 支持产品
12
13主要是rk3568系列,已测试产品包括rk3568 rk3568_mini_system
14
15## 使用说明
16
17前置条件:
18
191. 获取整个rom_ram_analyzer目录
201. 对系统进行编译
211. rom分析在linux平台,ram分析在windows平台
221. python3及以后
231. 安装requirements
24    ```txt
25    xlwt==1.3.0
26    ```
27
28命令介绍:
29
301. `-h`或`--help`命令查看帮助
31   ```shell
32   > python3 rom_analyzer.py -h
33   usage: rom_analyzer.py [-h] [-v] -p PROJECT_PATH -j MODULE_INFO_JSON -n PRODUCT_NAME -d PRODUCT_DIR [-o OUTPUT_FILE] [-e EXCEL]
34
35   analyze rom size of component.
36
37   optional arguments:
38     -h, --help            show this help message and exit
39     -v, -version          show program\'s version number and exit
40     -p PROJECT_PATH, --project_path PROJECT_PATH
41                           root path of oh. eg: -p ~/oh
42     -j MODULE_INFO_JSON, --module_info_json MODULE_INFO_JSON
43                           path of out/{product_name}/packages/phone/system_module_info.json
44     -n PRODUCT_NAME, --product_name PRODUCT_NAME
45                           product name. eg: -n rk3568
46     -d PRODUCT_DIR, --product_dir PRODUCT_DIR
47                           subdirectories of out/{product_name}/packages/phone to be counted.eg: -d system -d vendor
48     -o OUTPUT_FILE, --output_file OUTPUT_FILE
49                           basename of output file, default: rom_analysis_result. eg: demo/rom_analysis_result
50     -e EXCEL, --excel EXCEL
51                           if output result as excel, default: False. eg: -e True
52   ```
531. 使用示例
54   ```shell
55   python3 rom_analyzer.py -p ~/nomodify_oh/ -j ../system_module_info.json -n rk3568 -d system -d vendor -d updater -o demo/demo -e True
56   # oh:rootpath of oh
57   # rk3568: product_name, same as out/{product_name}
58   # demo/demo: path of output file, where the second 'demo' is the basename of output file
59   # -e True:output result in excel format additionally
60   ```
61
62## 输出格式介绍(json)
63
64
65```json
66{
67   子系统名: {
68       "size": 整个子系统输出文件的总大小,
69       "file_count":  整个子系统产生的文件数,
70       输出文件名: 本文件的大小,
71       ...
72   },
73   ...
74}
75```
76
77## 附加说明
78
791. 由于目前standard产品使用的基本都是自定义的template,能够有效收集更多信息,因此相较于lite_small的分析脚本,本脚本能够具有更高的准确率,请放心使用
80
81# ram_analyzer.py
82
83## 功能介绍
84
85基于out/{product_name}/packages/phone下所有cfg文件、out/{product_name}/packages/phone/system/profile下所有xml文件,分析各进程及对应部件的ram占用(默认取Pss)
86
87结果以json与xls格式存储,其中,json格式是必输出的,xls格式需要-e参数控制。
88
89## 使用说明
90
91前置条件:
92
931. 获取整个rom_ram_analyzer目录
942. hdc可用
952. 设备已连接
963. 系统已烧录
973. python3
984. 安装requirements
99   ```txt
100   xlwt==1.3.0
101   ```
1025. 准备好相关数据:
103   1. out/{product_name}/packages/phone下所有cfg文件,并将其放置于同一个目录中(ps:同名文件仅保存一份即可)
104   1. out/{product_name}/packages/phone/system/profile下所有xml文件
1056. 运行rom_analyzer.py产生的json结果一份(即-o参数对应的文件,默认rom_analysis_result.json106
107命令介绍:
108
1091. 使用`-h`或`--help`查看帮助
110   ```shell
111   > python .\ram_analyzer.py -h
112   usage: ram_analyzer.py [-h] [-v] -x XML_PATH -c CFG_PATH [-j ROM_RESULT] -n DEVICE_NUM [-o OUTPUT_FILENAME] [-e EXCEL]
113
114   analyze ram size of component
115
116   optional arguments:
117     -h, --help            show this help message and exit
118     -v, -version          show program\'s version number and exit
119     -x XML_PATH, --xml_path XML_PATH
120                           path of xml file. eg: -x ~/oh/out/rk3568/packages/phone/system/profile
121     -c CFG_PATH, --cfg_path CFG_PATH
122                           path of cfg files. eg: -c ./cfgs/
123     -j ROM_RESULT, --rom_result ROM_RESULT
124                           json file produced by rom_analyzer_v1.0.py, default: ./rom_analysis_result.json.eg: -j ./demo/rom_analysis_result.json
125     -n DEVICE_NUM, --device_num DEVICE_NUM
126                           device number to be collect hidumper info. eg: -n 7001005458323933328a01fce16d3800
127     -o OUTPUT_FILENAME, --output_filename OUTPUT_FILENAME
128                           base name of output file, default: ram_analysis_result. eg: -o ram_analysis_result
129     -e EXCEL, --excel EXCEL
130                           if output result as excel, default: False. eg: -e True
131   ```
1322. 使用示例:
133   ```shell
134   python .\ram_analyzer.py -x .\profile\ -c .\init\ -n 7001005458323933328a01fce16d3800 -j .\rom_analysis_result.json -o /demo/demo -e True
135   # demo/demo: path of output file, where the second 'demo' is the basename of output file
136   # -e True:output result in excel format additionally
137   ```
138## 输出格式说明(json)
139```json
140{
141   进程名:{
142       "size": 本进程占用内存的大小,
143       子系统名: {
144            部件名: {
145               elf文件名: elf文件大小
146               ...
147            }
148            ...
149       }
150       ...
151   },
152   ...
153}
154```