基本信息

1. 目录结构

ucs
├── appBaseLibs                 # 应用框架基础库主目录
├── appExtension                # 应用中可用于界面中配置加载的 QT UI 扩展库主目录
├── appFramework                # 应用主功能业务逻辑框架插件主目录
├── appTest                     # 应用测试插件主目录
├── buildchain                  # 应用框架编译链主目录
├── cmake                       # cmake自定义函数模块目录
├── config                      # 应用框架编译配置文件目录
├── deploy                      # 应用部署文件目录
├── deps                        # 应用框架编译及运行时依赖库目录
├── doc                         # 文档目录
└── README.md                   # README.md文件

为了方便代码编译和管理, UCS对源码工程目录进行了一定的规划和设计. 如上所示.

  • appBaseLibs

    存放本项目中开发的公共基础库, 比如在多个插件中都可以用到的eaEvent库.

    其编译后的库和头文件需要安装到 ./deps/workspace/install 目录下, 可以供其他插件编译和运行时依赖.

  • appExtension

    存放本项目中开发的QT UI扩展库, 编译后生成的库文件需要安装到 ./deploy/bin/app/models 目录下, 供QT插件框架加载.

  • appFramework

    应用的各类主要功能和业务逻辑插件目录, 编译后需要对生成的插件库及其他指定资源通过bundle打包处理, 并将打包后的插件安装到 ./deploy/bin/app/bundles 目录. 应用运行时会自动将 bundles 目录下的插件提取到 ./deploy/bin/app/codeCache 缓存目录中进行加载.

  • appTest

    应用测试插件目录, 编译后需要对生成的插件库及其他指定资源通过bundle打包处理, 并将打包后的插件安装到 ./deploy/bin/app/devbundles 目录. 应用运行时会自动将 devbundles 目录下的插件提取到 ./deploy/bin/app/codeCache 缓存目录中进行加载.

  • buildchain

    UCS编译工具使用的是cmake, buildchain目录下存放不同平台下的cmake的编译工具链配置.

  • cmake

    存放一些自定义的cmake函数模块等.

  • config

    存放一些不同平台下的环境配置文件,如 Qt5DIR 主目录配置等.

  • deploy

    应用的部署目录, 包括各类插件、配置文件、资源文件、运行脚本、日志文件等.

  • deps

    应用框架编译及运行时依赖库目录. 其中

    • framework目录存放OSP等框架依赖库, 以及bundle打包工具等;

    • thridparty目录存放第三方开源库依赖库;

    • workspace目录存放UCS项目中开发的依赖库.

  • doc

    文档目录.


2. 编译系统

UCS 编译系统使用的是 cmake , 为了方便每个插件或库都可以单独进行编译和打包, 每个插件或库都是独立的一个cmake工程, 并单独编写了cmake工程文件(CMakeLists.txt)、编译脚本(make.sh)以及打包脚本(bundle.sh). 同时也编写了统一的顶层编译脚本(make.sh), 方便统一编译和打包.

在appBaseLibs、appExtension、appFramework、appTest目录下均提供了统一编译脚本(make.sh)以及清理脚本(clean.sh).


3. 开发说明

在目前的功能和业务架构基础上, UCS 的开发类型大致可分为以下三类:

  • 公共库, 作为其他库或插件的依赖.

  • OSP插件, 实现应用的某项功能或业务的独立模块, 可与其他插件进行服务调用和通信, 由OSP插件框架统一加载、启动、停止和卸载, 管理其生命周期.

  • QT插件库, 用于底盘、上桩等不同业务逻辑的定制, 可根据xml配置进行加载显示.

可根据具体业务需要, 选择合适的开发类型进行开发. 选定开发类型后可参考对应类型主目录下的样例工程, 进行项目的创建和开发, 目录分布如下:

  • 公共库, 位于 appBaseLibs 目录.

  • OSP插件, 位于 appFramework 和 appTest 目录.

  • QT插件库, 位于 appExtension 目录.