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规则和 控件的设计,载入工程 。这些步骤 有些繁琐,给入门增加了难度。