aframe架构
下面 是 avos 平台 aframe 架构 的项目开发 整体框架图。
对照 类win32 UI api 的项目开发 整体框架图,aframe架构在做了一些变动和调整
avos层中 ,首先 UI app 被替换成interpreter task ,该解释器用来解析 在PC上制作,烧入rom的最终xml 脚本,透过上层的xml 脚本进入到 各个控件的c code中。 原先 寥寥可数的只有单一UI功能的controls部分(只有t_control,t_filelist,t_infobar.,t_menu, t_radio_group,t_window)被替换成可实现各种功能的afcontrol。
system app 被废弃不用 ,取而代之的是 KSERVICE_PRI FSSERVICE_PRI USERVICE_PRI UISERVICE_PRI 等几个 service ,其他app保留,驱动 和 OS 的其他部分也保留不动
这样带来一个 上层poeject 部分编写的变动,原先纯粹用c code写的部分,现在除ctrl用 c code 实现 方法之外 ,xml之间的脚本全部用 PC端工具 编写,编译和资源整体打包成 独立的 res 文件系统 ,由 interpreter 在 项目running 时 解释执行 。原先的 win32 api编程变成了 面向对象的 控件设计和 xml脚本连接 ,有点类似visual basic。
这样带来 一个好处 ,code 可以重复利用,并且用户的 编程量减少。举个例子 ,原先 对app 发出请求 的部分现在 变成了一个 player控件 ,现在用户只需使用xml调用player控件的具体属性,方法或发消息就行了。原先上层 全部用c 写的 code被 封装到控件中,用户关心的 code少之又少。不过 也有一个不利 ,就是 interpreter 跑起来会有执行速度的延迟 和 载入xml解析耗费一定的内存量。 用户必须 了解aframe的xml规则和 控件的设计,载入工程 。这些步骤 有些繁琐,给入门增加了难度。