基于Qt的嵌入式Linux电话簿的设计与实现本科毕业论文_第1页
基于Qt的嵌入式Linux电话簿的设计与实现本科毕业论文_第2页
基于Qt的嵌入式Linux电话簿的设计与实现本科毕业论文_第3页
基于Qt的嵌入式Linux电话簿的设计与实现本科毕业论文_第4页
基于Qt的嵌入式Linux电话簿的设计与实现本科毕业论文_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

1、目 录中文摘要I英文摘要II1 绪论11.1 嵌入式的发展、应用领域11.2 ARM 9概述51.2.1 简介51.2.2 主要特性61.2.3 结构特点61.2.4 优势61.2.5 处理能力71.3 本文研究的内容72 需求分析92.1 可行性分析92.1.1 经济可行性92.1.2 技术可行性92.1.3 操作可行性92.2 系统功能分析102.3 安全性需求分析103 系统总体设计113.1 开发工具简介113.1.1 Qt简介113.1.2 SQlite123.2 相关技术知识133.2.1 C/C+133.2.2 Linux系统153.3 功能模块设计163.4 电话簿结构图173

2、.5 电话簿系统流程图183.6 数据库设计193.6.1 数据库需求分析193.6.2 数据库E-R图193.6.3 数据表详细设计204 系统设计与实现214.1 用户注册子模块的设计与实现214.2 添加联系人信息子模块的设计与实现254.3 删除联系人信息子模块的设计与实现304.4 查找联系人信息子模块的设计与实现314.5 修改联系人信息子模块的设计与实现33结束语34致谢35参考文献36基于Qt的嵌入式Linux电话簿的设计与实现摘 要在研究嵌入式系统的基础下,完成了基于Qt的嵌入式Linux电话薄的开发和设计。随着嵌入式系统的发展, 在Linux下使用Qt开发嵌入式应用程序是嵌

3、入式图形用户界面(GUI)系统应用研究的重点。通过一个通讯簿程序的设计,给出了基于Qt的嵌入式Linux程序开发的关键技术,包括 QtDesigner、信号与槽机制的使用、程序主要功能代码的实现以及程序开发的整体过程。文中介绍了Linux 操作系统具有开放的源码、高效稳定的内核、良好的开发环境以及支持多种硬件平台的特点,且具有可配置性和模块化的特点;Qt是一个面向对象的支持多操作系统平台的应用程序开发框架,它采用了一种独有的Signal2Slot(信号与槽)的对象间通信机制,以代替传统的不安全的回调技术。Qt的自由版开放了源代码,因此开发人员在Linux下使用Qt进行嵌入式系统开发是非常理想的

4、选择。并给出了电话薄系统设计的模块及流程,运用数据库设计电话薄系统。该电话簿系统简便快捷,用途广泛。关键词 Qt/Linux/电话簿 Design and Implementation of Embedded Liunx Phonebook Qt-basedABSTRACT Based on the research of embedded system, complete the development and design of embedded Linux phone based on Qt thin. With the development of embedded system, u

5、sing Qt embedded application development in Linux is the embedded graphical user interface (GUI) research on the application system. Through the design of an address book program, key technology of embedded Linux based on Qt is given, including the QtDesigner, signal and slot mechanism is used, to a

6、chieve the main function of program code and program development process.This paper introduces the characteristics of Linux operating system with open source, highly efficient and stable kernel, good development environment and support a variety of hardware platforms, and has the characteristics of

7、configuration and modular; Qt is an object-oriented operating system supports multi platform application development framework, which uses a the unique Signal2Slot (signals and slots) communication mechanism between objects, to replace the traditional not safe callback technology. Qt free version of

8、 open source code, so developers using Qt under the Linux embedded system development is the ideal choice. And gives the module and process design of phone book system, the database design of telephone directory system. The telephone directory system is simple and fast, versatile.KEY WORDS Qt/Linux/

9、Phonebook1 绪论1.1 嵌入式的发展、应用领域 近年来,家用电器已逐渐突破传统家电概念,演变成包括家用PC,机顶盒,HPC,无线数据通信设备,掌上电脑,PDA,视频游戏设备,webTv等所有能通过互联网交换信息的信息处理设备。家用电器信息化的关键技术就是嵌入式操作系统(embedded operating system,简称EOS)。可以预见,不久的将来,许多信息家电将具备从网上下载产品目录、自动修复故障等复杂的功能嵌入式操作系统不仅在功能上拓展了家用电器,它对家电的稳定性、安全性和易用性也都起着决定性的作用13。嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用

