1、保密类别_ 编 号_本 科 毕 业 论 文基于Android平台的手机电子书阅读器设计院(系)别 传媒技术学院专 业 数字媒体技术班 级08数媒技术(影视)姓 名 王 哲学 号 指导教师 王莉莉中国传媒大学南广学院2023年 4 月 12 日摘 要在科技日益发达的今天,社会竞争越来越剧烈,这规定人们不断的摄取信息来充实自己。规定人们能随时随地的了解并获取所需的信息。在这种情况下,电子书阅读器刚好满足了人们便捷地获取信息的需求。本文设计的手机电子书阅读器是基于Android平台设计的,Android平台是目前发展最快、最具市场前景的智能手机操作系统。本系统是根据Google Android 平台
2、用户的喜好和其平台的特性而设计的,在Google Android平台自带的SDK1.5环境下,运用Eclipse,Photoshop等相关工具进行开发的。本文介绍了Google Android 开发的流程,讨论了基于Android平台应用程序开发的关键技术,对手机电子书阅读器做了具体的需求分析,并重点介绍了基于Android 平台的手机电子书阅读器的总体设计,重要涉及手机电子书阅读器的架构设计、各功能模块的设计与实现。本文设计的手机电子书阅读器通过了功能和性能方面的测试,证明了本文设计方案的可行性。通过对基于Android平台手机电子书阅读器的设计与实现的介绍,希望能为此后开发出功能更强大的阅
3、读器提供有益的借鉴。关键词: Android平台;电子书阅读器;JavaABSTRACTToday,its a more advanced in technology, increasingly competitive society, which requires people to the intake of information to enrich themselves. Requires people to always be in the know and get the required information. In this case, the news reader jus
4、t to meet the needs of people know of external objects. In this paper the ebook reader is mobile phone design based on the Android platform of the design, Android platform is the fastest developing, the most market prospect of smartphone operating system.In this system, Google Android platform is ba
5、sed on the users preferences and characteristics of its platform designed, in Google Android platform, comes with SDK1.5 environment, the use of the Eclipse, PhotoShop and other tools for development. This article introduces the development process of the Google Android, discusses the application de
6、velopment based on the Android platform of the key technology, to do a detailed analysis of the demand for Mobile phone ebook and introduces the focus on Mobile phone ebook reader overalls design. includes the ebook reader mobile phone design mainly, architecture design and the function of the syste
7、m.In this paper the ebook reader through mobile phone design of the function and performance test, proved the feasibility of this design. Through to the Android platform based on mobile phone ebook reader design and implementation of the introduction, the hope for the development in the future more
8、powerful offer beneficial reference for the reader.Keywords :Android; E-book reader; Java目 录摘 要IABSTRACTII绪 论1(一)课题研究背景及意义1(二)国内外研究现状1(三)论文组织结构及安排3一、相关理论及关键技术3(一)Andriod特性4(二)Andriod架构4(三)Andriod应用的构成和工作机制6(四) Andriod手机平台控件研究8二、手机电子阅读器需求分析9(一)概述9(二)手机阅读器功能需求9(三)手机性能需求13三、手机电子书阅读器总体设计13(一)软件架构设计13(二)
9、软件结构设计14(三)功能模块设计15(四)系统数据流设计15四、手机电子书阅读器的设计与实现15(一)数据库设计15(二)关键代码实现17五、系统测试26(一)Android手机系统测试之打断事件26(二)测试中发现的问题及修复27(三)本程序的扩展功能27(四)测试结果28结 语31参考文献32后 记33绪 论手机已经成为了生活中不可缺少的通讯设备,没有手机有时会让人觉得寸步难行。手机不仅具有传统的打电话、发短信等基本的功能,并且具有强大的解决能力和可扩展能力,能进行电子图书的阅览、基于3G网络实现高速数据传输、第三方浏览软件的运用等,越来越多的功能和业务将被开发出来并大规模的应用。正基于
10、此,Google于2023年11月5日宣布推出基于Linux平台的开源手机操作系统,号称首个为移动终端打造的真正开放和完整的移动软件Android。(一)课题研究背景及意义当今社会手机是已经成为了生活中不可缺少的通讯设备,随着科技的发展手机的功能也越来越强大,手机电子阅读器是手机中的一种重要软件,其真正意义上指的是一个可以阅读设备,是专门用来阅读电子书的,随着二十一世纪数字信息化的不断兴起,电子阅读器的市场竞争也变得越来越剧烈。时下社会的进步更是让人们的生活越来越忙碌,抱着厚厚的书本穿梭于大街小巷已经不再适应这个忙碌的时代。当人们奔波于不同的城市、出没在不同的场合、搭乘不同的交通工具的时候,手
11、机电子阅读器就可认为人们提供方便快捷的阅读平台,它的作用就像一座桥梁,在我们不方便运用书本或者网络的时候提供一个更快更方便的平台,让人们能随时的阅读自己喜欢的电子图书。 就是由于手机电子阅读器方便快捷的优点,使得人们把用手机电子阅读器阅读阅读电子书当做当科技时代的一种时尚。这也让手机电子阅读器在人们的生活中扮演的角色越来越重要。(二)国内外研究现状二十世纪七十年代,著名软件工程师Andsan.Fandamu在美国布朗大学阐述通过计算机创建和阅读文献的时候初次提出了电子书1 赵继海.电子书阅读器的发展及其对图书馆的影响J.大学图书馆学报,2023,19(4)(electronic Book,eB
12、ook)这一术语。电子书是运用现代信息技术发明的全新出版方式,将传统的书籍出版发行方式以数字的形式通过计算机网络实现。阅读器指的是一个设备,是专门用来看电子书的。随着数字化的不断兴起,电子阅读器市场的竞争变得越来越剧烈。最早出现在市场上的电子书阅读器是美国Soft Book公司的Soft Book和Nov.Media公司的RocketBook2 高峰,李玲试论电子书对图书馆的影响J山西广播电视大学学报,2023,12(1)。它们都具有美观的外型形状像一本古典的精装书,存储容量分别为8MB和32MB的内存,分别可以容纳5,000和32,000多个电子页的信息,与计算机串口相连,可以从Soft B
13、ook和Nuvo Media的网上售书连锁店,下载书籍和期刊。2023年8月,美国微软公司发布了一个可供人们阅读电子书的应用软件Microsoft Reader,这种阅读器软件的核心技术是Clear Type1 祁英红几种常用电子书刊阅读器的比较J甘肃科技纵横,2023,35(6),微软称之为“对液晶显示屏具有革命性的变革”,它是一种能使文字在显示器上的显示效果像印在纸上同样平滑清楚的字符显示技术,这种技术大大提高了屏幕的分辨率和清楚度,使读者可以获得最接近传统书的阅读效果。同时南开大学津科公司开发了一款阅读不耗电的电子书阅读器,该电子书阅读器已经面市并将投人大规模生产。它采用了华人科学家吴葆
14、刚博士发明的“多稳态液晶显示器2 周康电子书悄悄走近我们J出版参考,2023,(27)”,并在国际上初次实现了“翻页不耗电”阅读显示。除了上述几种电子书阅读器之外,Every Book,Librius,Glass Book等公司也都推出了自己的电子书阅读器和阅读软件,辽宁出版集团和美国秦通公司联手合作推出了中文电子“掌上书屋”。随着这些阅读器的出现,使得电子图书、期刊这些原本只能在PC上阅读的东西忽然变得可以移动,电子书籍与纸制书籍之间的距离缩短了一大步。同时,电子书阅读器更方便和灵活的使用功能也在不断地研究推出,例如,可以在阅读的时候加批注、书签、字体可缩放、旋转和支持声音播放等等。目前主流
15、的电子书阅读器有熊猫看书,它是网龙公司自主研发并出品的一款免费阅读软件,支持在线书籍查询,在线书籍分类阅读,书籍收藏与撤消收藏,新闻分类阅读,新闻订阅分类与撤消订阅。是基于iPhone/Windows Mobile/Symbian/Android/M8/Kjava等多手机平台上的全能免费阅读软件。全面支持TXT、ZIP、HTML、UMD、NDB等多种格式,同时还支持JPG、BMP、PNG、GIF等多种格式图像查看。自适应中文编码,自动排版,支持RSS新闻离线阅读。电子阅读现在是国家和业内非常重视的一个新兴产业,它与国家提倡的“自主创新,增强核心竞争力”、开展低碳、节能环保的社会环境相吻合,很多
16、厂商、科研院所都将目光放到了这个原本没有足够重视的领域上。同时,手机电子书阅读器作为广大网民经常使用的一个工具,在手机阅读市场逐渐扩大的时候,人们对于阅读的方便性和各种功能设立都有了更高的规定。虽然现在手机电子书阅读器功能己经比较完善,但是离人们的盼望还存在较大的距离,比如改善人们的阅读环境,使人们读起来不感到疲倦并且充满乐趣,同时现在的阅读器多媒体性能还不够完善。因此,手机电子书阅读器的应用研究还大有潜力可挖。(三)论文组织结构及安排本文共分为五部分,内容安排如下所示。第一部分绪论,重要介绍本课题研究的背景及意义,国内外研究现状,本文的组织结构及安排。第二部分相关理论及关键技术,介绍了And
17、roid特性,Android架构和Android应用的构成和工作机制等内容,研究了Android控件。第三部分手机电子书阅读器需求分析,重要介绍了阅读器各功能模块需求。第四部分手机电子书阅读器总体设计,分别从这几个角度进行描述:软件架构图,软件结构图和功能模块设计。第五部分手机电子书阅读器具体设计与实现,重要介绍了开发环境,关键模块代码实现和系统测试。第六部分结语,对全文进行了总结和展望。一、相关理论及关键技术 随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播
18、放器一味追求外观花哨,功能庞大,对用户的手机导致了很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用功能,满足一般用户(如听歌,看电影)的需求,除了能播放常见格式的语音视频文献,高级功能:还能播放RMVB格式的视频文献。此外,还能支持中文、英文等语言界面。Android是一个移动设备的软件平台,是由Linux+Java构成的开源软件,它提供涉及SDK、Key Apps、Middleware、Linux Kern
19、el四个部分在内的全套手机软件方案。它开放了基于Linux内核以上的开发工具,从而保证了内容的可移植性和多样性。Android平台为开发应用程序提供了一套很好的框架,我们可以在这个平台的基础上开发不同的应用程序,也可以开发新的组件供应用程序调用1 高焕堂. 应用框架原理与程序设计 36 技M. 台湾:MISOO 设计中心,2023.。(一)Andriod特性Dalvik虚拟:Android采用的Java虚拟机是自主开发的代号为Dalvik的虚拟机技术,在保证API方面兼容的同时Dalvik针对移动手机进行了大幅优化,占用资源更小,运营效率更高。内嵌浏览器:基于开源的浏览器网页排版引擎WebKi
20、t。优化的图形:强大的自定义二维图形库。基于OpenGL ES 1O标准的3D图形功能,在移动3D开发中有着至关重要的地位。SQLite数据库:SQLitet提供结构化的数据存储。它是一款轻型免费的且开源的数据库,它的设计目的是嵌入式的,它占用的资源非常低、需要的内存空间少、解决速度比较快和支持事务解决功能等。多媒体支持:支持各种通用的音视频和静态图像格式,如MP3、JPG、PNG等。Open Core是Android多媒体框架的核心,所有Android平台的音视频采集,播放的操作都是通过它来实现的。通过Open Core,程序员可以方便快速的开发出想要的多媒体应用程序。GSM技术:(依赖硬件
21、)Global System for Mobile Communications,全球移动通讯系统,俗称“全球通”,是第二代移动通信技术,其开发El的是让伞球各地可以共同使用一个移动电话网络标准,让用户使_一部手机就能行遍全球。蓝牙,EDGE,3G,and WiFi是一种短距离的无线连接技术,在短距离内可以实现话音和数据的无线传输。EDGE(EnhaIlced Data Rate for GSM Evolution),是增强型数据速率GSM演进技术。Camera,GPS,compass,and accelerometer:(依赖硬件)GPS(Global Positioning System)
22、全球定位系统。它是一个由覆盖全球的24颗1J星组成的卫星系统。Compass是个开放源代码的JAVA搜索引擎框架。强大的开发环境:涉及一个设备模拟器,调试工具,内存和性能检测,以及EclipseIDE的开发插件。Eclipse是个集成开发环境。1 张鹏,姜昊,许力.Eclipse插件开发M.北京:电子工业出版社,2023(二)Andriod架构Android的架构是Linux内核、C/C+函数库、Dalvik虚拟机、应用框架以及关键应用程序构成的,如图1所示,通过编译基于框架的应用程序可以减少开发负荷。应用软件原则上是在Dalvik VM上运营的。图1 Android的架构1 张鹏.Eclip
23、se插件开发学习笔记Z.北京:电子工业出版社,20231 关键应用程序Android平台内包含一些关键应用程序,如邮件收发客户端程序、短信收发程序、日历和网页浏览器等,开发者可以在其平台上开发更多有特色的应用程序。开发语言是Java。2 应用程序框架Android应用程序的开发基于框架和组件。Android自身已在其框架中提高了许多的组件供应用程序调用,当然开发者也开放新的组件,并将组件放入应用程序框架中,以供自己和其它应用程序调用。3 C/C+函数库Android应用程序框架之下是一套C/C+函数库,它们服务于Android应用程序组件,其功能通过组件间接提供应开发者。这些函数库涉及:标准C
24、函数库、媒体功能库、浏览器引擎、2D和3D图形库、基于WEB应用的的安全协议SSL、用于点阵和矢量字体渲染的FreeType以及SQLite引擎等。4 Java程序运营环境Android的Java程序运营环境包含一组Java核心函数库及Dalvik虚拟机,它们有效地优化了Java程序的运营过程。所有的Android应用都运营在它自己的进程里,该进程是一个Dalvik虚拟机的实例,Dalvik被设计成能在一台设备上高效的运营多个虚拟机实例。Dalvik虚拟机的可执行文献被封装成Dalvik可执行格式(.dex)。这是被优化过的最小内存依赖的格式。Java编译器(dx工具)将注册了的和运营时用到的
25、类编译成.dex格式。Dalvik虚拟机依赖于底层Linux内核提供的功能,如线程机制,和内存管理机制等。5 Linux内核Android系统平台是基于优化了的Linux内核,是其系统平台的核心。它提供诸如内存管理、进程管理、设备驱动等服务,同时也是手机软硬件的连接层,提供了一个屏蔽层用于屏蔽硬件和上层软件。(三)Andriod应用的构成和工作机制对于一个Android应用程序来说,是由Activity、 Intent Receiver 、Service、Content Provider四部分组成,但并不是每一个Android应用程序都必须由这四部分组成。在应用程序中使用时,需要在配置文献An
26、droidMainfest.xml中进行配置。这个配置文献是每个Android应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等。1 ActivityActivity是构成应用程序中最重要的构造块, 在Android应用程序中,几乎都是通过Activity来与用户进行交互,所以Activity重要负责的就是创建与用户进行交互的显示窗口,你可以在这些窗口里通过调用setContentView(View)方法来显示你自己的用户界面。图2 Activity状态变换途径图1 刘慧.Java ME实用详解-用Eclipse进行移动开发M.北京:电子工业出版社,2023(1)活动生命周期活
27、动(Activity)在系统中以活动栈的形式进行管理。当一个新的活动启动后,被放到了栈项,成为了运营活动,而新活动之前的活动在活动栈里总位于新活动之下,直到新的活动退出才重新回到前台。从图2 Activity状态转换途径图中可以看出,Activity有三个关键的循环:1)活动的整个生命期:从初次调用onCreate(Bundle)开始,到最终调用onDestroyO结束。在onCreate()中进行所有初始化,在onDestroyO时进行清理工作,释放资源。2)活动的可见生命期:从调用onStart()开始,到onStop()被调用为止。在这段时间内,即使活动不与用户进行交互,用户也可以在屏幕
28、上看到它。在这两个方法调用之间,可以维护活动显示给用户的资源。onStart()和onStop()方法可以多次调用,由于活动随时可以在可见和隐藏之间进行转换。3)活动的后台生命期:从调用onResume()开始,到onPause()被调用为止。在这段时间内活动处在其它所有活动之前,并与用户进行交互。一个活动可以不断在resumed状态和paused状态之间变换。(2)活动之间的切换Android使用了Intent类来实现活动之间的切换工作。Intent负责相应用中一次操作的动作、动作涉及的数据和附加数据进行描述。根据Intent的描述,负责找到相应的组件,将Intent传递给调用的组件并完毕组
29、件的调用。因此,Intent起着一种媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。在应用中,我们可以以两种形式来使用Intent:直接Intent,指定了component属性的Intent,通过指定具体的组件类,告知应用启动相应的组件。间接Intent,没有指定comonent属性的Intent,则需要包含足够的信息,这样系统才干根据这些信息,在所有的可用组件中,拟定满足此Intent的组件。2 Intent ReceiverIntent Receivert是用于对外部事件的响应,当外部事件发生时,会使用NotificationManager告知用户。当一个
30、Intent Receiver被触发时,系统会在需要的时候启动相应的应用程序。如在本系统中,当用户正在其它界面进行操作时,有好友发送消息过来,就会以告知的形式发送到当前界面的正上方来告知用户。各种应用还可以通过使用ContextbroadcastIntent()将它们的Intent Receiver广播给其它的应用程序,实现应用之间的通讯。3 ServiceService是提供连续信息的应用程序。它是运营于应用程序后台的服务,在用户进行其它活动的时候,这个服务将一直运营在基于Android平台的即时通讯系统的研究与实现后台直到用户停止该服务或服务运营结束。本系统客户端扩展功能的阅读器就是采用S
31、ervice来进行设计和开发的,使用户可以边聊天边看书。4 Content ProviderContent Provider应用程序可以将它们的数据保存到文献、SQL数据库和其它的存储设备中。当应用程序需要使用存储设备中的数据时,可以使用Content Provider来完毕。使用Content Provider可以灵活的替换底层使用的存储设备,使开发者可以专著于应用逻辑的开发,不用考虑底层存储设备的细节,从而使应用系统具有良好的数据。(四) Andriod手机平台控件研究1.Android系统控件与自定义控件的比较研究在Google Android 中给出了非常多的绚丽的控件,但是在某些时候
32、需要的实现某些功能的时候,系统的控件显得有些笨拙和难以控制,如,在本系统中,本打算使用系统自带的控件TabLayout 显示频道,但是现在的过程中,发现,该控件的每一个Tab之间有一定距离的间隔,且每一个Tab上面的图片很难控制其显示的方式和显示的效果,因此该综合美观和操作性的基础上,决定不用该控件来显示频道切换界面。而才用笔者自定义的控件TabHost ,此控件从需求上必须能填补系统控件TabLayout 的局限性,且能易于用户操作。2. Android 自定义控件的实现的研究在Google Android 移动平台中,自定义控件都大体可以提成三部分。第一,界面的实现;第二,功能的实现;第三
33、,控件的调用。(1)界面的实现。在Google Android 平台中所有的控件都是继承了View这个超类,所以在本软件自定义一个控件的时候也需要继承这个超类,但是有些情况下不需要继承这个超类而是继承它的子类,如基于Google Android 平台的手机电子书阅读器中,就继承了这个超类的子类ViewGroup,即:public class TabController extends ViewGroup。基于此我们就得到了本系统要实现的那个控件的最基本的那部分界面的实现。(2)功能的实现。要实现一个控件,让其能产生特定的效果,本系统需要自己来重写父类某些甚至是所有的构造函数,如在基于Googl
34、e Android 平台的电子书阅读器中,笔者就重写了protected void onLayout(boolean changed, int l, int t, int r, int b) protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) .protected void onFinishInflate() 等方法。在方法中实现所需的功能,这样一个自定义控件就好了。(3)控件的调用。在Android 系统中,控件的调用非常的方便,如系统控件TextView,其调用方式如下:但是当使用自定义控件的时候,其调
35、用方式就与其有很大的区别。在自定义控件中,其调用的形式是通过命名空间的形式来进行调用的。如,在基于Google Android 移动平台的手机电子书阅读器中,调用自定义控件的方式如下:二、手机电子阅读器需求分析为了开发出真正满足用户需求的软件产品,需要对开发产品做出需求分析。对软件的需求的合理把握是软件开发周期中非常重要的一个环节,本章将对手机阅读器作较为全面的需求分析。(一)概述随着手机功能不断增强,手机阅读器已成为智能手机重要软件之一。开发一款符合广大用户需求的手机阅读器有很好的市场前景和意义。本软件的目的是开发一款基于Android平台符合用户使用需求的手机电子书阅读器。本电子书阅读器支
36、持txt格式的文献。用户可以通过电子书阅读器从图书库选择自己爱慕的书籍,新建分类列表,阅读书籍,添加书签,字体设立,更换主题等。本软件具有美观简洁便于用户使用的触摸界面,这也是Android操作系统不同于传统Windows Mobile和Symbian系统上应用软件的优势之一。(二)手机阅读器功能需求作为Android平台上开发的应用软件,它具有与用户交互的界面,界面简洁美观易于操作。因此,对手机阅读器的功能规定可以从手机阅读器的界面来划分。手机阅读器的用户操作界面分为一下四部分:分类界面,书籍界面,写书界面,阅读界面。本节通过用例图分别对这三个界面进行功能需求分析。1.分类界面需求分析该手机
37、电子书阅读器默认显示的界面就是分类界面。用户可根据自己的爱慕为书籍添加类表,便于书籍导入时的分类划分。用户单击列表,即可查看该分类下所用的书籍。分类界面用例图如下图3所示。添加图3 分类界面用例图分类界面的需求分析如表1所示。表1 分类界面的需求分析参与者用户概述用户点击添加/删除/修改/查询,分类即可被添加/删除/修改/查询前置条件点击相应列表项,标号已被记下具体描述1. 用户点击所要操作的列表项2. 点击Menu菜单,出现操作选项3. 点击所要实现的操作后置条件此分类添加成功/删除成功/重命名成功/查询到此分类的书籍 2.书籍界面需求分析用户点击书架按钮便可跳到书架的主界面。书架可认为是便
38、于用户浏览、挑选书籍的列表。用户从SD卡中收录新书,将书籍信息存到数据库中,并以Gridview的布局方式展示,同时可以对书籍进行增、删、改、查。书籍界面用例图如图4所示。图4 书籍界面用例图(1)录入书籍界面录入书籍界面的需求分析如表2所示。参与者用户概述用户点击录入按钮,跳到sdcard界面前置条件sdcard已完毕扫描,sdcard界面按钮生效具体描述1. 用户点击要录入的书籍2. 选择书籍的分类3. 系统跳转到书架界面后置条件书籍已载入书架,用户可以浏览并选择书架中的书籍进行阅读表2 录入书籍界面的需求分析(2)删除、修改书籍界面删除、修改书籍界面的需求分析如表3所示。表3 录入书籍界
39、面的需求分析参与者用户概述用户点击删除/修改,分类即可被删除/修改续后表接前表前置条件点击相应列表项,标号已被记下具体描述1.用户点击所要操作的列表项2.点击Menu菜单,出现操作选项3.点击所要实现的操作后置条件此书籍添删除成功/重命名成功(3)进入阅读书籍界面进入阅读书籍界面的需求分析如表4所示。表4 进入阅读书籍界面的需求分析参与者用户概述用户点击书籍,跳转到阅读界面前置条件点击相应列表项,标号已被记下具体描述1.用户点击所要操作的列表项2.点击Menu菜单,出现操作选项,选择“打开”按钮3.跳转到阅读界面后置条件阅读界面成功跳转,用户可以阅读书籍(4)书写界面用户可以自己编写书籍,并存
40、入数据库,通过度类与书架界面对其进行相应的增、删、改、查解决。(5)阅读界面在电子书阅读界面可以调节字体大小、字体颜色、自动分页,通过图片选择对主题背景进行切换等操作,阅读时用户可以通过书籍页数、保存读取书签等方式对书籍进行定位和记录,翻页与界面切换均采用动画特效,视觉效果极佳。如图5所示为阅读界面用例图。图5 阅读界面用例图(三)手机性能需求1.系统规定Android系统2.2版本以上,对以后继续进行升级开发有可延续性。2.灵活性软件基于Android操作系统,是基于组件的开发方式。3.时间特性的规定软件的速度要在用户可接受的范围能扩展需求。 4.软件特性规定软件运营速度要在用户可接受的范围
41、之内,对流量、电量等消耗要在用户可接受范围之内。三、手机电子书阅读器总体设计(一)软件架构设计本文所采用的软件架构如图6所示,系统层是基于Linux内核2.6版本来编写的Android操作系统。应用平台层是位于Android操作系统与应用层之间的,HomeScreen是用来用用程序显示的,它是用来管理和启动应用程序的平台。最上层的是应用程序,该层包含手机上安装的各种应用程序,只要涉及:日历,地图,联系人,短信,电话,闹钟等。本文设计的手机电子说阅读器就是属于应用层。图6 软件架构图(二)软件结构设计手机电子书阅读器是基于Andriod应用程序架构,并且采用了模块化的设计模式,为未来的扩展和维护
42、提供了便利。通过对当前软件重要功能的分析,系统化分为书籍列表、书架管理、原创作品三个部分,结构图如图7所示。图7 软件结构图(三)功能模块设计根据系统总体架构图,对其功能模块进行如下设计。1. 书籍列表模块书籍列表模块可以对软件中的书籍进行增删等操作,可以从外界如SD卡中导入书籍,也可将书架中的书籍删除。2. 书架管理模块书架管理模块可以实现对软件中的书籍管理功能、阅读功能,可以对字体颜色、大小等进行设立,可以添加书签和查看书签,可以定位文档。3. 原创作品模块用户可以自己编辑书籍并保存到自己的书籍列表以便自己随时对书籍翻阅、添加、修改等相应管理操作。(四)系统数据流设计 系统数据流如图8所示
43、。图8 系统数据流图四、手机电子书阅读器的设计与实现(一)数据库设计数据结构组织和数据库文献的设计要根据不同的用途,使用规定等来决定数据整体组织形式等一些问题。数据库中的数据按一定数据模型组织、描述和存储,具有较小的反复度。较高的数据独立性和易扩展性,并且可以再被一定范围内的各种用户共享。在涉及数据库的软件开发中,需要根据有待解决的问题的性质、规模,以及所采用的前端程序创建工具等,做出合适的数据库类型选择。1.数据库及字段属性设计本项目中的数据库设计比较简朴,重要涉及三个表:books、booksmark和classify。其中表books重要是存储书籍,如表5所示;表booksmark重要存
44、储书签,如表6所示;表classify重要存储书籍分类,如表7所示。表5 books字段表表6 booksmark字段表表7 classify字段表2.数据库的连接Android中自带的SQLite数据库是十分小型的数据库,这样正适合Android这种移动平台使用。Android数据库的存储位置在data/data/databases/目录下,Android是运用ContentProvider作为内容提供商,SQLiteOpenHelper数据库帮助类来进行对数据库的创建和操作。通过Context.getContentResolver()方法直接对数据库进行操作。程序中数据库的类为RssDB
45、extend SQLiteOpenHelper(继承关系)。(1)数据库的创建Android提供了标准的数据库创建方式,继承SQLiteOpenHelper,实现onCreate和onUpgrade两个方法,有个好处就是便于数据库版本的升级,连接数据库的算法如下:public RssDB(Context context) /创建数据库super(context, DB_NAME, null, DB_VERTION);public void onCreate(SQLiteDatabase db) /类创建是调用,在这里重要创建tablepublic void onUpgrade(SQLiteDa
46、tabase db, int oldVersion, int newVersion) /版本升级时调用数据库创建不成功会抛出FileNodFindException异常。(2)数据库操作打开数据库操作:db = this.getWriteableDataBase();this表达RSSDB执行sql语句:db.execSql(sql);插入数据:db.insert()删除数据:db.delete();更新数据:db.update()查询数据:db.query();当执行完这些操作后,一定要关闭数据库连接:db.close();这些操作的具体使用方法可参照Android SDK。(二)关键代码实现1. Android SDK 版本的选取当前Google Android SDK重要有SDK1.1、SDK1.5、SDK1.6、SDK2.0、SDK2.1,其中SDK1.1由于不太稳定且在控件支持上的局限性已经被淘汰,开发人员绝大多数不使用SDK1.1。而支持Android SDK2.0、SDK2.1的机