转载时请注明出处和作者联系方式
文章出处:http://www.limodev.cn/blog
作者联系方式:李先静 <xianjimli@gmail.com>
为了从整体上把握FTK的架构,我们先看看FTK的分层视图:
这里我们从下至上的来介绍一下各个组件的功能:
1.最下层是平台相关的适配层。它包括两个部分:
* 操作系统适配层:它主要是封装平台相关的函数,为上层提供统一的接口,比如mmap和pipe等。
* Backend: 主要是对输入/显示设备的抽象。像mouse/keyboard之类的输入设备和framebuffer的显示设备等。
2. 再上层是一些interface,这些interface为上层提供统一的接口,隔离了具体的实现细节,从提高了系统的可移植性和灵活性。比如图片解码器和字体引擎都可以根据实际情况进行配置。
3.再上层是窗口、窗口管理器和主循环等基础设施。
* 顶层窗口包括应用程序窗口,菜单条,状态栏和对话框几种,它们是放置各种控件的容器。
* 窗口管理器负责控制各个窗口的位置/大小和事件的分发。
* 主循环负责监听来自各个事件源的事件,如输入设备事件,定时器和idle等,然后调用相应的分发函数去处理这些事件。
4.再上层是控件的实现,如按钮、文本、进度条和列表框等等。这些大部分控件都是可以裁减的,开发者可以根据实际需求去掉一些不必要的组件。
5. 再上层是XUL,包括XML界面描述和脚本绑定。目前实现了lua的绑定,以后会增加其它脚本的绑定。
6.最上层是基于FTK的应用环境和平台。目前计划的有:
* 一个基本的桌面环境,包括桌面、Shell、文件管理器、音乐播放器和其它一些工具。
* PhoneME(J2ME)
* Webkit