AliOS Things 组件系统(uCube)

摘要: AliOS Things 是阿里巴巴提供的物联网操做系统,能够在不一样的设备上运行不一样的功能,甚至相同的设备运行不一样的功能,AliOS Things 基于组件管理: 一、 组件功能单一,复用组件提供的功能,好比通道、升级等功能。web

点击查看原文:http://click.aliyun.com/m/40568/安全

AliOS Things 是阿里巴巴提供的面向 IoT 领域、嵌入式物联网操做系统,拥有数百个组件,同时成指数级增加。组件实现了成千上万个业务,如何有效管理组件,使 AliOS Things 成为组件化操做系统,成为迫在眉睫的任务。app

组件
组件是 AliOS Things 功能单元,以目录的方式组织。组件包含源码、头文件、MakeFile 文件,Makefile 里面定义组件的编译规则:组件名、头文件、源码、组件依赖关系。AliOS Things 组件模型,提供了:svg

一、组件自身保持高内聚,低耦合,功能高度可复,好比kernel、mesh、id2等组件。 工具

二、组件之间任意组合,业务按需裁剪,好比芯片移植关注kernel组件,而业务开发须要链接、安全等组件。组件化

不一样的组件提供不一样的功能,而组件之间相互融合,如同叶子组成树木、树木组成森林,构成整个 AliOS Things 组件生态。有过 Java 开发经验的同窗,对 Maven 应该不陌生,Maven 做为 Java 的项目构建和管理工具,将项目过程规范化、自动化、高效化及强大的扩展性,uCube 但愿在 AliOS Thinngs 上实现 Maven 的功能,并知足 IoT 场景下的特殊需求。测试

编译体系
在介绍 uCube 以前,先介绍 AliOS Things 编译系统。AliOS Things 使用 Makefile 组织源码和依赖,app@board表示编译目标,app 指定业务代码,board 指定硬件板子信息,以 aos make helloworld@mk3060为例,编译步骤以下:操作系统

一、解析参数,拆分红 应用 helloworld和板子 mk3060 两部分。调试

二、递归查找 helloworld 应用依赖的组件。code

三、递归查找 mk3060 硬件板子依赖的组件。

四、合并二、3两步找到的全部组件并生成每一个组件编译规则。

五、编译每一个组件,连接组件生成最后的image。

uCube 功能模块
uCube 主要功能有:

一、编译系统:代码编译,Image下载、调试。

二、模板工程:生成模板工程。

三、组件管理:组件查找、添加、删除等,组件依赖关系处理、版本管理。

四、IDE支持

五、组件认证:造成组件规范,验证组件功能。

图片描述

uCube 功能模块

uCube 流程

uCube 项目流程为:

一、全局环境配置:工具链、AliOS Things源码目录

二、根据目标,创建工程,好比hellowo@mk3060

三、查找组件,确认须要添加的组件。

四、在添加的功能组件提供的API接口上作开发,实现功能

五、编译目标,烧写到板子上验证测试

图片描述

uCube项目流程

小结
uCube 目前解决了 AliOS Things:

一、配置系统:全局环境配置及对当个项目配置,造成统一配置管理系统

二、组件管理:组件查找包括本地组件查找和经过URL的组件查找,组件依赖关系处理,组件添加删除等功能。

三、编译系统:根据目标,依赖组件的信息,最终编译出可执行文件。

uCube 将会在 AliOS Things Sutdio IDE 实现功能可视化,同时增强代码管理、版本等功能,添加组件验证等机制,确保组件正常良好的环境。uCube 但愿经过组件魔方,造成组件生态,知足 IoT 数亿设备上的业务需求。