AliOS Things 组件系统(uCube)
摘要: 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 数亿设备上的业务需求。
AliOS Things 组件系统(uCube)相关推荐
- Unity* 实体组件系统 (ECS)、C# 作业系统和突发编译器入门
Unity* 中的全新 C# 作业系统和实体组件系统不仅可以让您轻松利用以前未使用的 CPU 资源,还可以帮助您更高效地运行所有游戏代码.然后,您可以使用这些额外的 CPU 资源来添加更多场景动态和沉 ...
- HTTP--历史、组件系统
HTTP HTTP是超文本传输协议 HyperText Transfer Protocol 是互联网用的最广泛的网络协议 HTTP协议是在Web上进行数据交换的基础,是一种 客户端到服务器端之间的协议 ...
- 实体组件系统_实体组件系统介绍
实体组件系统 什么是实体组件系统?(What is Entity Component System?) Entity Component System is a software pattern co ...
- TOPERS中间件之一---嵌入式组件系统TECS
TECS(TOPPERS Embedded Component System)为TOPPERS推出的一个针对嵌入式系统,将各种软件模块封装为组件,并将组件结合在一起以实现快速构建大规模嵌入式系统软件的 ...
- 一套自生成组件系统的构想与实践
项目需求 一套功能类似于有赞商城后台管理系统中店铺-微页面的系统,该系统实现用户可以选择所需要的组件,拖动调整组件的顺序,以及编辑组件的内容并且在移动端展示等相关功能,如下图所示. 开始前的思考 系统 ...
- com组件 安全提示_CDE 解读化学药品注射剂生产所用的塑料组件系统相容性研究技术指南(试行)...
<极简工艺验证> <泰坦ICH> <极简数据完整性> <极简无菌> 国家药监局药品评审中心2020年10月21日正式发布了<化学药品注射剂生产所用 ...
- 动态配置页面 之 组件系统
什么是组件? 可替换部件,eg汽车制造业 什么是面向对象? 将问题拆分,如何拆分合理,各个部分的交互联系怎么做? 什么样子的结构是耦合的?如何一个系统的运转依靠于各个对象的运转 一个对象自己决定何时, ...
- 如何在cocos2d-x中使用ECS(实体-组件-系统)架构方法开发一个游戏?
引言 在我的博客中,我曾经翻译了几篇关于ECS的文章.这些文章都是来自于Game Development网站.如果你对这个架构方式还不是很了解的话,欢迎阅读理解 组件-实体-系统和实现 组件-实体-系 ...
- 中国人工智能学会通讯——机器人组件技术在智能制造系统中的应用
摘要:随着工业4.0时代的到来,如何将传统工厂改造成为个性化.网络化.柔性生产的智能制造系统成为了当前的研究热点.本文从智能制造系统和智能机器人系统的相似性出发,构建了基于机器人组件技术的智能制造系统 ...
最新文章
- 如何重新安装TCP/IP协议
- linux tomcat 进程杀掉_Linux下Tomcat的启动、关闭、杀死进程
- 【Java设计模式】策略模式
- golang mysql商业用例_完美起航-golang操作mysql用例
- 【C++】Visual Studio教程(一)-概述
- [json] JSON for Modern C++
- magxfer FTP 组件 的使用例子
- 【Java】application run failed Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and
- 147. Insertion Sort List
- tomcat使用方法大全
- Selenium自动化框架:数据驱动、关键字驱动和混合
- jasperprint java_jasperReport的一些参数
- simulink仿真实例_推荐几本关于制冷仿真的书籍(制冷仿真必备)
- 1秒钟等于多少毫秒,等于多少微秒
- 如何系统学习Spring框架
- Mybatis事务隔离级别
- java小球落体问题_小球落体 -- 算法Java
- 美文:远方究竟有多远
- Python3 字符串小练习
- gdal+python计算NDVI
热门文章
- 【LeetCode笔记】剑指 Offer 21-. 调整数组顺序使奇数位于偶数前面(Java、双指针)
- python列表嵌套字典取值_我的 python 学习历程-Day05 字典/字典的嵌套
- ssh linux 配置文件详解,Linux ssh服务常用配置的详细描述及建议配置
- 3测试图片显示置信度_云上的移动性能测试平台
- linux7yum安装mysql,CentOS7 使用yum安装mysql
- 的使用go_使用 Go 开发 Prometheus Exporter
- 通讯可以并联吗_工业控制知识:吃透RS485通讯的连接方式,接485总线就简单多了...
- 博士生Science发文:很庆幸导师要求每周交工作进展汇报!
- 进击的美少女!浙大学姐两年发14篇论文! 一作10篇,顶刊4篇!
- 破除“论文至上”!两部委发文规范SCI指标使用