欢迎光临112期刊网!
网站首页 > 论文范文 > 计算机论文 > 软件技术 > 嵌入式GUI系统EFL研究

嵌入式GUI系统EFL研究

日期:2023-01-24 阅读量:0 所属栏目:软件技术


摘 要:摘要:Enlightenment从单纯的窗口管理器发展了到目前的桌面环境,其应用领域也涵盖了移动设备和PC桌面。EFL从Enlightenment中独立了出来,成为一个嵌入式GUI系统,被应用到多个大型项目中。EFL系统中的核心模块包括Evas, Edje, Ecore和Elementary。其中,Evas是画布层,Ecore是GUI系统中的事件处理的底层模块。Edje采用文本格式的EDC文件来设计GUI界面,并在程序运行时动态加载二进制的Eet文件。这样,把界面设计和程序代码分离开来,这是EFL区别于其他流行GUI系统的显著特征之一。

关键词:关键词:EFL;GUI;窗口系统;系统架构;扩展性


中图分类号:TB51  文献标识码:A      文章编号:

0   引言
    GUI系统是嵌入式Linux平台的重要组成部分之一,其性能和效率直接影响平台中所有应用程序的运行速度。平台中应用程序的外观和各种图形特效的实现都依赖于GUI系统。GTK+, Qt都是嵌入式Linux平台中广泛应用的开源GUI系统。EFL是继Gtk+, Qt之后的又一个新兴的开源GUI系统【1】。
    EFL起源于开源的窗口管理器项目Englightenment。Englightenment有两个重要的版本E16和E17。早在1997年Englightenment就发布了E16,在当时E16窗口管理器是一个非常强大并且高度可配置的桌面环境。它能提供多种图形效果,包括窗口滑动,着色动画,波纹等。 E17的开发是从2000年开始的, 对E16进行了重新设计并添加了许多新的功能。从E16到E17,Englightenment从一个窗口管理器发展到了类似GNOME,KDE的桌面环境。 E17的一个重要变化就是把系统中的所有图形界面相关的模块组合成一个独立的GUI系统Enlightenment Foundation Libraries(简称EFL)。Enlightenment与EFL的依赖关系,正如GNOME依赖于GTK,KDE依赖于 Qt一样【2】。EFL作为一个GUI系统,就从Englightenment桌面环境中独立出来了,并发展成为一个可移植的、性能优化的图形系统。

1. EFL系统架构
    EFL系统的框架如图1所示,其主要组成模块包括Elementary, Ecore, Edje, Evas以及Eina。
 
 
1.1 Evas图形库
    Evas模块为整个EFL系统提供最基本的画布API。Evas画布所支持的图形基元包括常见的矩形、图像、单行文本、多行文本、线段、多边形以及渐变形状,包括直线渐变,辐射渐变和矩形渐变等。与GTK/GDK所采用的立即绘图模式相比,Evas采用的是保留模式,如图2所示。应用程序创建所需要的Evas图形对象,并可以在运行期间修改对象。Evas引擎负责应用程序中所有图形对象的绘制。在发生重绘现象时,应用程序不需要去处理具体的Evas对象的重绘,而是由Evas图形引擎负责。Evas支持的后端除了X11,还有OpenGL, Xrender,Framebuffer等。Evas图形库经过高度优化,内存消耗低,为EFL在嵌入式系统上的提供了性能保证。
 
1.2 Edje布局引擎
    Edje布局引擎是EFL区别与其他嵌入式GUI系统的一个重要特性。Edje是基于Evas的一个复杂的图形设计和布局模块。通过在界面和程序代码之间提供一个抽象层,来实现灵活复杂的动态布局和动画。Edje把应用程序的图形界面设计与功能逻辑代码实现分离开来,实现真正的MVC设计模型。Edje的GUI界面用一种类C语法的文本EDC文件来描述。因此,基于Edje的应用程序由两部分构成,一部分是描述应用程序图形界面的EDC文件,另一部分是实现应用程序逻辑功能的C代码。这两部分相互独立,使得界面设计和代码实现都变得更加简单。需要更新应用程序的界面风格时,只需要修改EDC文件,而不需要改动C代码。
1.3 Ecore
    与Evas和Edje不同的是,Ecore是一个非GUI模块。Ecore是EFL系统专门为嵌入式系统设计的一个底层库,实现了EFL系统中的任务处理,消息队列,基本数据结构,IPC机制,以及网络通讯和时钟等功能。同时,Ecore对常用的UNIX系统函数和窗口系统Xlib的API进行了封装。Ecore是完全模块化的,根据其功能,Ecore提供的抽象模块包括Ecore X, Ecore EVAS, Ecore Job, Ecore IPC, Ecore Config等。Ecore在EFL中充当的角色,就像GLib之于GTK+一样。
