摘要: 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)相关推荐

  1. Unity* 实体组件系统 (ECS)、C# 作业系统和突发编译器入门

    Unity* 中的全新 C# 作业系统和实体组件系统不仅可以让您轻松利用以前未使用的 CPU 资源,还可以帮助您更高效地运行所有游戏代码.然后,您可以使用这些额外的 CPU 资源来添加更多场景动态和沉 ...

  2. HTTP--历史、组件系统

    HTTP HTTP是超文本传输协议 HyperText Transfer Protocol 是互联网用的最广泛的网络协议 HTTP协议是在Web上进行数据交换的基础,是一种 客户端到服务器端之间的协议 ...

  3. 实体组件系统_实体组件系统介绍

    实体组件系统 什么是实体组件系统?(What is Entity Component System?) Entity Component System is a software pattern co ...

  4. TOPERS中间件之一---嵌入式组件系统TECS

    TECS(TOPPERS Embedded Component System)为TOPPERS推出的一个针对嵌入式系统,将各种软件模块封装为组件,并将组件结合在一起以实现快速构建大规模嵌入式系统软件的 ...

  5. 一套自生成组件系统的构想与实践

    项目需求 一套功能类似于有赞商城后台管理系统中店铺-微页面的系统,该系统实现用户可以选择所需要的组件,拖动调整组件的顺序,以及编辑组件的内容并且在移动端展示等相关功能,如下图所示. 开始前的思考 系统 ...

  6. com组件 安全提示_CDE 解读化学药品注射剂生产所用的塑料组件系统相容性研究技术指南(试行)...

    <极简工艺验证> <泰坦ICH> <极简数据完整性> <极简无菌> 国家药监局药品评审中心2020年10月21日正式发布了<化学药品注射剂生产所用 ...

  7. 动态配置页面 之 组件系统

    什么是组件? 可替换部件,eg汽车制造业 什么是面向对象? 将问题拆分,如何拆分合理,各个部分的交互联系怎么做? 什么样子的结构是耦合的?如何一个系统的运转依靠于各个对象的运转 一个对象自己决定何时, ...

  8. 如何在cocos2d-x中使用ECS(实体-组件-系统)架构方法开发一个游戏?

    引言 在我的博客中,我曾经翻译了几篇关于ECS的文章.这些文章都是来自于Game Development网站.如果你对这个架构方式还不是很了解的话,欢迎阅读理解 组件-实体-系统和实现 组件-实体-系 ...

  9. 中国人工智能学会通讯——机器人组件技术在智能制造系统中的应用

    摘要:随着工业4.0时代的到来,如何将传统工厂改造成为个性化.网络化.柔性生产的智能制造系统成为了当前的研究热点.本文从智能制造系统和智能机器人系统的相似性出发,构建了基于机器人组件技术的智能制造系统 ...

最新文章

  1. 如何重新安装TCP/IP协议
  2. linux tomcat 进程杀掉_Linux下Tomcat的启动、关闭、杀死进程
  3. 【Java设计模式】策略模式
  4. golang mysql商业用例_完美起航-golang操作mysql用例
  5. 【C++】Visual Studio教程(一)-概述
  6. [json] JSON for Modern C++
  7. magxfer FTP 组件 的使用例子
  8. 【Java】application run failed Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and
  9. 147. Insertion Sort List
  10. tomcat使用方法大全
  11. Selenium自动化框架:数据驱动、关键字驱动和混合
  12. jasperprint java_jasperReport的一些参数
  13. simulink仿真实例_推荐几本关于制冷仿真的书籍(制冷仿真必备)
  14. 1秒钟等于多少毫秒,等于多少微秒
  15. 如何系统学习Spring框架
  16. Mybatis事务隔离级别
  17. java小球落体问题_小球落体 -- 算法Java
  18. 美文:远方究竟有多远
  19. Python3 字符串小练习
  20. gdal+python计算NDVI

热门文章

  1. 【LeetCode笔记】剑指 Offer 21-. 调整数组顺序使奇数位于偶数前面(Java、双指针)
  2. python列表嵌套字典取值_我的 python 学习历程-Day05 字典/字典的嵌套
  3. ssh linux 配置文件详解,Linux ssh服务常用配置的详细描述及建议配置
  4. 3测试图片显示置信度_云上的移动性能测试平台
  5. linux7yum安装mysql,CentOS7 使用yum安装mysql
  6. 的使用go_使用 Go 开发 Prometheus Exporter
  7. 通讯可以并联吗_工业控制知识:吃透RS485通讯的连接方式,接485总线就简单多了...
  8. 博士生Science发文:很庆幸导师要求每周交工作进展汇报!
  9. 进击的美少女!浙大学姐两年发14篇论文! 一作10篇,顶刊4篇!
  10. 破除“论文至上”!两部委发文规范SCI指标使用