1@page component 组件介绍 2 3[更正文档](https://gitee.com/alios-things/documentation/edit/rel_3.3.0/manual/component.md)      [贡献说明](https://help.aliyun.com/document_detail/302301.html) 4 5组件(Component)是构成Alios Things的基本单元。从系统角度看,除了构建脚本和辅助工具外,一切都是组件;根据组件的应用范围,可以将组件划分为以下三类: 6 - BSP组件:指的是./hardware目录下的arch、chip、board三大组件的集合。包含了芯片架构、芯片驱动、板级区别等。 7 - 内核组件:指的是./kernel目录下的RTOS内核的集合。其中rhino内核是AliOS Things提供的最小内核功能集。 8 - 系统组件:指的是./components下所有系统组件的集合 9 - 应用组件:指的是./solutions下的所有HaaS参考案例,包含helloworld_demo,云端一体/ 云端钉一体的参考设计等。 10 11本文描述的组件主要是./components下面的系统组件部分。 12 13**组件之间的关系** 14 15原则上组件功能应该相对独立,可以单独对外提供接口和服务。但是在某些场景中,组件之间需要互相配合来一起完成一项复杂的功能。整理来看组件之间的关系可以分为必须组件和可选组件两种。 16 - 必选依赖:是指组件A在完成某个功能时,必须引入组件B,一起配合。例如:HTTP组件,完成访问HTTP服务器的功能,必须引入TCP/IP组件。 17 - 可选依赖:是指组件A在完成某个功能时,可以引入组件C,也可以引入组件D。例如:HTTP组件,要访问HTTPS服务器,可以引入mbedtls组件,也可以引入openssl组件,来完成访问服务器中加解密的功能。 18 19**组件的构成** 20 21为了使OS能被灵活地配置,适应多种硬件平台,AliOS Things的组件主要包含以下几个部分。 22 - include: 指的是该组件对外暴露的API接口定义。 23 - internal: 指的是该组件内部使用的API接口定义。 24 - src: 指的是该组件的源码实现部分。 25 - example: 组件使用示例代码。 26 - README.md: 组件介绍文档,包含概述、版权信息、目录结构、依赖组件、常用配置、API描述、使用示例、关键日志、FAQ等信息。 27 - package.yaml: AliOS Things 3.3版本采用的编译脚本。详细的.yaml语法信息可以参考《yaml语法说明》文章。 28 29 30@subpage a2sa \n 31@subpage ai_agent \n 32@subpage ble_host \n 33@subpage ble_netconfig \n 34@subpage cjson \n 35@subpage cli \n 36@subpage cplusplus \n 37@subpage debug \n 38@subpage driver \n 39@subpage epoll \n 40@subpage fatfs \n 41@subpage freetype \n 42@subpage http \n 43@subpage init \n 44@subpage jsoncpp \n 45@subpage kv \n 46@subpage libc_stub \n 47@subpage linksdk \n 48@subpage littlefs \n 49@subpage lwip \n 50@subpage mbedtls \n 51@subpage mbmaster \n 52@subpage mqtt \n 53@subpage netmgr \n 54@subpage oss \n 55@subpage ota \n 56@subpage posix \n 57@subpage py_engine \n 58@subpage ramfs \n 59@subpage SDL2 \n 60@subpage select \n 61@subpage sensor \n 62@subpage sntp \n 63@subpage trace \n 64@subpage uagent \n 65@subpage ucamera \n 66@subpage ucloud_ai \n 67@subpage udisplay \n 68@subpage ugraphics \n 69@subpage ulog \n 70@subpage uvoice \n 71@subpage uservice \n 72@subpage vfs \n