摘要: AliOS Things 是阿里巴巴提供的物联网操作系统,可以在不同的设备上运行不同的功能,甚至相同的设备运行不同的功能,AliOS Things 基于组件管理: 1、 组件功能单一,复用组件提供的功能,比如通道、升级等功能。
点击查看原文:http://click.aliyun.com/m/40568/
AliOS Things 是阿里巴巴提供的面向 IoT 领域、嵌入式物联网操作系统,拥有数百个组件,同时成指数级增长。组件实现了成千上万个业务,如何有效管理组件,使 AliOS Things 成为组件化操作系统,成为迫在眉睫的任务。
组件
组件是 AliOS Things 功能单元,以目录的方式组织。组件包含源码、头文件、MakeFile 文件,Makefile 里面定义组件的编译规则:组件名、头文件、源码、组件依赖关系。AliOS Things 组件模型,提供了:
1、组件自身保持高内聚,低耦合,功能高度可复,比如kernel、mesh、id2等组件。
2、组件之间任意组合,业务按需裁剪,比如芯片移植关注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为例,编译步骤如下:
1、解析参数,拆分成 应用 helloworld和板子 mk3060 两部分。
2、递归查找 helloworld 应用依赖的组件。
3、递归查找 mk3060 硬件板子依赖的组件。
4、合并2、3两步找到的所有组件并生成每个组件编译规则。
5、编译每个组件,链接组件生成最后的image。
uCube 功能模块
uCube 主要功能有:
1、编译系统:代码编译,Image下载、调试。
2、模板工程:生成模板工程。
3、组件管理:组件查找、添加、删除等,组件依赖关系处理、版本管理。
4、IDE支持
5、组件认证:形成组件规范,验证组件功能。
uCube 功能模块
uCube 流程
uCube 项目流程为:
1、全局环境配置:工具链、AliOS Things源码目录
2、根据目标,建立工程,比如hellowo@mk3060
3、查找组件,确认需要添加的组件。
4、在添加的功能组件提供的API接口上做开发,实现功能
5、编译目标,烧写到板子上验证测试
uCube项目流程
小结
uCube 目前解决了 AliOS Things:
1、配置系统:全局环境配置及对当个项目配置,形成统一配置管理系统
2、组件管理:组件查找包括本地组件查找和通过URL的组件查找,组件依赖关系处理,组件添加删除等功能。
3、编译系统:根据目标,依赖组件的信息,最终编译出可执行文件。
uCube 将会在 AliOS Things Sutdio IDE 实现功能可视化,同时加强代码管理、版本等功能,添加组件验证等机制,确保组件正常良好的环境。uCube 希望通过组件魔方,形成组件生态,满足 IoT 数亿设备上的业务需求。