# HDC-OpenHarmony Device Connector
- [HDC-OpenHarmony Device Connector](#hdc-OpenHarmony-Device-Connector)
- [Introduction](#introduction)
- [Architecture](#architecture)
- [Table of Contents](#table-of-contents)
- [PC-side compilation instructions](#pc-side-compilation-instructions)
- [Getting instructions on pc](#getting-instructions-on-pc)
- [More help and docs](#more-help-and-docs)
## Introduction
HDC (OpenHarmony Device Connector) is a command-line tool for developers to connect and debug the device. The PC-side development machine uses the command-line tool hdc (for convenience, collectively referred to as hdc below). This tool needs to support deployment on Windows/Linux /Mac and other systems to connect and debug communication with OpenHarmony devices (or simulators). The PC-side hdc tool needs to release corresponding versions for the above development machine operating system platforms, and the device-side hdc daemon needs to follow the device image release including support for the simulator. The following will introduce the commonly used commands and usage examples of hdc.
## Architecture
HDC mainly consists of three parts:
1. The hdc client part: the client running on the development machine, the user can request to execute the corresponding hdc command under the command terminal of the development machine (windows cmd/linux shell), running on the development machine, other terminal debugging IDEs also include hdc client .
2. The hdc server part: As a background process, it also runs on the development machine. The server manages the communication between the client and the device-side daemon, including the multiplexing of connections, the sending and receiving of data communication packets, and the direct processing of individual local commands.
3. The hdc daemon part: the daemon is deployed on the OpenHarmony device running on demand, and is responsible for processing requests from the client side.
## Table of Contents
```
/developtools
├── hdc # hdc code directory
│ └── src
│ ├── common # Code directory shared by the device side and the host side
│ ├── daemon # Code directory on the device side
│ ├── host # The code directory of the host
│ └── test # Code directory of test case
```
### PC-side compilation instructions
Compilation steps of hdc pc executable file:
1. Compile command: Please refer to https://gitee.com/openharmony/build/blob/master/README_zh.md to compile the sdk instructions, execute the specified sdk compile command to compile the entire sdk, hdc will be compiled Pack it inside.
2. Compile: Run the sdk compilation command adjusted above on the target development machine, and the normal compilation of hdc will be output to the relevant directory of the sdk platform; Note: Only the windows/linux version tools can be compiled in the ubuntu environment, and the mac version needs to be on the macos development machine Compile.
### Getting instructions on pc
[1. Download sdk to obtain (recommended)](#section161941989591)
```
Download the dailybuilds or officially released sdk compressed package by visiting the community website, and unzip and extract it according to your platform to the corresponding directory toolchain
```
[2. Compile by yourself](#section161941989592)
For compilation, please refer to the separate section above. Prebuilt is no longer available in the prebuilt directory of this project warehouse.
[3. Support operating environment](#section161941989593)
The linux version is recommended to be 64-bit above ubuntu 16.04, and other similar versions are also available; libc++.so quotes errors, please use ldd/readelf and other commands to check the library. Windows version is recommended. Windows 10 64-bit is recommended. If the lower version of the windows winusb library is missing, please use zadig to update the library. .
## More help and docs
Please check the Chinese description file ‘README_zh.md’ or raise an issue in the gitgee community.