构建用户图形界面GUI开发环境.ppt_第1页
构建用户图形界面GUI开发环境.ppt_第2页
构建用户图形界面GUI开发环境.ppt_第3页
构建用户图形界面GUI开发环境.ppt_第4页
构建用户图形界面GUI开发环境.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第九章构建自己的嵌入式Linux 用户图形界面开发环境 嵌入式系统及其软件工具 本章提要 9 1嵌入式系统中的GUI 图形用户接口GUI GraphicalUserInterfaces 是指计算机与其使用者之间的对话接口 是计算机系统的重要组成部分 9 1 1嵌入式系统需要独特的GUI 需要高性能的 特殊显示要求的GUIWAP手机 可视电话 PDA等要求在尺寸小的显示屏上显示更多的信息 轻量级GUI的要求工业实时控制系统实时性要求比较高 不希望建立在累赘 庞大的GUI上 9 1 1嵌入式系统需要独特的GUI 嵌入式对GUI的基本要求包括 轻型 高效 高可靠性 可配制 有内存意识等 GUI是类似于OS的基础软件 从二次开发的角度看 GUI应能提供友好的开发环境 开发者可直观开发 9 1 2嵌入式GUI解决方案 1 不将GUI作为一个软件层从应用程序中剥离出来 GUI的支持逻辑由应用程序自己负责 针对特定的图形设备开发图形相关的功能函数 特点 显示逻辑和功能逻辑不分 程序结构差 可移植性能差 有大量重复代码 应用于 简单 单色的LCD输出屏的低端嵌入式产品 9 1 2嵌入式GUI解决方案 2 购买针对特定嵌入式操作系统的图形中间件软件包 特点 GUI和OS配合良好 可以直接使用 价钱昂贵 应用 uC OS II的uC GUI包 Nucleus的GRAFLX包 VxWorks的WinML包 9 1 2嵌入式GUI解决方案 3 采用独立软件开发商提供比较成熟的GUI产品 特点 采用双授权模式 应用 MiniGUI应用于中低端产品 跨OS 小巧高效 占用Flash300 500K Qt embeded应用于高端产品 只支持Linux 占用16MBFlash 9 1 2嵌入式GUI解决方案 4 采用开放源代码的嵌入式GUI 特点 价钱便宜 功能强大 存在软件缺陷和商业支持 应用 MicroWindows OpenGUI等 9 1 3GUI体系结构 GUI在嵌入式体系中的层次 9 1 3GUI体系结构 GUI内部体系结构 9 1 3GUI体系结构 图形操作功能 消息机制 字体 窗体 桌面管理等核心图形操作功能 GraphicAbstractLayer InputAbstractLayer 各种GUI对象 9 1 4GUI主要技术 消息机制和事件驱动 9 1 4GUI主要技术 屏幕管理技术 GUI由单窗口向多窗口发展 对于屏幕中的多个窗口的管理称为 屏幕管理技术 屏幕管理要解决 窗口之间的位置关系 窗口单元之间的显示顺序 当窗口位置和显示顺序发生变化时候窗口单元之间的变化关系等 另外 除了窗口单元 屏幕还要管理大量资源 字库 图标ICON 位图bitmap 输入法等 9 1 4GUI主要技术 屏幕管理技术 颜色平滑的过渡算法 对两种位图的每个颜色值按比例进行混合 9 1 4GUI主要技术 Alpha混合技术 渐变效果 9 2典型的嵌入式GUI系统 1 MicroWindows MicroWindows是一个较早出现的开放源码的嵌入式GUI软件 目前由Century软件公司维护 类似Windows的的API类似XWindow的客户 服务器结构提供三层结构 驱动 窗口管理 API接口更新速度较慢 图形引擎效率较低 9 2典型的嵌入式GUI系统 1 MicroWindows 它的主要特色在于提供了比较完整的图形功能 支持多种外部设备输入 包括液晶显示器 鼠标和键盘等 MicroWindows能通过调色板技术将RGB格式的颜色空间转换成目标机器上最相近的颜色 然后显示出来 9 2典型的嵌入式GUI系统 2 MiniGUI MiniGUI是一个面向实时嵌入式系统或者实时系统的轻量级图形用户界面支持系统 主要运行在Linux平台上 早期由魏永明先生和众多志愿者开发 是我国为数不多的在国际比较知名的自由软件之一 现在由北京飞漫软技术有限公司 进行维护和商业运作 9 2典型的嵌入式GUI系统 2 MiniGUI 提供了完备的窗口机制 提供了多个线程中的多窗口机制 支持多种字体和字符集合 支持GIF BMP JPEG PCX TGA等图象文件 支持Windows的资源文件 小巧 包括全部功能的支持库大小为300K左右 可定制配置并编译高稳定性和高性能 9 2典型的嵌入式GUI系统 3 Qt embeded Qt Embedded是一个专门为嵌入式系统设计图形用户界面的工具包 Qt Embedded兼容Qt的软件包 便于移植 采用C 编程实现Qt是挪威Trolltech软件 被诺基亚收购 公司的产品 它为各种系统提供图形用户界面的工具包 Linux桌面系统的KDE就是基于Qt库开发的 9 2典型的嵌入式GUI系统 3 Qt embeded 功能强大 控件丰富 结构复杂 资源消耗较大 效率滴 适合于高端配置的硬件环境 MiniGUI和Qt界面比较 9 2典型的嵌入式GUI系统 MiniGUI是一种面向嵌入式系统和实时系统的图形用户界面支持系统 它主要运行于Linux控制台 实际可以运行在任何一种具有线程支持的POSIX兼容系统上 MiniGUI同时也是国内最早出现的几个自由软件项目之一 与Microwindows相比 MiniGUI和MicroWindows均为自由软件 只是前者遵循LGPL条款 后者遵循MPL条款 这两个系统的技术路线也有所不同 MiniGUI的策略是首先建立在比较成熟的图形引擎之上 比如SVGALib和LibGGI 开发的重点在于窗口系统如图形接口 MicroWindows目前的开发重点则在底层的图形引擎 窗口系统和图形接口方面的功能还比较欠缺 举个例子来说 MiniGUI有一套用来支持多字符集和多编码的函数接口 可以支持各种常见的字符集 包括GB Big5 Unicode等 而MicroWindows在多字符集的支持上尚没有统一接口 9 3MiniGUI MiniGUI是一个基于SVGALib Framebuffer和LinuxThread库的多窗口图形用户界面支持系统 可以应用在电视顶置盒 实时控制系统 掌上型电脑等诸多场合 可定制 小巧 开放源代码 多线程和多窗口 使用消息驱动作为应用程序的构架MiniGUI中的窗口分为四类 主窗口 对话框 控件和主窗口中的子窗口 9 3 1MiniGUI主要特点 MiniGUI还支持一些常见的GUI元素弹出式菜单 插入符 定时器 光标 快捷键等 9 3 1MiniGUI主要特点 多字体和多字符集支持 9 3 1MiniGUI主要特点 MiniGUI采用分层结构 引入的图形抽象层和输入抽象层 大大提高了MiniGUI的可移植性 9 3 1MiniGUI主要特点 MiniGUI需要多线程支持MiniGUI的许多模块都以单独的线程运行 利用线程来支持多窗口 MiniGUI利用线程之间的同步操作实现了客户线程和服务器线程之间的微客户 服务器机制 9 3 1MiniGUI主要特点 如何获取MiniGUI 目前 MiniGUI可免费下载的稳定版本是1 3 3 可以从北京飞漫软件技术有限公司的网站下载MiniGUI源代码 开发文档及示例程序 免费下载的MiniGUI只能用于开发GPL或其他公开源码的应用软件 如果您要利用MiniGUI开发专有或商业软件 则必须从北京飞漫软件技术有限公司购买商业授权 模式1MiniGUI thread可以在不同的线程中建立多个窗口 但所有的窗口都在一个进程空间特点 占用资源少 控制简单对系统可靠性有影响 9 3 2MiniGUI的三种模式 模式2MiniGUI lite每个程序都是单独的进程 每个进程可以建立多个窗口 进程之间 窗口之间互不影响 特点 占用资源多 较好解决了进程间窗口管理 9 3 2MiniGUI的三种模式 9 3 2MiniGUI的三种模式 模式3MiniGUI StandaloneMiniGUI以独立进程方式运行 当其它进程有需要时候 每次只能以最大化的方式显示一个窗体 特点 几乎可以运行在所有操作系统上 应用最广的模式 9 3 3MiniGUI配置和交叉编译 Step1 宿主机上配置Framebuffer需要激活VESAFrameBuffer驱动程序修改 boot grub menu lst文件 TitleRedHatLinux 2 4 x framebuffer Root hd0 0 Kernel boot vmlinux 2 4 xroroot dev hda1vga 0 x0317initrd boot initrd 2 4 x img Framebuffer是linux内核的一种驱动程序接口 这种接口将显示设备抽象为帧缓冲区 Framebuffer通过缓冲区提供了使用显示设备的一般接口 9 3 3MiniGUI配置和交叉编译 Step2 下载MiniGUI源代码从网上免费得到MiniGUI的资源文件压缩包MiniGUI函数库源代码 libminigui 1 6 x tar gzMiniGUI所使用的资源 包括基本字体 图标 位图 输入法等 minigui res 1 6 tar gzMiniGUI的综合演示程序 mg samples 1 6 x tar gz 9 3 3MiniGUI配置和交叉编译 Step3 在PC机上编译并安装libminigui root vm dev tarjxvflibminigui 1 6 x tar gz root vm dev cdlibminigui 1 6 x root vm devlibminigui 1 6 x configure root vm devlibminigui 1 6 x make root vm devlibminigui 1 6 x su cmakeinstall 9 3 3MiniGUI配置和交叉编译 Step4 把libminigui加入库搜索路径默认情况下MiniGUI的函数库被安装在 usr local lib目录中 所以应该确保此目录已经在 etc ld so conf d中 root vm dev cd etc ld so conf d root vm devld so conf d viminigui conf写上 usr local lib运行ldconfig命令刷新系统共享资源库缓存 root vm devld so conf d su c sbin ldconfig 9 3 3MiniGUI配置和交叉编译 Step5 在pc机上安装MiniGUI的资源 root vm dev tarjxvfminigui res 1 6 tar gz root vm dev cdminigui res 1 6 root vm devminigui res 1 6 su cmakeinstall 9 3 3MiniGUI配置和交叉编译 Step6 在pc机上编译应用程序的例子 root vm dev tarjxvfmg samples 1 6 x tar gz root vm dev cdmg samples 1 6 x root vm devmg samples 1 6 x configure root vm devmg samples 1 6 x make 9 3 3MiniGUI配置和交叉编译 Step7 交叉编译libminigui root vm dev tarjxvflibminigui 1 6 x tar gz root vm dev cdlibminigui 1 6 x root vm devlibminigui 1 6 x autogen sh root vm devlibminigui 1 6 x build buildlib smdk2410 root vm devlibminigui 1 6 x make root vm devlibminigui 1 6 x makeinst

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论