10、在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像平常见到的手机、PDA、电子词典、可视电话、VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等都是典型的嵌入式系统。嵌入式系统是软件与硬件相结合的,嵌入式开发人员分两类。一类是电子工程、通信工程等偏硬件专业,主要是做硬件设计,有时要开发一些

11、与硬件关系最密切的最底层软件,如BootLoader、Board Support Package(像PC的BIOS一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。优势是对硬件原理非常清楚,不足之处是更擅长于定义各种硬件接口,但对复杂软件系统往往力不从心(例如嵌入式操作系统原理和复杂的应用软件等)。另一类是软件、计算机专业,主要从事嵌入式操作系统和应用软件的开发。如果对硬件原理和接口有较好的掌握,那么就完全可以写BSP和硬件驱动程序。嵌入式硬件设计完成后,各种功能就全靠软件来实现了,嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作(目前有很多公司将硬件设计

12、包给了专门的硬件公司,稍复杂的硬件都交给台湾或国外公司设计,国内的硬件设计力量很弱,很多嵌入式公司只负责开发软件,因为公司都知道,嵌入式产品的差异很大程度在软件上,在软件方面是最有“花头”可做的),所以完全不用担心在嵌入式市场上的用武之地,越是智能设备越是复杂系统,软件越起关键作用,而且这是目前的趋势。从事嵌入式软件开发的好处是:(1)目前国内外这方面的人都很稀缺。一方面,是因为这一领域入门门槛较高,不仅要懂较底层软件(例如操作系统级、驱动程序级软件),对软件专业水平要求较高(嵌入式系统对软件设计的时间和空间效率要求较高),而且必须懂得硬件的工作原理,所以非专业IT人员很难切入这一领域;另一方

13、面,是因为这一领域较新,目前发展太快,很多软硬件技术出现时间不长或正在出现(如ARM处理器、嵌入式操作系统、MPEG技术、无线通信协议等),掌握这些新技术的人当然很难找。嵌入式人才稀缺,身价自然就高,越有经验价格就越高。其实嵌入式人才稀少,根本原因可能是大多数人无条件接触,这需要相应的嵌入式开发板和软件,另外需要有经验的人进行指导开发流程。(2)与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。搞企业应用软件的IT企业,这个用户的系统做完了,又得去做下一个用户的,而且每个用户的需求和完成时间都得按客户要求改变,往往疲于奔命,重复劳动。相比而言,嵌入式系统研发公司,所开

14、发的产品通常是通用的,不会因客户的不同而修改。一个产品型号开发完了,往往有较长一段空闲时间(或只是对软件进行一些小修补),有时间进行充电和休整。另外,从事嵌入式软件的人员工作范围相对狭窄,所涉及的专业技术范围也较窄,如(ARM、RTOS、MPEG、802.11)等,时间长了就会积累经验,运用自如了。若做应用软件,可能下一个客户要换成一个完全不同的软件开发平台,这样就比较麻烦了。对于嵌入式软件,最重要的技术是:(1) 掌握主流嵌入式微处理器的结构与原理;(2) 必须掌握一个嵌入式操作系统;(3) 必须熟悉嵌入式软件开发流程并至少做过一个嵌入式软件开发项目。嵌入式软件方面最重要的课程包括:(1)

15、嵌入式微处理器结构与应用这是一门嵌入式硬件基础课程。嵌入式是软硬件结合的技术,所以学习嵌入式软件应对ARM处理器工作原理和接口技术有充分了解,包括ARM的汇编指令系统。若不了解处理器原理,如何能控制硬件工作,如何能写出节省内存又运行高速的最优代码(嵌入式软件设计特别讲究时空效率),如何能写出驱动程序(驱动程序都是与硬件相结合的)。很多公司招聘嵌入式软件人才都要求熟悉ARM处理器,若从事嵌入式软件开发,对于设备的硬件规格说明书(xxx Specification),必须能看懂其中的内存分布和端口使用等最基本的说明(就像x86汇编一样),否则怎么设计软件。其实不应将汇编语言当成一个程序设计语言来学

16、习,学汇编主要是为了掌握处理器的工作原理。若不熟悉汇编语言,又怎么能在该处理器上写出最优的C语言代码。在嵌入式开发的一些关键部分,有时还必须用汇编语言,如Bootloader等(可能还包括BSP)。特别是在对速度有极高要求的场合(如DSP处理器的高速图像采集和图像解压缩),目前还主要依靠汇编语言编写程序。在查看描述原理的手册时,可能很多都是用汇编语言描述的,这是因为很多硬件设计人员只会写或者喜欢用汇编语言描述,所以就要求必须看懂汇编程序,否则软硬件开发人员可能无法沟通交流。另外很多嵌入式职位招聘时都要求熟悉汇编语言。(2) 嵌入式操作系统类课程除了WinCE的实时性稍差外,大多数嵌入式操作系统

17、的实时性都很强,所以也可称为实时操作系统(Real Time Operating System)。从事嵌入式软件开发须掌握至少一个嵌入式操作系统(当然掌握两个更好),这在嵌入式的所有技术中是最为关键的了。目前最重要的RTOS主要包括:第一类、传统的经典RTOS:最主要的便是Vxworks操作系统,以及其Tornado开发平台。Vxworks因出现稍早,实时性很强(据说可在1ms内响应外部事件请求),并且内核可极微(据说最小可8K),可靠性较高等,所以在北美,Vxworks占据了嵌入式系统的大部分领域。特别是在通信设备等实时性要求较高的系统中,几乎非Vxworks莫属。Vxworks的很多概念和

18、技术都和Linux很类似,主要是C语言开发。像Bell-alcatel、Lucent、华为等通信企业在开发产品时,Vxworks用得很多。但Vxworks因价格很高,所以一些小公司或小产品中往往用不起。目前很多公司都在向嵌入式Linux转变。但无论如何,Vxworks在很长一段时间内仍是不可动摇的。与Vxworks类似的实时操作系统还有pSOS、QNX、Nucleus等。第二类、嵌入式Linux操作系统:Linux的前途除作为服务器操作系统外,最成功的便是在嵌入式领域的应用,原因当然是免费、开源、支持软件多,这样嵌入式产品成本会低。Linux本身不是一个为嵌入式设计的操作系统,不是微内核的,并

19、且实时性不强。目前应用在嵌入式领域的Linux系统主要有两类:一类是专为嵌入式设计的已被裁剪过的Linux系统,最常用的是uClinux(不带MMU功能),目前占较大应用份额,可在ARM7上应用;另一类是应用在ARM 9上的,一般是将Linux 2.4.18内核移植在ARM 9上,可使用更多的Linux功能(当然uClinux也能应用在ARM 9上)。很多人预测,嵌入式Linux预计将占嵌入式操作系统的50%以上份额,所以嵌入式Linux还是非常重要的。但是,它的缺点是熟悉Linux的人太少,开发难度稍大。另外,目前基本都以ucOS/II为教学用实时操作系统,这主要是由于ucOS/II较简单,

20、且开源,非常适合入门者学习实时操作系统原理,但由于ucOS/II功能有限,实用性不强。而且熟悉了Linux开发,不仅在嵌入式领域可用,对开发Linux应用软件,对加深操作系统的认识也有帮助,可谓一举多得。目前Intel、Philip都在积极研发ARM+LINUX的嵌入式软件,Fujitum也在积极做Linux开发。目前在嵌入式Linux领域,以下几个方面的人特别难找,一是能将Linux移植到某个新型号的开发版上;二是能写Linux驱动程序;三是熟悉Linux内核裁剪和优化。第三类、 Windows CE嵌入式操作系统:Microsoft也看准了嵌入式的巨大市场,MS永远是最厉害的,WinCE出

21、来只有几年时间,但目前已占据了很大市场份额,特别是在PDA、手机、显示仪表等界面要求较高或者要求快速开发的前提下,WinCE目前已很流行(据说有一家卖工控机的公司板子卖得太好,以至于来不及为客户裁剪WinCE)。WinCE目前主要为4.2版(.NET),开发平台主要为WinCE Platform Builder,有时也用EVC环境开发一些较上层的应用,由于WinCE开发都是大家熟悉的VC+环境,这也是WinCE容易被人们接受的原因,开发环境方便快捷,微软的强大技术支持,WinCE开发难度远低于嵌入式Linux。对于急于完成项目,又不想拿嵌入式Linux冒险的开发场合,WinCE是最合适的了,毕

22、竟公司更注重软件开发的成功与否。根据不同的侧重点 ,WinCE还有两个特殊版本,一个是MS PocketPC操作系统专用于PDA上(掌上电脑),另一个是MS SmartPhone操作系统用于智能手机上(带PDA功能的手机),两者也都属于WinCE平台。在PDA和手机市场上,除WinCE外,著名的PDA嵌入式操作系统还有Palm OS(因出现很早,很有名)、Symbian等,但在WinCE的强劲冲击下,Palm和Symbian来日还能有多长?很显然,嵌入式Linux永远不可能替代WinCE,而且将来谁占份额大还很难讲,毕竟很多人更愿意接受MS的平台,就像各国政府都在大力推LINUX已好长时间,但

23、真正在PC机上使用LINUX的用户却寥寥可数。目前在嵌入式研究上,大力推广LINUX平台,但还是WinCE平台实际用得更多。嵌入式LINUX可能更多的是一些公司为降低成本而进行的长远考虑。WinCE和多媒体(如MPEG技术)是微软亚洲工程院目前做得较多的项目领域之一,很需要精通WinCE的人才。(3) 嵌入式开发的其他相关软件课程学习嵌入式若能熟悉嵌入式应用的一些主要领域,会更受企业欢迎。主要的相关领域包括:A、数字图像压缩技术:这是嵌入式最重要最热门的应用领域之一,主要是应掌握MPEG编解码算法和技术,如DVD、MP3、PDA、高晶电视、机顶盒等都涉及MPEG高速解码问题。B、通信协议及编程

24、技术:这包括传统的TCP/IP协议和热门的无线通信协议。首先,大多数嵌入式设备都要连入局域网或Internet,所以首先应掌握TCP/IP协议及其编程,这是需首要掌握的基本技术;其次,无线通信是目前的大趋势,所以掌握无线通信协议及编程也是很重要的。无线通信协议包括无线局域网通信协议802.11系列,Bluetooth,以及移动通信协议(如GPRS、GSM、CDMA等)。C、网络与信息安全技术:如加密技术,数字证书CA等。D、DSP技术:DSP是Digital Signal Process数字信号处理的意思,DSP处理器通过硬件实现数字信号处理算法,如高速数据采集、压缩、解压缩、通信等。数字信号

25、处理是电子、通信等硬件专业的课程,若能了解一下最好。目前DSP人才较缺乏。如果有信号与系统、数字信号处理等课程基础,对于学习MPEG编解码原理会有很大帮助。(4)嵌入式开发的相关硬件基础对于软件工程专业来说,若从事嵌入式软件开发,那么像数字电路、计算机组成原理、嵌入式微处理器结构等硬件课程是较重要的。另外,汇编语言、C/C+、数据结构和算法、特别是操作系统等软件基础课也是十分重要的。这主要要求是能看懂硬件工作原理,但重点应是在嵌入式软件,特别是操作系统级软件,这会占很大的优势。1.2 ARM 9概述1.2.1 简介ARM9系列处理器是英国ARM公司设计的主流嵌入式处理器,主要包括ARM9TDM

26、I和ARM9E-S等系列。以手机应用为例,2G手机只需提供语音及简单的文字短信功能,而目前的2.5G和3G手机除了提供这两项功能外,还必须提供各种其他的应用功能。主要包括:无线网络设备:手机上网、电子邮件及其他定位服务等功能;PDA功能:含有用户操作系统(Windows CE、Symbian OS、Linux等)及其他功能;高性能功能:音频播放器、视频电话、手机游戏等。在2.5G和3G手机的应用中ARM9已经全面替代了ARM7。因为ARM9的新特性能够满足各种新需求的同时还减少了产品的研发时间和研发费用。1.2.2 主要特性以ARM926TEJ处理器为例,其主要特性包括:最高频率200MHz;

27、16KB指令高速缓存,8KB数据高速缓存;硬件JAVA加速;扩展多媒体指令集结构。ARM微处理器是一种高性能、低功耗的32位微处理器,它被广泛应用于嵌入式系统中。ARM9代表了ARM公司主流的处理器,已经在手机、机顶盒、数码相机、GPS、个人数字助理以及因特网设备等方面有了广泛的应用。1.2.3 结构特点以ARM9E-S为例介绍ARM9处理器的主要结构及其特点。其主要特点如下:32bit定点RISC处理器,改进型ARM/Thumb代码交织,增强性乘法器设计。支持实时(real-time)调试;片内指令和数据SRAM,而且指令和数据的存储器容量可调;片内指令和数据高速缓冲器(cache)容量从4

28、K字节到1M字节;设置保护单元(protection unit),非常适合嵌入式应用中对存储器进行分段和保护;采用AMBA AHB总线接口,为外设提供统一的地址和数据总线;支持外部协处理器,指令和数据总线有简单的握手信令支持;支持标准基本逻辑单元扫描测试方法学,而且支持BIST(built-in-self-test);支持嵌入式跟踪宏单元,支持实时跟踪指令和数据。1.2.4 优势EP930x处理器 EP9301/EP9302是Cirrus Logic公司新推出的系列ARM9芯片中的一种极具价格优势的处理器,它的高性能设计是许多消费和工业电子产品的理想选择。EP9301拥有先进的166兆赫 AR

29、M920T处理器(Ep9302为200兆赫),66兆赫系统总线(EP9302为100兆赫系统总线)以及支持Linux、Windows CE和其他许多嵌入式操作系统的存储器管理器单元(MMU)。ARM920T 的32位微处理器结构带有一个5阶管线,可以极低的功耗提供优异的性能。16K指令高速缓存和16K数据高速缓存可为现有的程序和数据提供零等待时间,或者也可被锁定,以确保对关键指令和数据的无延迟存取。另外Ep9302具有MaverickCrunch协处理器。这一协处理器显著提高了ARM920T的单/双精度整数及浮点数运算能力。当对数字音频和视频格式进行编码、执行工业控制运算以及其他运算密集型计算

30、和数据处理功能时,该协处理器可使EP9302具有高速精确计算能力。1.2.5 处理能力新一代的ARM9处理器,通过全新的设计,采用了更多的晶体管,能够达到两倍以上于ARM7处理器的处理能力。这种处理能力的提高是通过增加时钟频率和减少指令执行周期实现的。(一) 时钟频率的提高:ARM7处理器采用3级流水线,而ARM9采用5级流水线。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在同样的加工工艺下,ARM9TDMI处理器的时钟频率是ARM7TDMI的1.82.2倍。(二) 指令周期的改进:指令周期的改进对于

31、处理器性能的提高有很大的帮助。性能提高的幅度依赖于代码执行时指令的重叠,这实际上是程序本身的问题。对于采用最高级的语言,一般来说,性能的提高在30%左右。1.3 本文研究的内容电话簿系统是随着社会技术不断进步及社交人脉日趋频繁的情况下而出现的新型统计记录形式。通过电话簿系统,用户不需要再去找专门的纸质记录簿进行记录、查找,因此,节省了时间,提高了效率。本文主要研究电话簿系统的设计与实现。电话簿系统是以Linux为平台,实现用户注册、添加联系人信息、删除联系人信息、查找联系人信息、修改联系人信息等操作的系统。用户首先需要到该系统注册其信息,注册成功之后用户便可以对电话簿里的信息进行添加、查找、删

32、除、修改等操作。对于用户而言,使用该系统有效地降低了信息收集时间、查找联系人时间、以及相应的人工成本等等,大大地提高了整个工作的效率。本论文中,第一章介绍了嵌入式发展前景、ARM 9以及MINI 2440。第二章对开发该系统进行了必要的需求分析,包括可行性分析、系统功能分析、安全性需求分析。第三章对系统总体进行设计,其中第一节介绍了该系统所使用的开发工具,第二节介绍了与系统相关的技术知识,第三节简单设计了该系统的几个功能模块,第四节设计了电话簿系统结构图,第五节设计了电话簿系统流程图,第六节对数据库进行了详细设计。第四章对系统进行详细设计与实现,包括对每个功能模块的设计与实现。2 需求分析 系

33、统主要功能包括:实现添加联系人的姓名和手机号码,家庭住址和E-mail,并且连接到数据库,将信息存储到数据库文件中,添加成功弹出添加成功的对话框,对话框中的信息可以重置。消息对话框负责显示消息,调用其静态方法显示警告信息。要求在文本框中显示姓名,手机号码,家庭住址,E-mail等用户信息。添加姓名,手机号码,家庭住址,E-mail等信息到数据库中,同样需要连接SQlite数据库,用户的图形界面要求在文本框中显示姓名,手机号码,家庭住址,E-mail等用户信息。修改姓名,手机号码,家庭住址,E-mail等信息到数据库中,同样需要连接SQlite数据库,用户的图形界面要求在文本框中显示姓名,手机号

34、码,家庭住址,E-mail等用户信息。 对已经存储的信息进行查询,由于客户的具体需求多样,为了给客户营造更多的便利,可以将软件的查询细分为按整体进行查询模糊查询和精确查询和整体查询,模糊查询允许用户用较为模糊的查询条件,比如信息的姓来进行查询,实现了用户需求的多样化。2.1 可行性分析2.1.1 经济可行性估算新系统的成本效益分析,其中包括估计项目开发的成本,开发费用和今后的运行、维护费用,估计新系统将获得的效益,估算开发成本是否会高于项目预期的全部经费。并且,分析系统开发是否会对其他产品或利润带来一定影响。2.1.2 技术可行性 根据系统功能、性能及实现系统的各项约束条件,现有的技术已较为成

35、熟,硬件、软件的性能要求、环境条件等各项条件良好,估计利用现有技术条件应完全可以达到该系统的功能目标。同时,考虑给予的开发期限也较为充裕,预计系统是可以在规定期限内完成开发。2.1.3 操作可行性该系统设计清晰,有良好的用户界面,操作简捷,有完善的异常处理机制和提示信息机制,用户只要经过简单的介绍就可使用,因此操作方面可行。综上所述,本系统在经济方面、技术方面和操作方面均具备可行性,因此,可以开发本系统。2.2 系统功能分析电话簿系统包括用户注册、增加信息、删除信息、修改信息、查找信息、退出系统。(1)用户注册各个用户可以在该系统中注册相关信息。(2)增加信息已经注册的用户可以向该系统中添加联

36、系人信息,包括姓名,电话号码,家庭住址,E-mail等 。(3)删除信息用户可以对系统中的某一个或多个联系人进行删除,删除一个联系人后,该联系人的所有信息也被删除。(4)修改信息用户可以对已经添加过但信息不完善的联系人进行补录信息操作。(5)查找信息 在系统中查找某一个联系人,可以通过姓名和电话号码查找出该联系人的所有信息。(6) 退出系统 点击退出按钮可以直接退出系统。2.3 安全性需求分析本系统用于班级、工作单位等组织群体,可以将联系人的信息详细的保存下来,避免了手记的繁琐、易损坏、易丢失等缺点。因此,该系统的建成无疑会为广大管理者和用户提供极大的方便。3 系统总体设计3.1 开发工具简介

37、3.1.1 Qt简介Qt是一个跨平台的C+图形用户界面库,由挪威TrollTech公司出品,目前包括Qt、基于FrameBuffer的Qtopia Core、快速开发工具Qt Designer和国际化工具Qt Linguist等部分6。Qt支持所有的UNIX系统,当然也包括Linux系统,还支持WinNT/Win2k、Windows 95/98平台。基本上Qt同X-Window上的Motif、Openwin、GTK等图形界面库和Windows平台上的MFC、OWL、VCL、ATL是同类型的。不过Qt还具有下列一些优点。(1)优良的跨平台特性。Qt支持下列操作系统:Microsoft Windo

38、ws 95/98、Microsoft Windows NT、Linux、Solaris、SunOS、HP-UX、Digital UNIX (OSF/1、Tru64)、Irix、FreeBSD、BSD/OS、SCO、AIX、OS390和QNX等。(2)面向对象。Qt的良好封装机制使得Qt的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的。Qt提供了一种称为signals/slots 的安全类型来替代callback,这使得各个元件之间的协同工作变得十分简单。(3)丰富的API3。Qt包括多达250个以上的C+类,还提供基于模板的collections、serialization、fi

39、le、I/O device、directory management和date/time类。甚至还包括正则表达式的处理功能。(4)支持2D/3D图形渲染,支持OpenGL。(5)大量的开发文档。(6)XML支持。但是真正使得Qt7在自由软件界的众多Widgets(如Lesstif、Gtk、EZWGL、Xforms及fltk等)中脱颖而出的还是基于Qt的重量级软件KDE。Qt虽然是商业公司的产品,但是走的却是开源路线,提供免费下载,全部都是开放源代码,非商业用途亦采用GPL的版权宣告,著名的Open SourceKDE项目便是采用Qt开发的。 Trolltech也针对嵌入式环境推出了Qt/Emb

40、edded1产品。与桌面版本不同,Qt/Embedded已经直接取代了X Server及X Library等角色,将所有的功能全部整合在一起。 Qt/Embedded的开发有两种方式,一种是传统的代码编程方式,是一般程序员开发程序时所使用的方式;一种是图形编程方式,可以利用QtDesigner9开发,这是一种所见即所得的方式。不论是这两种方法的哪一种,都会涉及到Qt的元对象系统。元对象系统有两个关键技术:信号和槽,以及内省,其中内省是信号和槽的基础14。Qt/Embedded同样具有跨平台的特点,省掉了不少移植软件的功夫,这样的概念和Java十分接近。同时它还采用模块化设计,其最大的好处是有弹

41、性,Qt/Embedded号称最小,可以缩到800 KB左右,最多可以长到3 MB(for Intel x86),这样的弹性也让Qt/Embedded更适合在嵌入式环境下生存。Qt/Embedded延续了Qt在X上的强大功能,在底层摒弃了X lib,仅采用FrameBuffer作为底层图形接口。同时,将外部输入设备抽象为keyboard和mouse输入事件,底层接口支持键盘、GPM鼠标、触摸屏及用户自定义的设备等。Qt/Embedded2类库完全采用C+封装。丰富的控件资源和较好的可移植性是Qt/Embedded最为优秀的一方面。它的类库接口完全兼容于同版本的Qt-X11,使用X下的开发工具可

42、以直接开发基于Qt/Embedded的应用程序QUI界面。与前两种GUI不同的是,Qt/Embedded的底层图形引擎只能采用FrameBuffer,这就注定了它是针对高端嵌入式图形领域的应用而设计的。由于该库的代码追求面面俱到,以增加它对多种硬件设备的支持,造成了其底层代码比较凌乱,各种补丁较多的问题。Qt/Embedded的结构也过于复杂和臃肿,很难进行底层的扩充、定制和移植,尤其是用来实现signal/slot机制的moc文件。Qt/Embedded当前已经升级为Qtopia Core和Qtopia Core,继承了Qt4的新技术,包括:高性能渲染引擎、模板容器类及基于行为的主窗口架构,

43、改进的功能特点包括文本渲染与多线程技术。当编译Qtopia Core时,可以去除不用的功能,以最小化软件的占用空间。MyEclipse是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse几乎囊括了目前所有主流开源产品的专属eclipse开发工具10。根据官方最新消息,MyEclipse 2013已经正式

44、发布。MyEclipse 2013支持HTML5、JQuery和主流的Javascript 库。随着MyEclipse 2013支持Html5,可以添加音频、视频和API元素到项目中,从而为移动设备创建复杂的Web应用程序。甚至还可以通过HTML5可视化设计器设计令人难以置信的用户界面。同时,随着MyEclipse 2013支持JQuery,可以通过插件提升性能,并添加动画效果到设计中。3.1.2 SQliteSQLite11是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几

45、百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。SQlite数据库的特点有如下几点:(1)轻量级。先说它的第一个特色:轻量级。想必SQLite的作者很看重这个特性,连它的Logo都是用的“羽毛”,来显示它的轻飘飘。SQLite.和C/S模式的数据库软件不同,它是进程内的数据库引擎,因此不存在数据库的客户端和服务器。使用SQLite一般只需要带上它的一个动态库,就可以享受

46、它的全部功能。而且那个动态库的尺寸也挺小,以版本3.6.11为例,Windows下487KB、Linux下347KB。(2)绿色软件。SQLite的另外一个特点是绿色:它的核心引擎本身不依赖第三方的软件,使用它也不需要“安装”。所以在部署的时候能够省去不少麻烦。单一文件。所谓的“单一文件”,就是数据库中所有的信息(比如表、视图、触发器、等)都包含在一个文件内。这个文件可以copy到其它目录或其它机器上,也照用不误。(3)跨平台/可移植性。除了支持主流操作系统,SQLite还支持许多冷门的操作系统。尤其是它对很多嵌入式系统(比如Android、Windows Mobile、Symbin、Palm

47、、VxWorks等)的支持。(4)内存数据库(in-memory database)。现在,内存越来越便宜,很多普通PC都开始以GB为单位来衡量内存。这时候,SQLite的内存数据库特性就越发显得好用。(5)SQLite的API不区分当前操作的数据库是在内存还是在文件(对于存储介质是透明的)。所以如果认为磁盘I/O有可能成为瓶颈的话,可以考虑切换为内存方式。切换时,操作SQLite的代码基本不用改,只要在开始时把文件Load到内存,结束时把内存的数据库Dump回文件就OK了。3.2 相关技术知识3.2.1 C/C+C语言是在70年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实验室正

48、式发表了C语言。同时由B.W.Kernighan和D.M.Ritchit合著了著名的“THE C PROGRAMMING LANGUAGE”一书。通常简称为K&R,也有人称之为K&R标准。但是,在K&R中并没有定义一个完整的标准C语言,后来由美国国家标准学会在此基础上制定了一个C 语言标准,于一九八三年发表。通常称之为ANSI C。早期的C语言主要是用于UNIX系统。由于C语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,C语言开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用,成为当代最优秀的程序设计语言之一8。C语言是当今最流行的程序设计语言之一,它的功能丰

49、富、表达力强、使用灵活方便、应用面广、目标程序高、可植入性好,既有高级语言的特点,又有低级语言的许多特点,适合作为系统描述语言,既可以用来编写系统软件,也可以用来编写应用软件。C语言诞生后,许多原来用汇编语言编写的软件,现在都可以用C语言编写了(如UNIX操作系统),而学习和使用C语言要比学习和使用汇编语言容易得多。C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于C语言实现了对硬件的编程操作,因此C语言集高级

50、语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,C语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。目前最流行的C语言有Microsoft Visual C+、Borland Turbo C+、AT&T C,这些C语言版本不仅实现了ANSIC标准,而且在此基础上各自作了一些扩充,使之更加方便、完美。在C的基础上,一九八三年又由贝尔实验室的Bjarne Strou-strup推出了C+。 C+进一步扩充和完善了C语言,成为一种面向对象的程序设计语言。C+目前流行的编译器最新版本是Borland C+4.5、Sym

51、antec C+6.1和Microsoft VisualC+ 2012。C+提出了一些更为深入的概念,它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。因而也增加了整个语言的复杂性,掌握起来有一定难度。3.2.2 Linux系统Linux的出现,最早开始于一位名叫Linus Torvalds的计算机业余爱好者,当时他是芬兰赫尔辛基大学的学生。他的目的是想设计一个代替Minix(是由一位名叫Andrew Tannebaum的计算机教授编写的一个操作系统示教程序)的操作系统,这个操作系统可用于386、486或奔腾处理器的个

52、人计算机上,并且具有Unix操作系统的全部功能,因而开始了Linux雏形的设计。Linux以它的高效性和灵活性著称4。它能够在PC计算机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同使用Windows NT一样,也允许使用窗口、图标和菜单对系统进行操作。Linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不

53、用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿对它使用,无约束地继续传播。另一个原因是,它具有Unix的全部功能,任何使用Unix操作系统或想要学习Unix操作系统的人都可以从Linux中获益。由于Linux是一套具有Unix全部功能的免费操作系统,它在众多的软件中占有很大的优势,为广大的计算机爱好者提供了学习、探索以及修改计算机操作系统内核的机会5。当前,嵌入式技术发展迅猛,应用极为广泛,在计算机、消费电子、通信、汽车电子、工业控制和军事国防这 6 大主要应用领域,嵌入式 Linux 占据了很大的市场规模,但是由于在 Linux 嵌入式操作系统本身上进

54、行开发难度较高,所以需要开发者掌握 Linux 系统及其具体开发工具15。嵌入式Linux是根据嵌入式系统的不同需求,逐渐修改和更新Linux内核代码形成的。嵌入式Linux和一般的Linux区别集中在Linux内核上:前者的内核为嵌入式目标平台将通用Linux做了专门设计和修改,后者的内核应用于通用PC平台12。操作系统是一台计算机必不可少的系统软件,是整个计算机系统的灵魂。一个操作系统是一个复杂的计算机程序集,它提供操作过程的协议或行为准则。没有操作系统,计算机就无法工作,就不能解释和执行用户输入的命令或运行简单的程序。大多数操作系统都是一些主要的软件公司支持的商品化程序,用户只能有偿使用

55、。如果用户购买了一个操作系统,他就必须满足供应商所要求的一切条件。因为操作系统是系统程序,用户不能擅自修改或试验操作系统的内核,这对于广大计算机爱好者来说无疑是一种束缚。要想发挥计算机的作用,仅有操作系统还不够,用户还必须要有各种应用程序的支持。应用程序是用于处理某些工作(如字处理)的软件包,通常它也只能有偿使用。每个应用程序的软件包都为特定的操作系统和机器编写。使用者无权修改这些应用程序。使用Linux,可以将操作系统变成一种操作环境。由于Linux是一套自由软件,用户可以无偿地得到它及其源代码,可以无偿地获得大量的应用程序,而且可以任意地修改和补充它们。这对用户学习、了解Unix操作系统的

56、内核非常有益。 学习和使用Linux,能为用户节省一笔可观的资金。Linux是目前唯一可免费获得的、为PC机平台上的多个用户提供多任务、多进程功能的操作系统,这是人们要使用它的主要原因。就PC机平台而言,Linux提供了比其他任何操作系统都要强大的功能,Linux还可以使用户远离各种商品化软件提供者促销广告的诱惑,再也不用承受每过一段时间就升级之苦,因此,可以节省大量用于购买或升级应用程序的资金。Linux不仅为用户提供了强大的操作系统功能,而且还提供了丰富的应用软件。用户不但可以从Internet上下载Linux及其源代码,而且还可以从Internet上下载许多Linux的应用程序。可以说,

57、Linux本身包含的应用程序以及移植到Linux上的应用程序包罗万象,任何一个用户都能从有关Linux的网站上找到适合自己特殊需要的应用程序及其源代码,这样,用户就可以根据自己的需要下载源代码,以便修改和扩充操作系统或应用程序的功能。这对Windows NT、Windows98、MS-DOS或OS2等商品化操作系统来说是无法做到的。Linux为广大用户提供了一个在家学习和使用Unix操作系统的机会。尽管Linux是由计算机爱好者们开发的,但是它在很多方面还是相当稳定的,从而为用户学习和使用目前世界上最流行的Unix操作系统提供了很大方便。现在有许多CD-ROM供应商和软件公司(如RedHat和TurboLinux)支持

温馨提示

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

评论

0/150

提交评论