基于Linux的电子阅读器的设计与实现(程序代码+任务书+说明书+外文翻译+演示文稿)_第1页
基于Linux的电子阅读器的设计与实现(程序代码+任务书+说明书+外文翻译+演示文稿)_第2页
基于Linux的电子阅读器的设计与实现(程序代码+任务书+说明书+外文翻译+演示文稿)_第3页
基于Linux的电子阅读器的设计与实现(程序代码+任务书+说明书+外文翻译+演示文稿)_第4页
基于Linux的电子阅读器的设计与实现(程序代码+任务书+说明书+外文翻译+演示文稿)_第5页
已阅读5页,还剩102页未读 继续免费阅读

下载本文档

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

文档简介

太原理工大学毕业设计(论文)用纸i基于Linux下电子阅读器的实现摘要近年来,Linux嵌入式技术得到迅速的发展并已经成为计算机产业的一个技术热点。促成嵌入式高速发展的因素之一就是模拟器技术。模拟器技术的发展无论是对于软件开发人员还是软件学员来说是一笔巨大的财富和福利,原因在于各大公司利益导致的平台独占问题,导致一些平台(如某家公司的手机和掌机)的文件(如UMD移动文档格式)以及程序只能在其对应的平台使用,而不能在PC端甚至我们熟知的Linux环境下浏览,查看以及开发。于是就出现各种各样的模拟器,这些模拟器的作用就是模拟那些平台的运行环境,以便于达到浏览,运行甚至开发这些平台文件的目的。在数据和资源共享的时代,虽然我们要支持产品版权,但是我们也要反对垄断,这样,许多虚拟机包括转码程序就应运而生。基于它们本身的作用以及属性,它们现阶段或许不能够正式地面向一些大批量产品市场,但是,这些小程序能够提供足够的范例以教学使用并促进嵌入式软件的开发。其中包括本次项目中解决UMD移动格式独占问题的Linux下电子阅读器的模拟器程序。关键词:嵌入式,Linux,模拟器,UMD格式,平台独占太原理工大学毕业设计(论文)用纸iiTheRealizationofelectronicreaderbasedonLinuxAbstractInrecentyears,theembeddedLinuxtechnologyisdevelopingrapidlyandhasbecomeahottechnologypointinthecomputerindustry.Onereasonfortherapiddevelopmentoftechnologyisembeddedsimulator.Thedevelopmentofsimulatortechnologybothforsoftwaredevelopersorsoftwarestudentsisagreatwealthandwelfare.Thereasonisthateachbigcompanyinterestscauseplatformmonopoly,leadingsomeplatform(suchasacompanysmobilephoneandhandheld)file(suchasUMDmobiledocumentformat)andprogramcanonlybeusedontheplatform,butnotinthePCendandtheLinuxweknowenvironmenttobrowse,viewanddevelopment.Henceavarietyofsimulator,thesimulatoristheroleoftheplatformrunningenvironment,inordertobrowse,operationanddevelopmentoftheseplatformfilepurpose.Inthedataandresourcesharingtime,althoughwehavetosupportproductcopyright,太原理工大学毕业设计(论文)用纸iiibutwealsowanttoopposemonopoly,so,manyvirtualmachineincludesatranscodingwillemergeasthetimesrequire.Theirroleandattributebasedonthestage,theymaynotbeabletoformallygroundtosomelargequantitiesofproductstothemarket,however,thesesmallprogramcanprovideenoughexamplesinteachingandpromotethedevelopmentofembeddedsoftware.IncludingthesimulatorprogramelectronicreaderUMDmobileformatexclusiveproblemofLinuxundertheproject.Keywords:embeddedsystem,Linux,simulator,UMDformat,Platformexclusive太原理工大学毕业设计(论文)用纸1目录摘要.iAbstract.ii1引言.12环境工具介绍.32.1Linux系统介绍.32.2QTcreator环境介绍.42.3GCC编译环境介绍.52.3.1前端接口.62.3.2中介接口.62.3.3后端接口.62.3.4基本用法.72.4文件架构依赖包的使用简介.72.4.1zlib的简介以及作用.72.4.2qmake介绍以及特点.83系统分析.93.1格式介绍.93.1.1PC格式.93.1.2手机格式.103.2技术需求分析.103.2.1UMD格式解码技术.10太原理工大学毕业设计(论文)用纸23.2.2C语言开发依据以及执行过程.123.3可行性分析.124概要设计.134.1总体功能.134.2功能展示以及UI界面描述.134.3代码框架以及程序总流程.144.3.1代码框架.144.3.2程序总流程.155详细设计以及实现.175.1后台设计.175.1.1UMD命名空间.175.1.2Umdparser.195.1.3bookmarkwidget书签插件设计.205.1.4主界面的设计.215.2主要功能设计.235.2.1UMD文件的打开.235.2.2UMD文件的阅览.265.2.3转码功能的实现.425.2.4书签功能的设计与实现.466程序测试和调试.546.1程序调试.546.2程序测试.546.2.1测试重要性以及目的.546.2.2测试主要步骤以及思想.556.2.3测试内容.55太原理工大学毕业设计(论文)用纸36.2.4测试用例.557结术语.577.1软件总体评价.577.2文件格式兼容性以及功能扩展评估.577.2.1关于对PDF格式的开发决议.577.2.2操作系统兼容性.577.2.3apk文件扩展.57参考文献.58致谢.59外文文献.60中文翻译.65太原理工大学毕业设计(论文)用纸11引言说到本项目我们需要简单了解以下技术背景。嵌入式Linux是以Linux为基础的嵌入式作业系统,它被广泛应用在移动电话、个人数字助理(PDA)、媒体播放器、消费性电子产品以及航空航天等领域中。它的目的是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。嵌入式linux既继承了Internet上无限的开放源代码资源,又具有嵌入式操作系统的特性。嵌入式Linux的特点是版权费免费;购买费用媒介成本技术支持全世界的自由软件开发者提供支持网络特性免费,而且性能优异,软件移植容易,代码开放,有许多应用软件支持,应用产品开发周期短,新产品上市迅速,因为有许多公开的代码可以参考和移植,实时性能RT_LinuxHardhatLinux等嵌入式Linux支持,实时性能稳定性好安全性好。而作为计算机发展最迅速的领域之一的嵌入式技术,已经形成了一整套独有的理论,并广泛地应用于人们的生产和生活中。但是,为了将这样的技术进行教学普及以便于社会生产和使用,于是就诞生了其逆向技术虚拟机技术。虚拟机(VirtualMachine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机软件或系统,而虚拟机技术,顾名思义,就是将特有硬件功能以某种特定而对应的软件环境中得到实现,并非在硬件本身里面实现的过程。它作为嵌入式技术的子技术以及逆向技术是当今嵌入式发展的不可或缺的技术。有了它,我们可以方便地了解使用及开发那些独占平台文件,甚至可以做到反技术垄断。因此,作为嵌入式软件开发者,虚拟机技术是很广泛的,但是同时又是很严苛的,掌握它既是一项艰巨的任务,又是一项必不可少的个人技术提升之路。虚拟机技术的特点在于:(1)低成本甚至完全免费。不需要购买对应的硬件来实现,只需要安装一个模拟器即可实现专用平台的功能(2)便于教学和技术扩展研究。在对应平台上你对专用文件格式只具有读取权限,不具有写权限以及执行权限,这给开发人员造成非常不必要的麻烦。也让技术的发展和提升被严重限制。而对应的虚拟机诞生之后,工作以及研发人员就可以对其进行改造和升级。太原理工大学毕业设计(论文)用纸2(3)可维护性大大提高。如果你读取专有格式文件的硬件出现问题,作为使用者你几乎无法维修硬件,这个时候你就需要这样一个虚拟软件环境能够帮助你读取对应格式文件,而如果这个软件出现问题,你可以卸载并重新安装随着信息时代的来临,很多垄断技术和文件均被分享,但是仍然有一些公司仗着平台文件大肆垄断,同时,也有很多平台文件我们普通PC无法读取,这不仅造成资源得不到共享,垄断中的技术得不到更新,同时造成一家独大的局面。要打破这种局面,虚拟机技术就是王牌,但是熟练掌握到运用自如这是一段艰难的路。另外,用惯了windows的大家都知道,windows上面的软件总数要远远大于Linux的软件总数,这使得很多能够在windows下面运行的软件放到Linux下面就形成了空缺,甚至都没有专门的项目。就如本作者编写的这个虚拟机程序,它对应的UMD只在windows下面有专门的软件,而且同样是官方程序加载非官方插件的版本,而非独立软件版本,这使得对于开发者和阅读人员造成了许多程序上的麻烦之处。所以,本作者所做的就是解决平台独占中其中的某一项:诺基亚手机专用文档UMD格式的文件在PC端特别是LINUX系统环境下运行,并实现PDF,PS文件以及可写文件TXT的转码。当然,为了防止文件修改所带来的版权纠纷,我刻意去掉了编辑功能,另软件只有读取功能而没有写功能,只有大家转码成txt,才具有可写功能,希望大家谅解。本作者是一个学生党,在这方面的技术有待于提高,如果大家使用过程中有问题,尽可以提供宝贵意见,我们将衷心致力于软件的改进。太原理工大学毕业设计(论文)用纸3太原理工大学毕业设计(论文)用纸42环境工具介绍2.1Linux系统介绍本软件编译,运行在Linux操作系统环境下,这里我选用了库函数非常齐全的Ubuntukylin14.04版本。首先来说一下Ubuntu:Ubuntu(乌班图)是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu基于Debian发行版和GNOME桌面环境,与Debian的不同在于它每6个月会发布一个新版本。Ubuntu的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。Ubuntu具有庞大的社区力量,用户可以方便地从社区获得帮助。2013年1月3日,Ubuntu正式发布面向智能手机的移动操作系统。Ubuntu是基于DebianGNU/Linux,支持x86、amd64(即x64)和ppc架构,由全球化的专业开发团队(CanonicalLtd)打造的开源GNU/Linux操作系统。为桌面虚拟化提供支持平台。Ubuntu对GNU/Linux的普及特别是桌面普及作出了巨大贡献,由此使更多人共享开源的成果与精彩。Ubuntu是一个南非的民族观念,该词来自于祖鲁语和科萨语,意为人们之间的忠诚和联系。被视为非洲人的传统理念,也是建立新南非共和国的基本原则之一,与非洲复兴的理想密切相关。Ubuntu精神的大意是“人道待人”。另一种翻译可以是:“天下共享的信念,连接起每个人”。具有Ubuntu精神的人心胸开阔,乐于助人,见贤思齐而不忌妒贤能,因为他/她拥有适度的自信。而这源自如下认识:“自己乃是属于一个更大的整体,当他人受到伤害或死去时,当他人受到折磨或压迫时,这个整体就会消失。”大主教DesmondTutu。太原理工大学毕业设计(论文)用纸5下面是Ubuntukylin14.04简介。2014年4月22日,由工业和信息化部软件与集成电路促进中心(CSIP)携手国防科技大学(NUDT)和Canonical公司合作成立的CCN开源软件创新联合实验室在北京召开新产品发布会,宣布UbuntuKylin14.04LTS版本正式发布并确定中文名为“优麒麟”。UbuntuKylin14.04LTS是UbuntuKylin操作系统的第三个正式发行版,也是首个长期支持(LTS)版,提供了最新的功能和工具,以确保直观而舒适的用户体验。UbuntuKylin14.04版本主要特性有:内核采用LinuxKernel3.13.0,相对于Ubuntu12.04所采用内核,3.13版本内核在网络、调度、电源管理、虚拟化、文件系统、安全以及硬件支持等方面均有大幅改进;搭载UbuntuKylin软件中心:支持Ubuntu和UbuntuKylin软件仓库;中文化方面,与UbuntuLocoTeam社区合作,对主要软件界面、软件中心描述以及系统帮助文档进行了全面中文化工作;系统桌面主题定制:提供了定制的开机动画和从壁纸大赛中挑选的系统壁纸,也默认搭载了定制的系统主题UbuntuKylin。系统应用方面:默认搭载优客助手,可为UbuntuKylin用户提供系统管理和配置工具;基于小企鹅输入法框架定制推出搜狗输入法的Linux版本,并为输入法定制开发了操作面板;默认安装了UbuntuKylin团队与金山联合开发的Linux版本金山网盘客户端;提供了WPSforLinux版本办公套件。与此同时,UbuntuKylin14.04LTS版本还针对最新的台式计算机和笔记本电脑以及多种触控设备,如触控板和触摸屏、高像素密度(DPI)屏幕键盘和鼠标等,进行了优化。UbuntuKylin13.10用户如果要升级到UbuntuKylin14.04的话,可按下快捷键Alt+F2,输入“updatemanager”,在弹出的更新管理器窗口中选择可用的UbuntuKylin14.04LTS版本并按照屏幕提示升级即可。太原理工大学毕业设计(论文)用纸62.2QTcreator环境介绍QtCreator是跨平台的QtIDE,QtCreator是Qt被Nokia收购后推出的一款新的轻量级集成开发环境(IDE)。此IDE能够跨平台运行,支持的系统包括Linux(32位及64位)、MacOSX以及Windows。根据官方描述,QtCreator的设计目标是使开发人员能够利用Qt这个应用程序框架更加快速及轻易的完成开发任务。QtCreator包括项目生成向导、高级的C+代码编辑器、浏览文件及类的工具、集成了QtDesigner、QtAssistant、QtLinguist、图形化的GDB调试前端,集成qmake构建工具等。QtCreator主要是为了帮助新Qt用户更快速入门并运行项目,还可提高有经验的Qt开发人员的工作效率。特点:使用强大的C+代码编辑器可快速编写代码语法标识和代码完成功能输入时进行静态代码检验以及提示样式上下文相关的帮助代码折叠括号匹配和括号选择模式高级编辑功能。使用浏览工具管理源代码。集成了领先的版本控制软件,包括Git、Perforce和Subversion开放式文件,无须知晓确切的名称或位置搜索类和文件跨不同位置或文件沿用符号在头文件和源文件,或在声明和定义之间切换为Qt跨平台开发人员的需求而量身定制。集成了特定于Qt的功能,如信号与槽(Signals&Slots)图示调试器,对Qt类结构可一目了然集成了QtDesigner可视化布局和格式构建器只需单击一下就可生成和运行Qt项目。这里面用到的底层语言是C语言,编译工具是Linux操作系统下主流软件gcc控制台以及类库,具体介绍一下类似windows下的vs2010的编程软件QTcreator而qt本身则是一个1991年由奇趣科技开发的跨平台C+图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(MetaObjectCompiler,moc))以及一些宏,易于扩展,允许组件编程。2008年,奇趣科技被太原理工大学毕业设计(论文)用纸7诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。2014年4月,跨平台集成开发环境QtCreator3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C+代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP。Qt因为4.x版本和5.x版本其类库有较大的变动,这里,我们采用旧版的qt即qt4.8.6进行编写。如图2所示的QTcreator使用范例。图2qt使用范例2.3GCC编译环境介绍GCC(GNUCompilerCollection,GNU编译器套装)是一套由GNU工程开发的支持多种编程语言的编译器。GCC是自由软件发展过程中的著名例子,由自由软件基金会以GPL协议发布。GCC是大多数类Unix操作系统(如Linux、BSD、MacOSX等)的标准的编译器,GCC同样适用于微软的Windows。GCC支持多种计算机体系芯片,如x86、ARM,并已移植到其他多种硬件平台。GCC原名为GNUC编译器(GNUC太原理工大学毕业设计(论文)用纸8Compiler),因为它原本只能处理C语言。GCC很快地扩展,并支持处理C+。后来又扩展能够支持更多编程语言,如Fortran、Pascal、Objective-C、Java、Ada、Go等。GCC(GNUCompilerCollection,GNU编译器套装),是由GNU开发的编程语言编译器。它是以GPL许可证所发行的自由软件,也是GNU计划的关键部分。GCC原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统(如Linux、BSD、MacOSX等)采纳为标准的编译器,GCC同样适用于微软的Windows。GCC是自由软件过程发展中的著名例子,由自由软件基金会以GPL协议发布。GCC原名为GNUC语言编译器(GNUCCompiler),因为它原本只能处理C语言。GCC很快地扩展,变得可处理C+。之后也变得可处理Fortran、Pascal、Objective-C、Java,以及Ada与其他语言。关于他的结构:GCC的外部接口长得像一个标准的Unix编译器。使用者在命令列下键入gcc之程序名,以及一些命令参数,以便决定每个输入档案使用的个别语言编译器,并为输出程序码使用适合此硬件平台的组合语言编译器,并且选择性地执行连结器以制造可执行的程序。每个语言编译器都是独立程序,此程序可处理输入的原始码,并输出组合语言码。全部的语言编译器都拥有共通的中介架构:一个前端解析符合此语言的原始码,并产生一抽象语法树,以及一翻译此语法树成为GCC的暂存器转换语言RTL的后端。编译器最佳化与静态程序码解析技术(例如FORTIFY_SOURCE,一个试图发现缓冲区溢位bufferoverflow的编译器)在此阶段应用于程序码上。最后,适用于此硬件架构的组合语言程序码以JackDavidson与ChrisFraser发明的算法产出。2.3.1前端接口前端的功能在于产生一个可让后端处理之语法树。此语法解析器是手写之递回语法解析器。直到最近,程序的语法树结构尚无法与欲产出的处理器架构脱钩。而语法树的规则有时在不同的语言前端也不一样,有些前端会提供它们特别的语法树规则。在2005年,两种与语言脱钩的新型态语法树纳入GCC中。它们称为GENERIC与GIMPLE。语法解析变成产生与语言相关的暂时语法树,再将它们转成GENERIC。之后再使用gimplifier技术降低GENERIC的复杂结构,成为一较简单的静态唯一形式(StaticSingleAssignmentform,SSA)基础的GIMPLE形式。此形式是一个与语言和太原理工大学毕业设计(论文)用纸9处理器架构脱钩的全域最佳化通用语言,适用于大多数的现代编程语言。2.3.2中介接口一般编译器作者会将语法树的最佳化放在前端,但其实此步骤并不看语言的种类而有不同,且不需要用到语法解析器。因此GCC作者们将此步骤归入通称为中介阶段的部分里。此类的最佳化包括消解死码、消解重复运算与全域数值重编码等。许多最佳化技巧也正在实作中。2.3.3后端接口GCC后端的行为因不同的前处理器宏和特定架构的功能而不同,例如不同的字符尺寸、呼叫方式与大小尾序等。后端接口的前半部利用这些讯息决定其RTL的生成形式,因此虽然GCC的RTL理论上不受处理器影响,但在此阶段其抽象指令已被转换成目标架构的格式。GCC的最佳化技巧依其释出版本而有很大不同,但都包含了标准的最佳化算法,例如循环最佳化、执行绪跳跃、共通程序子句消减、指令排程等等。而RTL的最佳化由于可用的情形较少,且缺乏较高阶的资讯,因此比较起近来增加的GIMPLE语法树形式,便显得比较不重要。后端经由一重读取步骤后,利用描述目标处理器的指令集时所取得的资讯,将抽象暂存器替换成处理器的真实暂存器。此阶段非常复杂,因为它必须关照所有GCC可移植平台的处理器指令集的规格与技术细节。后端的最后步骤相当公式化,仅仅将前一阶段得到的组合语言码藉由简单的副函式转换其暂存器与内存位置成相对应的机械码。2.3.4基本用法在使用Gcc编译器的时候,我们必须给出一系列必要的调用参数和文件名称。GCC编译器的调用参数大约有100多个,其中多数参数我们可能根本就用不到,这里只介绍其中最基本、最常用的参数。GCC最基本的用法是gccoptionsfilenames其中options就是编译器所需要的参数,filenames给出相关的文件名称。-c,只编译,不链接成为可执行文件,编译器只是由输入的.c等源代码文件生成.o为太原理工大学毕业设计(论文)用纸10后缀的目标文件,通常用于编译不包含主程序的子程序文件。-ooutput_filename,确定输出文件的名称为output_filename,同时这个名称不能和源文件同名。如果不给出这个选项,gcc就给出预设的可执行文件a.out。-g,产生符号调试工具(GNU的gdb)所必要的符号资讯,要想对源代码进行调试,我们就必须加入这个选项。-O,对程序进行优化编译、链接,采用这个选项,整个源代码会在编译、链接过程中进行优化处理,这样产生的可执行文件的执行效率可以提高,但是,编译、链接的速度就相应地要慢一些。-O2,比-O更好的优化编译、链接,当然整个编译、链接过程会更慢。-Idirname,将dirname所指出的目录加入到程序头文件目录列表中,是在预编译过程中使用的参数。C程序中的头文件包含两种情况A)#includeB)#include“myinc.h”其中,A类使用尖括号(),B类使用双引号(“”)。对于A类,预处理程序cpp在系统预设包含文件目录(如/usr/include)中搜寻相应的文件,而B类,预处理程序在目标文件的文件夹内搜索相应文件。2.4文件架构依赖包的使用简介2.4.1zlib的简介以及作用zlib是提供数据压缩用的函式库,由Jean-loupGailly与MarkAdler所开发,初版0.9版在1995年5月1日发表。zlib使用DEFLATE算法,最初是为libpng函式库所写的,后来普遍为许多软件所使用。此函式库为自由软件,使用zlib授权。截至2007年3月,zlib是包含在Coverity的美国国土安全部赞助者选择继续审查的开源项目。Zlib具有以下特性:(1)数据头(header)zlib能使用一个gzip数据头,zlib数据头或者不使用数据头压缩数据。太原理工大学毕业设计(论文)用纸11通常情况下,数据压缩使用zlib数据头,因为这提供错误数据检测。当数据不使用数据头写入时,结果是没有任何错误检测的原始DEFLATE数据,那么解压缩软件的调用者不知道压缩数据在什么地方结束。gzip数据头比zlib数据头要大,因为它保存了文件名和其他文件系统信息,事实上这是广泛使用的gzip文件的数据头格式。注意zlib函式库本身不能创建一个gzip文件,但是它相当轻松的通过把压缩数据写入到一个有gzip文件头的文件中。(2)算法目前zlib仅支持一个LZ77的变种算法,DEFLATE的算法。这个算法使用很少的系统资源,对各种数据提供很好的压缩效果。这也是在ZIP档案中无一例外的使用这个算法。(尽管zip文件格式也支持几种其他的算法)。看起来zlib格式将不会被扩展使用任何其他算法,尽管数据头可以有这种可能性。(3)使用资源函数库提供了对处理器和内存使用控制的能力,不同的压缩级别数值可以指示不同的压缩执行速度。还有内存控制管理的功能。这在一些诸如嵌入式系统这样内存有限制的环境中是有用的。(4)策略压缩可以针对特定类型的数据进行优化。如果你总是使用zlib库压缩压缩特定类型的数据,那么可以使用有针对性的策略可以提高压缩效率和性能。例如,如果你的数据包含很长的重复数据,那么可以用RLE(运行长度编码)策略,可能会有更好的结果。对于一般的数据,默认的策略是首选。(5)错误处理错误可以被发现和跳过数据混乱可以被检测(只要数据和zlib或者gzip数据头一起被写入参见上面)此外,如果全刷新点(full-flushpoints)被写入到压缩后的数据流中,那么错误数据是可以被跳过的,并且解压缩将重新同步到下个全刷新点。(错误数据的无错恢复被提供)。全刷新点技术对于在不可靠的通道上的大数据流是很有用的,一些过去的数据丢失是不重要的,但是建立太多的全刷新点会极大的影响速度和压缩。(6)数据长度太原理工大学毕业设计(论文)用纸12对于压缩和解压缩,没有数据长度的限制。重复调用库函数允许处理无限的数据块。一些辅助代码(计数变量)可能会溢出,但是不影响实际的压缩和解压缩。当压缩一个长(无限)数据流时,最好写入全刷新点。2.4.2qmake介绍以及特点qmake是一个协助简化跨平台进行专案开发的构建过程的工具程式,Qt附带的工具之一。qmake能够自动生成Makefile、MicrosoftVisualStudio专案文件和xcode专案文件。不管源代码是否是用Qt写的,都能使用qmake,因此qmake能用于很多软件的构建过程。1特点:手写Makefile是比较困难而且容易出错,尤其在进行跨平台开发时必须针对不同平台分别撰写Makefile,会增加跨平台开发复杂性与困难度。qmake会根据专案文件(.pro)里面的信息自动生成适合平台的Makefile。开发者能够自行撰写专案文件或是由qmake本身产生。qmake包含额外的功能来方便Qt开发,如自动的包含moc和uic的编译规则。3系统分析3.1格式介绍3.1.1PC格式(1)EXE不需要安装专门的阅读器,下载后就可以直接打开。单击目录可直接打开所需内容。(2)TXT它在电脑上是记事本的扩展名,这种现在普遍应该到电子产品中,现在最常见的就是TXT小说,不仅方便的在电脑上打开,还可以下载到的MP3和手机中,现在网上TXT小说网站也很多,比如著名的飘零书社就是专业的TXT格式小说下载网站,可以很方便的下载自己的手机或MP3中,省去很多购买书的费用;太原理工大学毕业设计(论文)用纸13(3)HTML网页格式,可用网页浏览器直接打开;(4)HLP帮助文件格式,在Windows上可直接打开;一般在程序中按F1可以打开。(5)CHM同HLP文件格式一样,也是帮助文件,但其支持多种视音频格式,让电子书显得更加生动美观。(6)LIT微软的文件格式,需下载MicrosoftReader软件来阅读。(7)PDFPDF是ADOBE公司开发的电子读物文件格式,是目前使用最普及的电子书格式,它可以真实地反映出原文档中的格式、字体、版式和图片,并能确保文档打印出来的效果不失真。(8)WDL这是北京华康公司的文件格式,使用也很普遍。用DynaDoc免费阅读软件即可打开WDL和WDF格式。(9)CEB此格式是由北大方正公司独立开发的电子书格式,由于在文档转换过程中采用了“高保真”技术,从而可以使CEB格式的电子书最大限度地保持原来的样式。(10)ABM一种全新的数码出版物格式,这种格式最大的优点就是能把文字内容与图片、音频甚至是视频动画结合为一个有机的整体。在阅读时,能带来视觉、听觉全方位享受。(11)PDG超星公司把书籍经过扫描后存储为PDG数字格式,存放在超星数字图书馆中。如太原理工大学毕业设计(论文)用纸14果你要想阅读这些图书,则必须使用超星阅览器(SuperstarReader)。(12)EPUBEPUB是可重排版(reflowable直译可回流)的基于XML格式的电子书或其它数字出版物,是数字出版业商业和标准协会InternationalDigitalPublishingForum(IDPF)制定的标准。有各种开放源代码或者商业的阅读软件支持几乎所有的主流操作系统。(13)CAJCAJ为中国学术期刊全文数据库英文缩写(ChinaAcademicJournals);CAJ是中国学术期刊全文数据库中文件的一种格式。可以使用CAJ全文浏览器来阅读。3.1.2手机格式(1)UMD该格式原先为诺基亚手机操作系统支持的一种电子书的格式,阅读该格式的电子书需要在手机上安装相关的软件。不过现在的很多java手机下载阅读软件后也可以看。(2)JARJAR文件格式以流行的ZIP文件格式为基础。与ZIP文件不同的是,JAR文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和JVM这样的工具直接使用。3.2技术需求分析3.2.1UMD格式解码技术使用这项技术之前我们先来了解一下UMD文件格式:UMD文件有三种格式类型,一种叫纯文本格式,一种叫漫画&写真集格式,以及连环画(文字+图画)。本文只涉及纯文本格式的UMD,后面将直接使用UMD指代这类格式的文件。UMD文件总体上是由一组连续的块组成的,每一块按照约定的顺序先后排列在一起构成了UMD文件的结构。根据块的职责,我将其分成两类:功能块和数据块。有太原理工大学毕业设计

温馨提示

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

评论

0/150

提交评论