完整版基于Android平台的手机电子书阅读器毕业设计论文Word文档下载推荐.docx
《完整版基于Android平台的手机电子书阅读器毕业设计论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《完整版基于Android平台的手机电子书阅读器毕业设计论文Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。
本文设计的手机电子书阅读器通过了功能和性能方面的测试,证明了本文设计方案的可行性。
通过对基于Android平台手机电子书阅读器的设计与实现的介绍,希望能为今后开发出功能更强大的阅读器提供有益的借鉴。
关键词:
Android平台;
电子书阅读器;
Java
ABSTRACT
Today,it’samoreadvancedintechnology,increasinglycompetitivesociety,whichrequirespeopletotheintakeofinformationtoenrichthemselves.Requirespeopletoalwaysbeintheknowandgettherequiredinformation.Inthiscase,thenewsreaderjusttomeettheneedsofpeopleknowofexternalobjects.InthispapertheebookreaderismobilephonedesignbasedontheAndroidplatformofthedesign,Androidplatformisthefastestdeveloping,themostmarketprospectofsmartphoneoperatingsystem.
Inthissystem,GoogleAndroidplatformisbasedontheuser'
spreferencesandcharacteristicsofitsplatformdesigned,inGoogleAndroidplatform,comeswithSDK1.5environment,theuseoftheEclipse,PhotoShopandothertoolsfordevelopment.ThisarticleintroducesthedevelopmentprocessoftheGoogleAndroid,discussestheapplicationdevelopmentbasedontheAndroidplatformofthekeytechnology,todoadetailedanalysisofthedemandforMobilephoneebookandintroducesthefocusonMobilephoneebookreaderoverall’sdesign.includestheebookreadermobilephonedesignmainly,architecturedesignandthefunctionofthesystem.
Inthispapertheebookreaderthroughmobilephonedesignofthefunctionandperformancetest,provedthefeasibilityofthisdesign.ThroughtotheAndroidplatformbasedonmobilephoneebookreaderdesignandimplementationoftheintroduction,thethefuturemorepowerfulofferbeneficialreferenceforthereader.
Keywords:
Android;
E-bookreader;
Java
摘要I
ABSTRACTII
绪论1
(一)课题研究背景及意义1
(二)国内外研究现状1
(三)论文组织结构及安排3
一、相关理论及关键技术3
(一)Andriod特征4
(二)Andriod架构4
(三)Andriod应用的构成和工作机制6
(四)Andriod手机平台控件研究8
二、手机电子阅读器需求分析9
(一)概述9
(二)手机阅读器功能需求9
(三)手机性能需求13
三、手机电子书阅读器总体设计13
(一)软件架构设计13
(二)软件结构设计14
(三)功能模块设计15
(四)系统数据流设计15
四、手机电子书阅读器的设计与实现15
(一)数据库设计15
(二)关键代码实现17
五、系统测试26
(一)Android手机系统测试之打断事件26
(二)测试中发现的问题及修复27
(三)本程序的扩展功能27
(四)测试结果28
结语31
参考文献32
后记33
绪论
手机已经成为了生活中不可缺少的通讯设备,没有手机有时会让人觉得寸步难行。
手机不仅具备传统的打电话、发短信等基本的功能,而且具有强大的处理能力和可扩展能力,能进行电子图书的阅览、基于3G网络实现高速数据传输、第三方浏览软件的运用等,越来越多的功能和业务将被开发出来并大规模的应用。
正基于此,Google于2007年11月5日宣布推出基于Linux平台的开源手机操作系统,号称首个为移动终端打造的真正开放和完整的移动软件——Android。
(一)课题研究背景及意义
当今社会手机是已经成为了生活中不可缺少的通讯设备,随着科技的发展手机的功能也越来越强大,手机电子阅读器是手机中的一种重要软件,其真正意义上指的是一个可以阅读设备,是专门用来阅读电子书的,随着二十一世纪数字信息化的不断兴起,电子阅读器的市场竞争也变得越来越激烈。
时下社会的进步更是让人们的生活越来越忙碌,抱着厚厚的书本穿梭于大街小巷已经不再适应这个忙碌的时代。
当人们奔波于不同的城市、出没在不同的场所、搭乘不同的交通工具的时候,手机电子阅读器就可以为人们提供方便快捷的阅读平台,它的作用就像一座桥梁,在我们不方便利用书本或者网络的时候提供一个更快更方便的平台,让人们能随时的阅读自己喜欢的电子图书。
就是因为手机电子阅读器方便快捷的优点,使得人们把用手机电子阅读器阅读阅读电子书当做当科技时代的一种时尚。
这也让手机电子阅读器在人们的生活中扮演的角色越来越重要。
(二)国内外研究现状
二十世纪七十年代,著名软件工程师Andsan.Fandamu在美国布朗大学阐述通过计算机创建和阅读文件的时候首次提出了电子书[1](electronicBook,eBook)这一术语。
电子书是利用现代信息技术创造的全新出版方式,将传统的书籍出版发行方式以数字的形式通过计算机网络实现。
阅读器指的是一个设备,是专门用来看电子书的。
随着数字化的不断兴起,电子阅读器市场的竞争变得越来越激烈。
最早出现在市场上的电子书阅读器是美国SoftBook公司的SoftBook和Nov.Media公司的RocketBook[2]。
它们都具有美观的外型形状像一本古典的精装书,存储容量分别为8MB和32MB的内存,分别可以容纳5,000和32,000多个电子页的信息,与计算机串口相连,可以从SoftBook和NuvoMedia的网上售书连锁店,下载书籍和期刊。
2000年8月,美国微软公司发布了一个可供人们阅读电子书的应用软件MicrosoftReader,这种阅读器软件的核心技术是ClearType[1],微软称之为“对液晶显示屏具有革命性的变革”,它是一种能使文字在显示器上的显示效果像印在纸上一样平滑清晰的字符显示技术,这种技术大大提高了屏幕的分辨率和清晰度,使读者能够获得最接近传统书的阅读效果。
同时南开大学津科公司开发了一款阅读不耗电的电子书阅读器,该电子书阅读器已经面市并将投人大规模生产。
它采用了华人科学家吴葆刚博士发明的“多稳态液晶显示器[2]”,并在国际上首次实现了“翻页不耗电”阅读显示。
除了上述几种电子书阅读器之外,EveryBook,Librius,GlassBook等公司也都推出了自己的电子书阅读器和阅读软件,辽宁出版集团和美国秦通公司联手合作推出了中文电子“掌上书屋”。
随着这些阅读器的出现,使得电子图书、期刊这些原本只能在PC上阅读的东西突然变得可以移动,电子书籍与纸制书籍之间的距离缩短了一大步。
同时,电子书阅读器更方便和灵活的使用功能也在不断地研究推出,例如,可以在阅读的时候加批注、书签、字体可缩放、旋转和支持声音播放等等。
目前主流的电子书阅读器有熊猫看书,它是网龙公司自主研发并出品的一款免费阅读软件,支持在线书籍查询,在线书籍分类阅读,书籍收藏与撤销收藏,新闻分类阅读,新闻订阅分类与撤销订阅。
是基于iPhoneWindowsMobileSymbian
AndroidM8Kjava等多手机平台上的全能免费阅读软件。
全面支持TXT、ZIP、HTML、UMD、NDB等多种格式,同时还支持JPG、BMP、PNG、GIF等多种格式图像查看。
自适应中文编码,自动排版,支持RSS新闻离线阅读。
电子阅读现在是国家和业内非常重视的一个新兴产业,它与国家提倡的“自主创新,增强核心竞争力”、开展低碳、节能环保的社会环境相吻合,很多厂商、科研院所都将目光放到了这个原本没有足够重视的领域上。
同时,手机电子书阅读器作为广大网民经常使用的一个工具,在手机阅读市场逐渐扩大的时候,人们对于阅读的方便性和各种功能设置都有了更高的要求。
虽然现在手机电子书阅读器功能己经比较完善,但是离人们的期望还存在较大的距离,比如改善人们的阅读环境,使人们读起来不感到疲倦而且充满乐趣,同时现在的阅读器多媒体性能还不够完善。
因此,手机电子书阅读器的应用研究还大有潜力可挖。
(三)论文组织结构及安排
本文共分为五部分,内容安排如下所示。
第一部分绪论,主要介绍本课题研究的背景及意义,国内外研究现状,本文的组织结构及安排。
第二部分相关理论及关键技术,介绍了Android特征,Android架构和Android应用的构成和工作机制等内容,研究了Android控件。
第三部分手机电子书阅读器需求分析,主要介绍了阅读器各功能模块需求。
第四部分手机电子书阅读器总体设计,分别从这几个角度进行描述:
软件架构图,软件结构图和功能模块设计。
第五部分手机电子书阅读器详细设计与实现,主要介绍了开发环境,关键模块代码实现和系统测试。
第六部分结语,对全文进行了总结和展望。
一、相关理论及关键技术
随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。
于是各种手机播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。
针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户(如听歌,看电影)的需求,除了能播放常见格式的语音视频文件,高级功能:
还能播放RMVB格式的视频文件。
此外,还能支持中文、英文等语言界面。
Android是一个移动设备的软件平台,是由Linux+Java构成的开源软件,它提供包括SDK、KeyApps、Middleware、LinuxKernel四个部分在内的全套手机软件方案。
它开放了基于Linux内核以上的开发工具,从而保证了内容的可移植性和多样性。
Android平台为开发应用程序提供了一套很好的框架,我们可以在这个平台的基础上开发不同的应用程序,也可以开发新的组件供应用程序调用[1]。
(一)Andriod特征
Dalvik虚拟:
Android采用的Java虚拟机是自主开发的代号为Dalvik的虚拟机技术,在保证API方面兼容的同时Dalvik针对移动手机进行了大幅优化,占用资源更小,运行效率更高。
内嵌浏览器:
基于开源的浏览器网页排版引擎WebKit。
优化的图形:
强大的自定义二维图形库。
基于OpenGLES1.O标准的3D图形功能,在移动3D开发中有着至关重要的地位。
SQLite数据库:
SQLitet提供结构化的数据存储。
它是一款轻型免费的且开源的数据库,它的设计目标是嵌入式的,它占用的资源非常低、需要的内存空间少、处理速度比较快和支持事务处理功能等。
多媒体支持:
支持各种通用的音视频和静态图像格式,如MP3、JPG、PNG等。
OpenCore是Android多媒体框架的核心,所有Android平台的音视频采集,播放的操作都是通过它来实现的。
通过OpenCore,程序员可以方便快速的开发出想要的多媒体应用程序。
GSM技术:
(依赖硬件)GlobalSystemforMobileCommunications,全球移动通讯系统,俗称“全球通”,是第二代移动通信技术,其开发El的是让伞球各地可以共同使用一个移动电话网络标准,让用户使_一部手机就能行遍全球。
蓝牙,EDGE,3G,andWiFi是一种短距离的无线连接技术,在短距离内可以实现话音和数据的无线传输。
EDGE(EnhaIlcedDataRateforGSMEvolution),是增强型数据速率GSM演进技术。
Camera,GPS,compass,andaccelerometer:
(依赖硬件)GPS(GlobalPositioningSystem)全球定位系统。
它是一个由覆盖全球的24颗1J星组成的卫星系统。
Compass是个开放源代码的JAVA搜索引擎框架。
强大的开发环境:
包括一个设备模拟器,调试工具,内存和性能检测,以及EclipseIDE的开发插件。
Eclipse是个集成开发环境。
[1]
(二)Andriod架构
Android的架构是Linux内核、CC++函数库、Dalvik虚拟机、应用框架以及关键应用程序构成的,如图1所示,通过编译基于框架的应用程序可以降低开发负荷。
应用软件原则上是在DalvikVM上运行的。
图1Android的架构[1]
关键应用程序
Android平台内包含一些关键应用程序,如邮件收发客户端程序、短信收发程序、日历和网页浏览器等,开发者可以在其平台上开发更多有特色的应用程序。
开发语言是Java。
应用程序框架
Android应用程序的开发基于框架和组件。
Android本身已在其框架中提高了许多的组件供应用程序调用,当然开发者也开放新的组件,并将组件放入应用程序框架中,以供自己和其它应用程序调用。
CC++函数库
Android应用程序框架之下是一套CC++函数库,它们服务于Android应用程序组件,其功能通过组件间接提供给开发者。
这些函数库包括:
标准C函数库、媒体功能库、浏览器引擎、2D和3D图形库、基于WEB应用的的安全协议SSL、用于点阵和矢量字体渲染的FreeType以及SQLite引擎等。
Java程序运行环境
Android的Java程序运行环境包含一组Java核心函数库及Dalvik虚拟机,它们有效地优化了Java程序的运行过程。
所有的Android应用都运行在它自己的进程里,该进程是一个Dalvik虚拟机的实例,Dalvik被设计成能在一台设备上高效的运行多个虚拟机实例。
Dalvik虚拟机的可执行文件被封装成Dalvik可执行格式(.dex)。
这是被优化过的最小内存依赖的格式。
Java编译器(dx工具)将注册了的和运行时用到的类编译成.dex格式。
Dalvik虚拟机依赖于底层Linux内核提供的功能,如线程机制,和内存管理机制等。
Linux内核
Android系统平台是基于优化了的Linux内核,是其系统平台的核心。
它提供诸如内存管理、进程管理、设备驱动等服务,同时也是手机软硬件的连接层,提供了一个屏蔽层用于屏蔽硬件和上层软件。
(三)Andriod应用的构成和工作机制
对于一个Android应用程序来说,是由Activity、IntentReceiver、Service、ContentProvider四部分组成,但并不是每一个Android应用程序都必须由这四部分组成。
在应用程序中使用时,需要在配置文件AndroidMainfest.xml中进行配置。
这个配置文件是每个Android应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等。
Activity
Activity是构成应用程序中最重要的构造块,在Android应用程序中,几乎都是通过Activity来与用户进行交互,所以Activity主要负责的就是创建与用户进行交互的显示窗口,你可以在这些窗口里通过调用setContentView(View)方法来显示你自己的用户界面。
图2Activity状态变换路径图[1]
(1)活动生命周期
活动(Activity)在系统中以活动栈的形式进行管理。
当一个新的活动启动后,被放到了栈项,成为了运行活动,而新活动之前的活动在活动栈里总位于新活动之下,直到新的活动退出才重新回到前台。
从图2Activity状态转换路径图中可以看出,Activity有三个关键的循环:
1)活动的整个生命期:
从首次调用onCreate(Bundle)开始,到最终调用onDestroyO结束。
在onCreate()中进行所有初始化,在onDestroyO时进行清理工作,释放资源。
2)活动的可见生命期:
从调用onStart()开始,到onStop()被调用为止。
在这段时间内,即使活动不与用户进行交互,用户也可以在屏幕上看到它。
在这两个方法调用之间,可以维护活动显示给用户的资源。
onStart()和onStop()方法可以多次调用,因为活动随时可以在可见和隐藏之间进行转换。
3)活动的后台生命期:
从调用onResume()开始,到onPause()被调用为止。
在这段时间内活动处于其它所有活动之前,并与用户进行交互。
一个活动可以不断在resumed状态和paused状态之间变换。
(2)活动之间的切换
Android使用了Intent类来实现活动之间的切换工作。
Intent负责对应用中一次操作的动作、动作涉及的数据和附加数据进行描述。
根据Intent的描述,负责找到对应的组件,将Intent传递给调用的组件并完成组件的调用。
因此,Intent起着一种媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。
在应用中,我们可以以两种形式来使用Intent:
直接Intent,指定了component属性的Intent,通过指定具体的组件类,通知应用启动对应的组件。
间接Intent,没有指定comonent属性的Intent,则需要包含足够的信息,这样系统才能根据这些信息,在所有的可用组件中,确定满足此Intent的组件。
IntentReceiver
IntentReceivert是用于对外部事件的响应,当外部事件发生时,会使用NotificationManager通知用户。
当一个IntentReceiver被触发时,系统会在需要的时候启动对应的应用程序。
如在本系统中,当用户正在其它界面进行操作时,有好友发送消息过来,就会以通知的形式发送到当前界面的正上方来通知用户。
各种应用还可以通过使用Context.broadcastIntent()将它们的IntentReceiver广播给其它的应用程序,实现应用之间的通讯。
Service
Service是提供连续信息的应用程序。
它是运行于应用程序后台的服务,在用户进行其它活动的时候,这个服务将一直运行在基于Android平台的即时通讯系统的研究与实现后台直到用户停止该服务或服务运行结束。
本系统客户端扩展功能的阅读器就是采用Service来进行设计和开发的,使用户可以边聊天边看书。
ContentProvider
ContentProvider应用程序能够将它们的数据保存到文件、SQL数据库和其它的存储设备中。
当应用程序需要使用存储设备中的数据时,可以使用ContentProvider来完成。
使用ContentProvider能够灵活的替换底层使用的存储设备,使开发者可以专著于应用逻辑的开发,不用考虑底层存储设备的细节,从而使应用系统具有良好的数据。
(四)Andriod手机平台控件研究
1.Android系统控件与自定义控件的比较研究
在GoogleAndroid中给出了非常多的绚丽的控件,但是在某些时候需要的实现某些功能的时候,系统的控件显得有些笨拙和难以控制,如,在本系统中,本打算使用系统自带的控件TabLayout显示频道,但是现在的过程中,发现,该控件的每一个Tab之间有一定距离的间隔,且每一个Tab上面的图片很难控制其显示的方式和显示的效果,因此该综合美观和操作性的基础上,决定不用该控件来显示频道切换界面。
而才用笔者自定义的控件——TabHost,此控件从需求上必须能弥补系统控件TabLayout的不足,且能易于用户操作。
2.Android自定义控件的实现的研究
在GoogleAndroid移动平台中,自定义控件都大致可以分成三部分。
第一,界面的实现;
第二,功能的实现;
第三,控件的调用。
(1)界面的实现。
在GoogleAndroid平台中所有的控件都是继承了View这个超类,所以在本软件自定义一个控件的时候也需要继承这个超类,但是有些情况下不需要继承这个超类而是继承它的子类,如基于GoogleAndroid平台的手机电子书阅读器中,就继承了这个超类的子类ViewGroup,即:
publicclassTabControllerextendsViewGroup{}。
基于此我们就得到了本系统要实现的那个控件的最基本的那部分——界面的实现。
(2)功能的实现。
要实现一个控件,让其能产生特定的效果,本系统需要自己来重写父类某些甚至是全部的构造函数,如在基于GoogleAndroid平台的电子书阅读器中,笔者就重写了
protectedvoidonLayout(booleanchanged,intl,int