
# 技能介绍
在专业版HiLens管理控制台注册设备后，可将技能部署到设备上，运行技能。
当前华为HiLens支持如下两种格式的技能。
- [技能包]
- [容器镜像]
单设备部署技能的操作请见[创建部署工程](https://support.huaweicloud.com/usermanualpro-hilens/hilens_07_0026.html)。
 #### 技能包
RPM格式技能包。
RPM包中包含用户的业务代码、用户的模型和业务的配置文件。
```
├──{app name}-{version}-{release}.{aarch}.rpm 
│   ├── app.config  表明在运行环境中启动业务服务的命令和停止服务的命令，以及业务服务的名字，必选：参数说明见下表
│   ├── bin  必选：用户自定义的业务代码 
│   │   ├──main.sh 
│   │   ├──main(编译c++程序生成的二进制可执行文件) 
│   │   ├──* 其它二进制/可执行文件
│   ├── lib可选：动态库 
│   ├── data可选：应用层配置参数 
│   ├── model可选：业务的模型
│   ├── etc可选：应用配置文件
│   │   ├──graph 应用流程图
其中{app name}仅支持字母数字和下划线“_”，只能以字母或者下划线开始；{version}仅支持数字和点“.”； {release}仅支持数字； {aarch}仅支持armv7和aarch64。
```
表1app.config参数说明 
| 配置项         | 描述                                                                                        |
|:---|:---|
| 应用名         | 应用名称，只能以英文字母开头，不能包含中文以及\&!'\\"\<\>=，不超过36个字符。                                             |
| 应用描述        | 应用描述，表示该应用的用途，由应用开发者填写，以便使用者理解该应用的用途                                                      |
| 应用版本        | 应用版本，建议使用major.minor.point的方式。                                                            |
| 启动命令        | 启动脚本，表明该应用在运行环境中启动应用服务的脚本命令，用户可以自定义启动脚本。固定为\[app-root\]/bin/main或\[app-root\]bin/main.sh。 |
| 停止命令        | 停止脚本，表明该应用在运行环境中停止应用服务的脚本命令，用户可以自定义停止脚本。                                                  |
| 安装rpm包      | 在第一次使用时需要安装的rpm包，可以是一个也可以是多个。                                                             |
| 支持硬件        | 应用可以运行需要的硬件平台。                                                                            |
| 执行程序类型及环境依赖 | 原生native程序及libc版本要求；Python程序，Python版本要求。                                                  |
| 资源要求        | 运行所必须的资源类型及数量，如CPU及其算力、内存及尺寸、存储及空间尺寸等。                                                    |
   
app.rpm的打包，用户可以通过使用ModelBox的开发环境，将模型和业务逻辑代码等打包成相应的rpm包。
 #### 容器镜像
容器镜像格式是一个包含应用运行需要的各种组件和应用本身的镜像。可以使用ModelBox提供的软件包打包工具或者是镜像打包工具，也可以按照下面的格式手动打包。
应用容器镜像包含三层：基础镜像层、ModelBox框架层和应用层。
- 基础镜像层：提供下层设备的驱动，以及其中ModelBox框架和基础功能单元依赖的一些第三方库如FFmpeg，TensorRT，OpenCV等。
- ModelBox框架层：包括ModelBox基础框架包和ModelBox基础功能单元包。
- 应用层：包含用户自定义的一些功能单元，以及功能单元需要的一些第三方库，以及业务流程图等。
 
#### 相关操作
- [创建部署工程](https://support.huaweicloud.com/usermanualpro-hilens/hilens_07_0026.html)：部署技能至端侧设备上。
- [添加作业](https://support.huaweicloud.com/usermanualpro-hilens/hilens_07_0027.html)：在部署工程上添加作业，运行技能。
- [查看部署信息](https://support.huaweicloud.com/usermanualpro-hilens/hilens_07_0028.html)：查看已创建的部署工程详情。
- [升级部署](https://support.huaweicloud.com/usermanualpro-hilens/hilens_07_0029.html)：基于当前部署工程，更新部署信息，升级部署。
- [删除部署](https://support.huaweicloud.com/usermanualpro-hilens/hilens_07_0030.html)：删除多余的部署工程。
 