1.4 Elementary控件库
    Elementary是EFL针对移动设备小屏幕触摸屏的特性所提供的一套基本控件库,包括窗口,文本标签,按钮,图标,文本输入框等。

2. 基于Edje的应用程序界面设计
2.1 EDC界面设计文件简介
    EDC文件包含两个重要部分:images部分和collections部分。Images部分列出了图形界面中用到的所有图片资源。Collections部分包含一个或多个group。每个group都定义了一个完整的用户界面。Group又由parts和programs组成。part是界面设计中的最小单元。Edje支持Part的类型有文本, 矩形和图像。每个Part可以拥有多个状态描述。

    Edje使用相对坐标来定义界面布局。描述一个界面元素的位置和尺寸只需要定义该元素的左上角和右下角的相对坐标。绝对坐标将由应用程序根据窗口大小计算得到。屏幕窗口的左上角的相对左边是(0.0, 0.0),右下角的相对坐标是(1.0, 1.0).

2.2 用户界面的动态加载
    EFL提供编译工具edje_cc把文本文件编译成二进制文件。应用程序在运行期间动态加载文件,把图形界面绘制到屏幕上,如图3所示。

 
3. EFL在嵌入式Linux平台中应用
3.1 EFL与输入法系统SCIM的集成
    EFL的子系统Ecore是基于模块设计的,其中的Ecore_IMF模块提供了对输入法框架IMF(Input Method Framework)的支持。Ecore_IMF基于插件的方式在运行期间动态加载文件系统目录“/usr/lib/ecore/immodules”下的输入法模块。智能输入法平台SCIM(Smart Common Input Method)是嵌入式Linux中常用的开源输入法系统,SCIM只是一个框架,具体的特定语言的输入法的实现由输入法引擎IME(Input Method Engine)负责。基于SCIM来实现一个Ecore_IMF输入法插件,就完成了EFL与输入法系统的集成,如图4所示。

 
3.2 EFL与OpenGL ES/EGL的集成
    EFL的图形模块Evas中的渲染引擎提供了多种实现方式,包括基于DirectFB的Evas渲染引擎,基于X11的渲染引擎,以及基于OpenGL ES的渲染引擎evas_gl_x11。evas_gl_x11使得EFL应用程序能够支持3D的图形效果,对EFL作了有力的扩展。

4. 结语
    本文论述了嵌入式GU系统EFL的系统组成模块,以及如何使用Edje来设计EFL应用程序的图形界面,最后提到了EFL在嵌入式Linux平台中与其他模块的集成问题。EFL作为一个嵌入式GUI系统,有着广阔的应用前景,目前已经应用到了很多移动Liux平台中,包括Nokia的Maemo, OpenMoko手机平台,以及机顶盒设备中。

本文链接:http://www.qk112.com/lwfw/jsjlw/ruanjianjishu/229589.html

论文中心更多

发表指导
期刊知识
职称指导
论文百科
写作指导
论文指导
论文格式 论文题目 论文开题 参考文献 论文致谢 论文前言
教育论文
美术教育 小学教育 学前教育 高等教育 职业教育 体育教育 英语教育 数学教育 初等教育 音乐教育 幼儿园教育 中教教育 教育理论 教育管理 中等教育 教育教学 成人教育 艺术教育 影视教育 特殊教育 心理学教育 师范教育 语文教育 研究生论文 化学教育 图书馆论文 文教资料 其他教育
医学论文
医学护理 医学检验 药学论文 畜牧兽医 中医学 临床医学 外科学 内科学 生物制药 基础医学 预防卫生 肿瘤论文 儿科学论文 妇产科 遗传学 其他医学
经济论文
国际贸易 市场营销 财政金融 农业经济 工业经济 财务审计 产业经济 交通运输 房地产经济 微观经济学 政治经济学 宏观经济学 西方经济学 其他经济 发展战略论文 国际经济 行业经济 证券投资论文 保险经济论文
法学论文
民法 国际法 刑法 行政法 经济法 宪法 司法制度 法学理论 其他法学
计算机论文
计算机网络 软件技术 计算机应用 信息安全 信息管理 智能科技 应用电子技术 通讯论文
会计论文
预算会计 财务会计 成本会计 会计电算化 管理会计 国际会计 会计理论 会计控制 审计会计
文学论文
中国哲学 艺术理论 心理学 伦理学 新闻 美学 逻辑学 音乐舞蹈 喜剧表演 广告学 电视电影 哲学理论 世界哲学 文史论文 美术论文
管理论文
行政管理论文 工商管理论文 市场营销论文 企业管理论文 成本管理论文 人力资源论文 项目管理论文 旅游管理论文 电子商务管理论文 公共管理论文 质量管理论文 物流管理论文 经济管理论文 财务管理论文 管理学论文 秘书文秘 档案管理
社科论文
三农问题 环境保护 伦理道德 城镇建设 人口生育 资本主义 科技论文 社会论文 工程论文 环境科学