⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 基于 linux 和 minigui 的嵌入式系统软件开发指南(八).htm

📁 详细的介绍了minigui的原理及其在linux上的实现.
💻 HTM
📖 第 1 页 / 共 4 页
字号:
      API,包括线条、矩形、圆弧等,并且兼容于 Borland 的 BGI API。第三层用 C++ 编写,提供了完整的 GUI 对象集。</P>
      <P>OpenGUI 采用 LGPL 条款发布。OpenGUI 比较适合于基于 x86 平台的实时系统,可移植性稍差,目前的发展也基本停滞。</P>
      <P><A id=3.3 name=3.3><B>3.3 Qt/Embedded</B></A><BR>Qt/Embedded是著名的 Qt 
      库开发商 TrollTech(<A href="http://www.trolltech.com/" 
      target=_blank>http://www.trolltech.com/</A>)发布的面向嵌入式系统的 Qt 版本。因为 Qt 是 KDE 
      等项目使用的 GUI 支持库,所以有许多基于 Qt 的 X Window 程序可以非常方便地移植到 Qt/Embedded 版本上。因此,自从 
      Qt/Embedded 以 GPL 条款形势发布以来,就有大量的嵌入式 Linux 开发商转到了 Qt/Embedded 系统上。比如韩国的 
      Mizi 公司,台湾省的某些嵌入式 Linux 应用开发商等等。</P>
      <P>不过,在笔者看来,Qt/Embedded 还有一些问题值得开发者注意:</P>
      <OL class=n01>
        <LI>目前,该系统采用两种条款发布,其中包括 GPL 条款。对函数库使用 GPL 条款,意味着其上的应用需要遵循 GPL 
        条款。当然了,如果要开发商业程序,TrollTech 也允许你采用另外一个授权条款,这时,就必须向 TrollTech 交纳授权费用了。 
        <LI>Qt/Embedded 是一个 C++ 函数库,尽管 Qt/Embedded 声称可以裁剪到最少 630K,但这时的 
        Qt/Embedded 库已经基本上失去了使用价值。低的程序效率、大的资源消耗也对运行 Qt/Embedded 的硬件提出了更高的要求。 
        <LI>Qt/Embedded 
        库目前主要针对手持式信息终端,因为对硬件加速支持的匮乏,很难应用到对图形速度、功能和效率要求较高的嵌入式系统当中,比如机顶盒、游戏终端等等。 
        <LI>Qt/Embedded 提供的控件集风格沿用了 PC 风格,并不太适合许多手持设备的操作要求。 
        <LI>Qt/Embedded 的结构过于复杂,很难进行底层的扩充、定制和移植,尤其是那个用来实现 signal/slot 机制的著名的 moc 
        文件。 </LI></OL><BR><BR>
      <P>因为上述这些原因,目前所见到的 Qt/Embedded 的运行环境,几乎是清一色基于 StrongARM 的 iPAQ。</P>
      <P><A id=3.4 name=3.4><B>3.4 MiniGUI</B></A><BR>MiniGUI(<A 
      href="http://www.minigui.org/" 
      target=_blank>http://www.minigui.org/</A>)是由笔者主持,并由许多自由软件开发人员支持的一个自由软件项目(遵循 
      LGPL 条款发布),其目标是为基于 Linux 的实时嵌入式系统提供一个轻量级的图形用户界面支持系统。该项目自 1998 年底开始到现在,已历经 
      3 年多的开发过程。到目前为止,已经非常成熟和稳定。目前,我们已经正式发布了稳定版本 1.0.9,并且开始了新版本系列的开发,即 MiniGUI 
      Version 1.1.x,该系列的正式版也即将发布。</P>
      <P>在 MiniGUI 几年的发展过程中,有许多值得一提的技术创新点,正是由于这些技术上的创新,才使得 MiniGUI 
      更加适合实时嵌入式系统;而且 MiniGUI 
      的灵活性非常好,可以应用在包括手持设备、机顶盒、游戏终端等等在内的各种高端或者低端的嵌入式系统当中。这些技术创新包括:</P>
      <OL class=n01>
        <LI>图形抽象层。图形抽象层对顶层 API 基本没有影响,但大大方便了 MiniGUI 
        应用程序的移植、调试等工作。目前包含三个图形引擎,SVGALib、LibGGI 以及直接基于 Linux FrameBuffer 的 
        Native Engine,利用 LibGGI 时,可在 X Window 上运行 MiniGUI 
        应用程序,并可非常方便地进行调试。与图形抽象层相关的还有输入事件的抽象层。MiniGUI 现在已经被证明能够在基于 
        ARM、MIPS、StrongARM 以及 PowerPC 等的嵌入式系统上流畅运行。 
        <LI>多字体和多字符集支持。这部分通过设备上下文(DC)的逻辑字体(LOGFONT)实现,不管是字体类型还是字符集,都可以非常方便地进行扩充。应用程序在启动时,可切换系统字符集,比如 
        GB、BIG5、EUCKR、UJIS。利用 DrawText 
        等函数时,可通过指定字体而获得其他字符集支持。对于一个窗口来说,同时显示不同语种的文字是可能的。MiniGUI 的这种字符集支持不同于传统通过 
        UNICODE 实现的多字符集支持,这种实现更加适合于嵌入式系统。 
        <LI>两个不同架构的版本。最初的 MiniGUI 运行在 PThread 
        库之上,这个版本适合于功能单一的嵌入式系统,但存在系统健壮性不够的缺点。在 0.9.98 版本中,我们引入了 MiniGUI-Lite 
        版本,这个版本在提高系统健壮性的同时,通过一系列创新途径,避免了传统 C/S 结构的弱点,为功能复杂的嵌入式系统提供了一个高效、稳定的 GUI 
        系统。 </LI></OL><BR><BR>
      <P>在 MiniGUI 1.1.0 版本的开发中,我们参照 SDL 和 Allegro 
      的图形部分,重新设计了图形抽象层,并增强了图形功能,同时增强了 MiniGUI-Lite 版本的某些特性。这些特性包括:</P>
      <OL class=n01>
        <LI>MiniGUI-Lite 支持层的概念。同一层可容纳多个能够同时显示的客户程序,并平铺在屏幕上显示。 
        <LI>新的 GAL 能够支持硬件加速能力,并能够充分使用显示内存;新 GAL 之上的新 GDI 接口得到进一步增强。新的 GDI 接口可以支持 
        Alpha 混和、透明位块传输、光栅操作、YUV覆盖、Gamma 校正,以及高级图形功能(椭圆、多边形、样条曲线)等等。 
      </LI></OL><BR><BR>
      <P>MiniGUI 新版本在图形方面的增强和提高,将大大扩展它的应用领域,希望能够对嵌入式 Linux 上的多媒体应用、游戏开发提供支持。</P>
      <P>纵观嵌入式 Linux 系统上的各种图形系统方案,我们发现,许多图形系统(如 Qt/Embedded 和 
      MicoroWindows),只注重手持设备上的需求,却不太注重其他应用领域的需求,而其他许多需要图形支持的嵌入式 Linux 
      系统却需要许多独特的、高级的图形功能,而不仅仅是图形用户界面。为此,在接下来的开发中,我们还将在如下领域继续开发 MiniGUI:</P>
      <OL class=n01>
        <LI>提供运行在 MiniGUI 上的 JAVA 虚拟机 AWT 组件的实现。 
        <LI>提供 MiniGUI 上的 OpenGL 实现。 
        <LI>提供类 QT 控件集的 C++ 封装。 
        <LI>提供窗口/控件风格主题支持。 
        <LI>在 MiniGUI-Lite 当中增加对矢量字体的支持。 </LI></OL><BR><BR>
      <P><A id=4 name=4><SPAN class=atitle2>4 小结</SPAN></A><BR>综上所述,笔者认为在嵌入式 
      Linux 图形领域,还有许多有待开发人员仔细研究和解决的问题。MiniGUI 
      的新的发展,也正源于对这些需求的认识之上。我们也衷心希望能够有更多的自由软件开发人员加盟 MiniGUI 的开发,一同开发新的嵌入式 Linux 
      的图形系统。</P><!-- Make author heading singular or plural as needed -->
      <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
        <TBODY>
        <TR>
          <TD><A id=author1 name=author1><SPAN class=atitle2>关于作者</SPAN></A> 
            <BR>魏永明(<A 
            href="mailto:ymwei@minigui.org">ymwei@minigui.org</A>),男,27 
            岁,工学硕士。国内最有影响的自由软件项目之一--MiniGUI 的创始人及主要开发人员。著有《Linux 实用教程》与《学用 Linux 
            与 Windows NT》,并主持翻译了《Red Hat Linux 奥秘》、《Linux 编程宝典》 等大量优秀的 Linux 
            技术著作。是清华大学 AKA Linux 
编程技术系列讲座的主讲人。</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><!-- END PAPER BODY -->
<TABLE>
  <TBODY>
  <TR>
    <TD width=10><IMG height=1 alt="" 
      src="基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(八).files/c.gif" width=10 
  border=0></TD></TR></TBODY></TABLE><BR clear=all><IMG height=10 alt="" 
src="基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(八).files/c.gif" width=100 border=0><BR>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
  <TBODY>
  <TR vAlign=top>
    <TD align=right width="100%"><A 
      href="http://www-900.ibm.com/developerWorks/cn/linux/embed/minigui/guide/part8/index.shtml#top">到页首</A></TD>
    <TD width=5><IMG height=1 alt="" 
      src="基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(八).files/c.gif" width=5 
  border=0></TD></TR>
  <TR vAlign=top>
    <TD bgColor=#000000 colSpan=2><IMG height=1 alt="" 
      src="基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(八).files/c.gif" width=100 
  border=0></TD></TR>
  <TR vAlign=top>
    <TD bgColor=#ffffff colSpan=2><IMG height=8 alt="" 
      src="基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(八).files/c.gif" width=100 
  border=0></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=10 width="100%" border=0>
  <TBODY>
  <TR vAlign=top>
    <TD>
      <FORM action=/developerWorks/cn/cnratings.nsf/RateArticle?CreateDocument 
      method=post><INPUT type=hidden value="基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南:主题八" 
      name=ArticleTitle> <INPUT type=hidden value=linux name=Zone> <INPUT 
      type=hidden value=/developerWorks/cn/thankyou/feedback-linux.html 
      name=RedirectURL> <A id=rating name=rating><B>您对这篇文章的看法如何?</B></A> 
      <TABLE cellSpacing=0 cellPadding=0 width=600 border=0>
        <TBODY>
        <TR>
          <TD colSpan=5><IMG height=8 alt="" 
            src="基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(八).files/c.gif" width=100 
            border=0></TD></TR>
        <TR vAlign=top>
          <TD width="16%"><INPUT type=radio value=5 name=Rating>真棒!(5)</TD>
          <TD width="20%"><INPUT type=radio value=4 name=Rating>好材料 (4)</TD>
          <TD width="24%"><INPUT type=radio value=3 name=Rating>一般;尚可 (3)</TD>
          <TD width="22%"><INPUT type=radio value=2 name=Rating>需提高 (2)</TD>
          <TD width="18%"><INPUT type=radio value=1 name=Rating>太差! 
        (1)</TD></TR></TBODY></TABLE><BR><B>建议?</B><BR><TEXTAREA name=Comments rows=5 wrap=virtual cols=60></TEXTAREA><BR><BR><INPUT type=submit value=提交反馈意见></FORM></TD></TR>
  <TR vAlign=top>
    <TD bgColor=#ffffff><IMG height=8 alt="" 
      src="基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(八).files/c.gif" width=100 
  border=0></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
  <TBODY>
  <TR>
    <TD align=right>(c) Copyright IBM Corp. 2001, (c) Copyright IBM China 
      2001, All Right Reserved</TD></TR>
  <TR vAlign=top>
    <TD class=bbg height=21>&nbsp;&nbsp;<A class=mainlink 
      href="http://www-900.ibm.com/developerWorks/cn/cgi-bin/click.cgi?url=www-900.ibm.com/cn/ibm/index.shtml&amp;origin=dwhead">关于 
      IBM</A><SPAN class=divider>&nbsp;&nbsp;|&nbsp;&nbsp;</SPAN><A 
      class=mainlink 
      href="http://www-900.ibm.com/developerWorks/cn/cgi-bin/click.cgi?url=www-900.ibm.com/cn/ibm/privacy/index.shtml&amp;origin=dwhead">隐私条约</A><SPAN 
      class=divider>&nbsp;&nbsp;|&nbsp;&nbsp;</SPAN><A class=mainlink 
      href="http://www-900.ibm.com/developerWorks/cn/cgi-bin/click.cgi?url=www-900.ibm.com/cn/ibm/legal/index.shtml&amp;origin=dwhead">使用条款</A><SPAN 
      class=divider>&nbsp;&nbsp;|&nbsp;&nbsp;</SPAN><A class=mainlink 
      href="http://www-900.ibm.com/developerWorks/cn/cgi-bin/click.cgi?url=www-900.ibm.com/cn/ibm/contact/index.shtml&amp;origin=dwhead">联系 
      IBM</A></TD></TR></TBODY></TABLE>
<SCRIPT language=JavaScript1.2 
src="基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(八).files/stats.js" 
type=text/javascript></SCRIPT>
<NOSCRIPT><IMG height=1 alt="" 
src="D:\新建文件夹\基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(八).files\c(1).gif" width=1 
border=0></NOSCRIPT> </A></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -