QTE_Qtopia在linux智能手机中的应用

  • 格式:pdf
  • 大小:458.34 KB
  • 文档页数:3

人工智能及识别技术本栏目责任编辑:李桂瑾1前言随着3G时代的到来,传统的手机已经越来越不能满足大批量的数据处理和多媒体应用了,在这种背景下,智能手机应运而生。

什么是智能手机,说通俗一点就是一个简单的“1+1=”的公式,“掌上电脑+手机=智能手机”。

Symbian和WindowsCE、Palm、Linux是当前智能手机主要的4种操作系统,其中Linux以其开源以及方便的移植特性赢得了许多开发者的青睐。

但是linux只提供一个底层的操作系统,对于一款智能手机来说,一个友好的UI,以及丰富的功能才是最重要的,在这点上QTE/QTOPIA就为我们提供了一个很好的选择,它是由Trolltech公司研发的,专用于嵌入式平台的解决方案。

2软件体系结构嵌入式linux平台上的软件架构主要分为四层,如图1所示。

图1嵌入式平台软件体系机构2.1framebufferframebuffer是一种能够提取图形的硬件设备,是用户进入图形界面很好的接口。

有了framebuffer,用户的应用程序不需要对底层的驱动的深入了解就能够做出很好的图形。

对于用户而言,它和/dev下面的其他设备没有什么区别,用户可以把framebuffer看成是显示内存的一个映像,将其映射到进程机制空间以后,就可以直接进行读写操作了,而写操作可以直接反映在屏幕上。

帧缓冲驱动程序是最重要的驱动程序之一,正是这个驱动程序才能使系统屏幕显示内容。

帧缓冲为linux图形设备提供了一个抽象接口,它允许上层应用程序在图形模式下对显示缓冲区进行读写操作,而应用程序不必关心物理显存的位置,换页机制等等。

2.2QTEQTE是在嵌入式环境下所使用的QT,QTE是Server/Client结构,延续了QT在X上的强大功能,在底层摒弃了Xlib,仅采用帧缓冲作为底层图形接口。

同时将外部输入设备抽象为keyboar和mouse输入事件,QTE类库完全采用了C++封装,提供给应用程序开发者开发图形界面所需的所有功能。

QTE库的稳定性和健壮性比较好。

它的类库完全兼容于同版本的QT-x11,使用X下的开发工具可以直接开发基于qt/embedded的应用程序。

QTE具有下列优点:优良的跨平台特性;面向对象;良好的封装机制使得QTE的模块化程度非常高,可重用性能较好。

QTE使系统获得高效的工作性能是它拥有一个重要机制-信号与槽机制。

信号和槽是一种高级接口,应用与对象之间的通信,是qt的核心特性,也是区别于其他工具包的地方。

信号和槽能够携带任意数量和类型的参数,他们是类型完全安全的,不像回调函数那样会产生内核泄露。

2.3Qt/Embedded窗口系统结构2.3.1服务进程QT/Embedded必须有一个服务进程用来处理设备输入和可重绘区域的管理。

任何进程都可以作为服务进程只要传递一个–qws参数或者用QApplication::GuiServer构造这个进程。

服务进程和客户进程通过PF_LOCALsocket进行通讯。

同时也存在一个共享内存用来保存各个顶层控件的区域。

Qt/Embedded模型最小化了客户进程与服务进程之间的通讯,大部分的行为都由客户进程自己完成。

比如所有的绘画和子控件区域操作都由客户进程自己完成而不要通过服务进程。

2.3.2窗口管理服务进程维护所有顶层控件需要绘制的区域。

执行以下任何一个操作都会引起所有顶层控件的可重绘区域的更新:(1)show()(2)hide()(3)move(),setGeometry(),resize()(3)raise(),lower()所有以上的操作都需要一个消息传递到服务进程,由以上操作引起的的控件事件也会自发的产生。

子控件区域并不是由服务进程维护,因此在子控件区域执行以上操作并不会引起客户进程收稿日期:2007-08-10作者简介:陈将(1983-),男,福建长乐县人,硕士研究生,研究方向:嵌入式系统。

QTE/Qtopia在linux智能手机中的应用陈将(同济大学软件学院,上海201804)摘要:随着嵌入式系统的发展,嵌入式系统GUI成为一个新的研究热点。

QTE/Qtopia是一套十分完善的嵌入式图形系统解决方案,它采用framebuffer作为底层图形引擎。

QTE是底层的核心库,提供了图形界面编程接口,Qtopia是专门针对嵌入式产品的可定制和开发的用户界面系统。

文中分别介绍了它们的结构和框架,并给出了它们的移植方案,包括交叉编译环境建立,文件修改,编译参数设置。

