AliOS Things的架构可以适用于分层架构和组件化架构。

目录结构

AliOS Things core SDK包含以下目录:

AliOS-Things
├── application
│   ├── example          # 示例代码
│   └── profile          # 典型场景的应用方案
├── build                 # 编译构建相关工具和脚本
├── components            # 功能组件
│   ├── dm               # 设备管理组件
│   │   ├── bootloader
│   │   ├── ota
│   │   ├── ulog
│   │   └── und
│   ├── linkkit           # 阿里云IoT连接套件
│   ├── network           # IP网络协议栈组件
│   │   ├── http
│   │   ├── lwip
│   │   └── netmgr
│   ├── security          # 安全类组件
│   │   └── mbedtls
│   └── utility           # 工具类组件
│       ├── cjson
│       └── yloop
├── core                  # 内核及相关组件
├── document              # 说明文档
├── include               # 组件对外的头文件
├── platform              # 芯片平台支持和BSP
│   ├── arch             # 架构移植
│   ├── board            # 板级支持
│   └── mcu              # MCU, SoC 移植支持
└── projects              # 为不同开发环境提供的工程相关文件

增值类组件,可以通过uCube命令下载、安装、升级和卸载。 增值类组件,一般都安装到components目录。

components
├── bus             	       # 本地通讯协议
│   ├── canopen
│   ├── knx
│   ├── mbmaster
│   └── usb
├── dm             		# 设备管理
│   └── uagent
├── fs             		# 文件系统
│   ├── cramfs
│   ├── fatfs
│   ├── jffs2
│   ├── ramfs
│   ├── spiffs
│   ├── uffs
│   └── yaffs2
├── gui             		# 人机交互界面
│   ├── freetype-2.5.3
│   └── littlevGL
├── language                  # 脚本引擎
│   ├── jsengine
│   └── micropython
├── network                    # IP网络协议栈
│   ├── coap
│   ├── httpdns
│   ├── libsrtp
│   ├── lwm2m
│   ├── mal
│   ├── rtp
│   ├── sal
│   ├── umesh2
│   └── websocket
├── peripherals              # 外设驱动
│   ├── iot_comm_module
│   │   ├── mal
│   │   └── sal
│   └── sensor
├── security             	# 安全
│   └── linksecurity
├── service	                # 应用组件
│   ├── uai
│   ├── udata
│   └── ulocation
├── utility			# 工具类
│   ├── at
│   ├── debug_tools
│   └── zlib
└── wireless             	# 无线类
    ├── bluetooth
    └── lorawan