README.md
1# Utils<a name="EN-US_TOPIC_0000001123083525"></a>
2
3- [Introduction](#section11660541593)
4- [Directory Structure](#section161941989596)
5- [Compilation and Building](#section137768191623)
6- [Description](#section1312121216216)
7 - [Usage](#section129654513264)
8
9- [Repositories Involved](#section1371113476307)
10
11## Introduction<a name="section11660541593"></a>
12
13The Utils module defines the common data structure in the graphics subsystem and provides a lite OS adaptation layer, which includes the lock, thread, and file system.
14
15**Figure 1** Dependency between modules of the graphics subsystem<a name="fig717664212591"></a>
16
17
18## Directory Structure<a name="section161941989596"></a>
19
20```
21/foundation/graphic/utils
22├── frameworks # Framework code
23│ ├── hals # Hardware adaptation layer
24│ ├── linux # Linux platform adaptation layer
25│ ├── liteos # LiteOS platform adaptation layer
26│ └── windows # Windows platform adaptation layer
27├── interfaces # APIs
28│ ├── innerkits # APIs between modules
29│ │ └── hals # APIs of the hardware adaptation layer
30│ └── kits # External APIs
31└── test # Unit testing
32```
33
34## Compilation and Building<a name="section137768191623"></a>
35
36```
37# Generate the libgraphic_utils.so file in the out directory of the product folder through GN compilation.
38hb build lite_graphic_utils
39```
40
41## Description<a name="section1312121216216"></a>
42
43### Usage<a name="section129654513264"></a>
44
45- Utils is used in UI, surface, and WMS modules. For details, see the related source code.
46- The **test** folder provides unit testing for each utils API. Refer to it for the usage of utils.
47
48## Repositories Involved<a name="section1371113476307"></a>
49
50[Graphic subsystem](https://gitee.com/openharmony/docs/blob/master/en/readme/graphics-subsystem.md)
51
52[graphic_wms](https://gitee.com/openharmony/graphic_wms/blob/master/README.md)
53
54[graphic_surface](https://gitee.com/openharmony/graphic_surface/blob/master/README.md)
55
56[graphic_ui](https://gitee.com/openharmony/graphic_ui/blob/master/README.md)
57
58# Hals<a name="EN-US_TOPIC_0000001124625243"></a>
59
60- [Introduction](#section11660541593)
61- [Directory Structure](#section161941989596)
62- [Compilation and Building](#section137768191623)
63- [Description](#section1312121216216)
64 - [Usage](#section129654513264)
65
66- [Repositories Involved](#section1371113476307)
67
68## Introduction<a name="section11660541593"></a>
69
70The Hals module adapts and encapsulates the functions related to the driver subsystem and platform, including FrameBuffer, graphics \(GFX\), and single instruction, multiple data \(SIMD\).
71
72**Figure 1** Dependency between modules of the graphics subsystem and that between graphics modules and the driver subsystem<a name="fig717664212591"></a>
73
74
75## Directory Structure<a name="section161941989596"></a>
76
77```
78/foundation/graphic/utils
79├── frameworks # Framework code
80│ ├── hals # Hardware adaptation layer
81│ ├── linux # Linux platform adaptation layer
82│ ├── liteos # LiteOS platform adaptation layer
83│ └── windows # Windows platform adaptation layer
84├── interfaces # APIs
85│ ├── innerkits # APIs between modules
86│ │ └── hals # APIs of the hardware adaptation layer
87│ └── kits # External APIs
88└── test # Unit testing
89```
90
91## Compilation and Building<a name="section137768191623"></a>
92
93```
94# Generate the libgraphic_hals.so file in the out directory of the product folder through GN compilation.
95hb build lite_graphic_utils
96```
97
98## Description<a name="section1312121216216"></a>
99
100### Usage<a name="section129654513264"></a>
101
102- Hals is used in UI, surface, and WMS modules. For details, see the related source code.
103
104## Repositories Involved<a name="section1371113476307"></a>
105
106[Graphic subsystem](https://gitee.com/openharmony/docs/blob/master/en/readme/graphics-subsystem.md)
107
108[graphic_wms](https://gitee.com/openharmony/graphic_wms/blob/master/README.md)
109
110[graphic_surface](https://gitee.com/openharmony/graphic_surface/blob/master/README.md)
111
112[graphic_ui](https://gitee.com/openharmony/graphic_ui/blob/master/README.md)
113
114**graphic_utils**