关键词:嵌入式linux;QTE/Qtopia;帧缓冲;智能手机中图分类号:TP39文献标识码:A文章编号:1009-3044(2007)18-31687-03TheApplicationsofQTE/QtopiaonSmartPhoneCHENJiang(TongjiUniversitySoftwareSchool,Shanghai201804,China)Abstract:withthedevelopmentofembeddedsystem,embeddedGUIhasbecameanewresearchfocus.QTE/QtopiaisacompletesolutionofembeddedGUI,ituseframebufferastheGUIengine.QTEisthecorelibrary,itsupplytheprogrammingAPI.Qtopiaisunrivaledastheap-plicationplatformforefficientcreationofLinux-baseddevices.ThepaperintroducethearchitectureoftheQTE/Qtopiaandhowtoportingthemtoaembeddedsystemincludingthecrosscompileenvironmentsetup,sourcemodify,compileargumentssetting.Keywords:embeddedlinux;QTE/Qtopia;framebuffer;smartphone1687人工智能及识别技术本栏目责任编辑:李桂瑾和服务进程之间的通讯。

2.3.3设备输入服务进程读取设备输入并分发这些事件到活动的客户端,按键事件和鼠标事件都由服务进程处理。

2.3.4QCop服务进程控制QCop消息的分发。

一旦客户进程创建了一个QCop通道,服务经常拿就把这个客户进程加到一个通道列表中。

QCop消息首先发送给服务进程然后转发给所有正在监听这个通道的客户进程。

2.3.4绘画QPainter本质上是对Gfx图形系统的封装。

QGfx类是一个高层次的绘画封装。

它的子类实现了其中的具体的绘画功能,比如,QGfxRaster实现了在光栅设备上的绘画操作。

如果设备支持硬件加速,通常也在这个类中实现其功能。

Qt/Embedded客户端直接在framebuffer上进行绘画操作。

底层的图形系统(QGFx)处理上层的共享内存中的区域剪切。

这期间不需要和服务进程进行任何通讯。

2.4Qtopia概述Qtopia是一种可定制的开发环境和用户界面,从本质上说,Qtopia之于Linux犹如UIQ和Series60之于Symbian。

Qtopia的一些主要特色包括低成本、灵活性以及可定制性,它基于跨平台的C++开发工具———Qt/Embedded之上,它健全且稳定,并可以配置为多种内存模板。

基于Qt的经验,Qtopia向客户提供全部源代码,让客户可以创建与现有程序紧密结合的定制程序、定制用户界面和程序发布工具,并能在他们需要使用的处理器上编译,并且为手机开发商提供一定程度的独立性以及创新和控制。

厂商可以使用Qtopia实现对品牌标识和用户界面设计的全面控制,而且可以在许多设备上运行相同的源代码,如手机、PDA和其它消费设备。

Qtopia平台目前有两种版本:面向PDA应用的QtopiaPDA和面向智能电话和功能型手机应用的QtopiaPhone。

以QtopiaPhone为例,它包含6个组成部分,分别是插件(plugin)、服务器(server)、客户端软件和内置应用软件、文件系统、调制解调器(mo-dem),以及帧缓冲(framebuffer),它们之间的关系如图2所示。

图2Qtopia模块结构其中,Qtopialauncher/server是服务进程,它控制着窗式系(windowingsystem)、进程间通信、启动所有应用程序和其它主要任务。

而插件管理器(PluginManager)则确保不同插件类型在应用程序/服务器启动过程中都被加载,并提供了简洁的开发途径。

图中显示的文件系统包括文档、配置和系统文件,以及系统中和可移除媒介中的专用文件。

QtopiaPhone提供标准的GSMAT指令,并支持专有指令。

QtopiaPhone其它主要特性包括:(1)平台级特性。

Qtopia的核心功能表现在其平台级特性。

通过强大的操作环境,它仅凭较低的内存就能实现智能电话功能。

其平台还具备电话技术特性,包括无线配置、SMS、MMS、GPRS和现代的界面。

(2)强大的开发环境。

为了正确地定制智能手机,制造商需要有强大的开发工具。

奇趣科技提供了一整套工具集来定制和扩展Qtopia电话版本。

强大的开发环境简化了在桌面系统进行开发,进而交互编译到目标设备的过程。

(3)可定制的用户界面。

专门为移动电话用户设计,其图形用户界面完全可定制。

程序制作者和网络操作人员可以更改图标、布局和外观。

终端用户可以自由更改设置,从而使他们的电话保持鲜明的个性特征。

(4)强大的电话程序集。

Qtopia电话版含有一套强大的电话程序集,包括PIM、电话(信息客户端、拨号器及其它)、游戏、多媒体播放器以及一些电话个性化应用。

Qtopia电话版和PDA版可以兼容,可将1,000多个现有的Qtopia应用程序导入到Qtopia电话版上。

(5)同步框架。

用户可以把他们的电话与Trolltech的跨平台桌面PIM集成或微软Outlook同步。

QtopiaPhone还可以同步联系人、日志、计划事项、多媒体文件和文档等。

3Qtopia移植移植使用的版本是Qtopia-opensource-4.2.x.从版本4开始,Trolltech将Qte并入了Qtopia,并推出了新的Qtopia4。

在该版中,原来的Qte被称为QtopiaCore,作为嵌入式版本的核心,既可以与Qtopia配合,也可以独立使用。

原来的Qtopia则被分成几层核心的应用框架和插件系统被称为QtopiaPlatform,上层的应用程序则按照不同的目标用户分为不同的包,如QtopaiPDA,QtopiaPhone等。