毕业论文基于Android的手机电子书阅读器的设计与实现.docx
《毕业论文基于Android的手机电子书阅读器的设计与实现.docx》由会员分享,可在线阅读,更多相关《毕业论文基于Android的手机电子书阅读器的设计与实现.docx(60页珍藏版)》请在冰豆网上搜索。
毕业论文基于Android的手机电子书阅读器的设计与实现
基于Android的手机电子书阅读器的设计与实现
摘要
随着社会不断进步与发展,生活节奏不断加快,信息已经成为我们生活中不可缺少的一部分,使用平常的书本阅读已经满足不了我们对信息大量且繁杂的需求。
而手机已经成为我们生活中的主要构成部分,使用手机作为承载书本内容的新平台已是大势所趋,大众需要一款可以在手机上打开电子书并且有良好阅读体验的软件。
本软件主要使用Java作为开发语言,使用SQLlite3作为数据库管理系统,开发环境是Eclipse。
软件的主要功能包括:
查询本地txt格式电子书,保存电子书到书架并进行管理,阅读本地电子书,添加书签等。
关键词:
手机电子书,Java,SQLlite3
BasedonthedesignandrealizationoftheAndroidmobileebookreader
Abstract
Alongwiththesocialprogressanddevelopment,thepaceoflife,informationhasalreadybecomeanindispensablepartofourlife,usingordinarybooksreadingalreadycannotsatisfyourdemandforlargeandcomplexinformation.Andthemobilephonehasbecomeamainpartofourlife,theuseofmobilephoneasanewplatformofcarryingthebookcontentisthetrendofTheTimes.Publicneedsamobilesoftwaretoopene-bookandhaveagoodreadingexperience.
ThefrontofthesoftwareusingJavaasadevelopmentlanguage,theuseofSQLlite3asdatabasemanagementsystem,thedevelopmentenvironmentisEclipse.Themainfunctionsofthesoftwareinclude:
CheckthelocalTXTformatofe-books,savethee-booktothebookcaseandmanaged,readthelocalebook,addbookmarks,etc.
Keywords:
ebook,,Java,SQLlite3
第一章前言
1.1课题背景
在这个信息化的时代,IT业已经成为世界发展的主流,我们对信息技术的依赖远远超过了对我们自己的依赖,计算机和手机已经成为我们日常生活中不可缺少的获得信息的渠道。
正因为如此,各种各样的软件层出不穷,我们的生活也因为各种各样的软件变的更有滋有味。
不缺乏娱乐性,也不缺乏教育意义,让我们从这些软件中受益匪浅,使我们看到了相比以前的巨大进步。
同时,随着科技的发展,计算机越来越精致,手机也越来越智能化,所以我们的依赖性也越来越大,越来越离不开这些给我们提供日常信息的工具。
手机也已不再仅仅是简单的人与人通话的工具,而是在很大程度上成为了我们获取信息的一个更好的渠道。
一个好的软件,能够标志一个手机品牌的地位。
所以,开发一款好的手机软件是相当必要的。
以前我们看看杂志,小说都要去图书馆借阅,而且时间有限,很不方便;而现在是在电脑上或者手机上看杂志,看小说,文档。
以此看来,一个好的手机阅读器软件的开发是相当有必要的。
并且选择Android作为开发平台,也是考虑到了近年来Android平台的大热以及应用商店的多元化,相对于IOS的不开源以及使用设备的单一,基于Android设计一款电子书阅读器软件是非常好的市场条件的。
1.2目的和意义
此次设计的目的很明显,就是给予阅读者更大的便利性和简洁性,阅读者不用再到处拿着一本厚厚的书籍,大大减少了读者的负担,只需要下载一本txt格式的电子书,放在SD卡中,就是人们的生活百科和资料大全。
当然,秉持着支持正版书籍的原则,一些专利性的书还是要购买阅读纸质书籍的。
1.3开发工具及技术
1.3.1开发工具
此次设计主要采用Eclipse作为开发工具,设计过程中界面UI主要基于Android的XML文件完成。
Eclipse简介:
Eclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentKit,JDK)。
Eclipse也是非常著名的跨平台的自由集成开发环境(IDE)。
最初主要用来Java语言开发,通过安装不同的插件Eclipse可以支持不同的计算机语言,比如C++和Python等开发工具。
Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。
许多软件开发商以Eclipse为框架开发自己的IDE。
本设计使用了在eclipse上的Android辅助开发插件ADT23.0.3.并使用了谷歌提供的SDK开发包中的Android4.4.4作为编译环境。
1.3.2Android平台及java语言
下图表展示了Android操作系统的主要组成部分和逻辑结构:
本系统是以Java为编程语言,Java是一种面向对象的语言,从接口到功能,灵活多变,语言等级较高,易于开发者掌握。
软件主要运用的是利用发送Intent的办法在Activity之间的相互跳转,来实现不同操作界面之间的无缝切换。
运行中如果某个Activity的画面被另一个Activity所取代,则这个Activity停止。
本系统通过把View类与XML(可扩展标记语言)将用户界面放置在视图窗口,然后注册事件来完成相应的功能。
例如,当视图要处理用户的点击事件的时候,Android就要向Framework注册一个OnClickListener等。
本系统中触发事件都是通过这种来实现的。
Java语言是一种简单易用,面向对象的,可移植的语言。
它具有很多的优越性和特点,比如:
平台无关性,安全性,面向对象,健壮性等等。
本系统就是在Android平台上使用Java语言完成的。
1.3.3Android四大组件
Activity是Android程序与用户进行交互的窗口,提供了和用户交互的可视化界面,是Android构造块中最基本的一块,它需要为保持各界面的状态,做很多持久化的事情,妥善管理生命周期以及一些跳转逻辑。
Service是能够在后台执行长时间运行操作,并且不提供用户界面的应用程序组件,服务于Activity,封装有完整的逻辑功能实现,接受上层指令,接受相关的事务,定义好intent提供同步和异步的接口
ContentProvider是Android提供的第三方应用数据的访问方案,也是不同应用程序之间互相共享数据的唯一方式,可以像数据库一样进行选择排序,屏蔽内部数据的存储细节,向外提供统一的接口模型,大大简化上层应用,对数据的整合提供了更方便的途径。
BroadcastReceiver,接受一种或多种intent作为触发事件,类似与一个针对于Android系统的全局监听器,可以在不同进程(程序)间进行消息互通,也可以方便几大组件间的信息和数据交互.从设计模式上来讲也是IOC的一种应用方式.
其实Android四大组件本质上就是为了实现在移动或者嵌入式设备上的mvc架构,他们之间是相互依存又相互补充的关系。
1.3.4sqlite3数据库
Sqlite3是谷歌为自家Android平台上提供的一个轻型的关系型数据库,除了支持varchar(n)(可变字符),char(n)(定长字符)等数据特性外,还支持空(NULL),整型(INTEGER),文本类型(TEXT)等数据类型。
它的特点入下:
轻量级(只需带上很小的动态库,就能享受它的全部功能)、独立性(使用不需要安装,在部署的时候能省去很多麻烦)、隔离性(数据库中所有的信息都包含在一个文件内,方便管理和维护)和安全性(可以同时读取数据,但同时只有一个能够写入数据)等特性。
1.4软硬件需求
硬件需求:
CPU:
Pentium以上计算机
内存:
512M以上
软件需求:
操作系统版本:
WindowsXP/vista/Win7
开发工具:
EclipseLunaSR2(4.4.2)、ADT23.0.3
开发语言:
Java
第二章需求分析
2.1可行性论证
开发任何一个系统,都会受到时间和资源上的限制。
因此,在每一个项目开发之前,都要进行可行性分析,可以减少项目的开发风险,避免人力、物力和财力的浪费。
下面就技术、经济、操作和法律四个方面来论证。
2.1.1技术的可行性
本系统开发工具是Eclipse和AndroidSDK提供的一系列debug工具,开发语言是Java,Java是一种面向对象编程语言,简单易学而且灵活方便。
在杰普基地时就学习了java课程,之后也系统的学习了Android开发的相关知识,对电子书的打开和操作是本系统设计的核心。
之前在杰普基地也练习过几个相关项目的制作。
因此,完成系统实现在技术上完全具有可行性。
2.1.2经济的可行性
由于选择的开发工具几乎全部为免费的开源软件,并且Android是众所周知的开源开发平台,谷歌也为Android提供了各种便利的免费开发工具,所以从经济上来讲是可行的。
2.1.3操作可行性
本系统操作简单,只需要简单的点击一些按钮就可以做到搜索电子书,添加书签等必要操作,在某些页面,信息可以自动生成,无需输入,时间的输入也是用的日历控件,操作简便,对操作人员的要求很低,只需对Android操作熟练。
而且本系统可视性非常好,所以在技术上不会有很大难度。
2.1.4法律的可行性
基于Android的电子书阅读器是自行开发的系统,是很有实际意义的系统,开发环境软件和使用的数据库都是开源代码,都是谷歌推荐开发者使用的官方开发手段,不存在侵权等问题,即法律上是可行的。
综上所述,设计并实现基于Android的电子书阅读器是必要并且可行的。
2.2软件的基本功能要求
经过观察日常生活中人们阅读书籍的习惯,并在现行业务流程和数据分析的基础上基本上确定了系统的功能,设计也基本上达到了目标。
根据软件设计的步骤,需求分析是软件设计成功的基础,也是必不可少的步骤。
同时,也对软件的设计提出了具体的要求。
在做足了充分的调查研究之后,基本可以确定软件的功能界面如下:
(1)刚打开软件时的酷炫欢迎动画界面。
(2)在没有阅读记录情况下点击右上角菜单栏弹出本地文件选项。
(3)帮助用户扫描SD卡中所有的txt电子书并且显示出来。
(4)可在本地文件系统中浏览相应电子书并且添加到书架页面上显示。
(5)点击书架上的电子书会出现电子书书名,阅读进度,电子书绝对路径等
(6)用户可以自行选择是否删除书架上的电子书。
(7)阅读界面,用来阅读文档的主界面,是整个阅读器设计核心部分。
(8)书签功能界面,用来创建新书签和点击书签并跳转到书签所在位置,也可以选择删除书签。
(9)快速导航界面,用户可以根据需要选择不同的背景图片,亮度,以及开关夜间模式,使阅读变得更为个性化。
(10)字体设置功能,用户可以根据需要选择不同的字体大小。
(11)默认隐藏所有的设置界面,在用户需要的时候点击屏幕中心,会通过上下分屏的方式显示各种设置按键。
(12)分享功能,若用户满意本软件并愿意推广可以通过微信微博等方式分享给他人。
基本说明如下:
本系统是一个电子书阅读器,主要包含一个阅读主界面和一个书架界面,分别用来实现阅读和管理电子书的功能。
在书架界面时,点击右上角的菜单按钮,手机右上角会出现五个选项:
本地文件、快速扫描、分享软件、关于软件、退出软件。
点击本地文件会进入文件系统浏览手机SD中的所有文件并且可以添加txt格式的电子书到书架;点击快速扫描会检测本地所有txt文件;点击分享软件则会弹出微信微博等社交软件,并可以点选分享到对应的社交圈中,点击关于软件则会显示软件的一些基本信息和作者概述等。
如果用户有添加过本地文件到书架上,则可以点击相应电子书并显示电子书的基本信息对话框,再次点击阅读则可以进入阅读界面阅读电子书。
在阅读电子书界面时,用户可以向左或者向右滑动进行翻页操作,或者电子屏幕中心弹出设置界面,点击右上角的菜单选项可以弹出快速导航界面,用户可以根据需要修改不同的背景图片,开启夜间模式或者手动调整屏幕亮度。
屏幕下方的四个图标按键则分别是字体变大,字体变小,书签管理,关键字搜索。
前两个按键是对当前电子书显示字体进行单次调节,点击书签按钮则会进入书签管理界面,可以显示当前电子书中的所有书签并且可以已当前页面第一行为标签新建书签,或者查询所有电子书的书签。
点击对应书签则会自动跳转到该书签所在的位置进行阅读。
2.3功能模块架构
图2.3功能模块架构图
2.4设计的基本思想
阅读器的设计思想主要是按照软件设计的一般流程:
需求分析、概要设计、详细设计、测试与维护的基本流程来设计开发的。
首先,从整体分析软件功能,将功能模块化;然后对每个模块进行调试。
最后对各个模块进行系统集成。
通过几个月的观察,发现几乎所有的人都有智能手机,而且几乎有一半以上的人用手机来阅读资料,并且大部分都是Android手机。
所以萌发了打造一款属于自己的电子书阅读软件,还可以附加上浓浓的个人风格,在老版的阅读软件基础之上进行改进。
2.5性能需求
2.5.1系统的流畅性
在用户使用软件的过程中,严格限制软件出现Crash和ANR等问题,优化读取电子书的转码方式。
缩短用户的等待时间,不在Activity中作大量逻辑运算导致拖慢系统流畅性和影响用户体验。
2.5.2数据的完整性
1.各种记录信息的完整性,信息记录内容(如书签内容)不能为空。
2.各数据在传输过程中的一致性。
3.数据处理过程中的完整性以及可移植性。
2.6界面需求
界面设计目前已经成为评价软件质量的一条重要指标,一个好的用户界面可以增加用户使用软件的信心和兴趣,提升用户体验,为用户提供多元化的界面风格选择是必须要完成的工作。
本软件使用Android自身提供的xml文件和重写View类来共同打造多彩的用户UI界面,力图做到让用户在阅读电子书的同时还可以自定义阅读风格。
软件的各种设置界面都使用了简单明了的中文选项,引导用户操作,还提供给了用户多种多样的图片按钮,做到图形化直白描述,保证用户在很短的时间内就可以完整掌握软件的使用方法。
第三章软件分析与设计
3.1软件总体结构设计
打开电子书阅读器之后,软件先会弹出欢迎界面,再读取之前阅读电子书的书架情况。
然后用户就可在书架界面下通过选择电子书来进行阅读。
点击电子书选项会有三种操作可供选择,分别是阅读,收藏和分享;点击阅读选项会进入该电子书的阅读主界面,点击收藏会收藏该电子书,点击分享则会弹出微信微博等选项分享到社交圈中。
进入阅读主界面的话则会根据用户上次阅读的位置自动跳转,用户点击屏幕中心就会弹出多种选项界面:
包括修改字体大小,进入书签管理界面,和搜索关键字,以及快速导航。
根据各个模块的不同功能,对本设计进行了层次结构的划分。
在Eclipse下创建了一个名为XZReader的工程,工程的结构图如图3.1:
图3.1软件工程结构图
该功能包是通过AndroidSDK自动生成的,主要包括以下内容:
(1)src源代码目录:
该目录存放Android应用程序所有的源代码。
该目录项有不同的包,包中对应开发的源代码,开发过程中的主要精力都集中在开发src目录下内容。
(2)gen文件夹目录:
该目录存放了Eclipse的ADT插件自动生成的R.java文件。
实际上R.java定义了一个R类,它包含了应用中用户界面、图像、字符串等各种资源与之相对应的资源编号(id)。
这些资源编号都是系统自动生成的,即有一资源对象,系统就为此在R类中生成相应资源编号,好比一本字典。
(3)Res资源目录:
该目录定义了drawable、layout及values3个目录。
a.drawable目录:
该目录下有drawable-hdpi,drawable-ldpi,drawable-mdpi3个文件夹,分别用来存放不同分辨率的图片资源,用于不同分辨率的手机的开发,可以通过Resource.getDrawable(id)获得该资源。
b.layout目录:
该目录下包含了所有使用XML格式的界面描述文件。
主要用于表述应用程序的用户界面布局,也用于描述用户界面和接口组件。
c.values目录:
该目录包含了使用XML格式的参数描述文件,也可以在此添加一些额外的资源,如字符串、颜色、样式和数组等。
主要用于在代码中通过R类来调用它们,而不直接使用,这样可将代码和资源分开管理,便于维护。
除了以上文件夹外,还用一个AndroidManifest.xml文件,该文件是系统的控制文件,告诉系统如何处理创建的所有顶层项目,尤其是Activity,凡是需要用到的组件都要在此注册。
同时该文件也是所有Android应用程序都需要的文件,其描述了程序包的全局变量,包括公开的应用程序组件和每个组件的实现类,什么样的数据可以操作,在什么地方可以运行等。
在这个文件中最重要的一个内容就是Intent过滤器,这些过滤器描述了何时、何种情况下让Activity启动。
当一个Activity(或操作系统)想要执行一个动作,它将创建一个Intent对象。
该对象包含了很多描述符,描述了想做的操作,像处理数据,数据的类型,以及一些其他的信息。
Android将Intent对象中的所有公开的Intent过滤器比较,找到一个最能恰当处理请求的数据和动作的Activity。
3.2接口设计
3.2.1外部接口
在用户界面部分,根据需求分析结果,用户需要一个合理友善的界面。
在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。
在界面设计部分,本系统按照谷歌公司的用户界面设计标准,为用户提供友好、方便、直观、简洁的操作环境。
本系统采用了窗口继承的方式,使窗口有统一的界面风格。
同时,对错误信息、提示信息进行标准化,尽量做到清晰明了。
3.2.2内部接口
系统在功能模块的设计上,以“高内聚、低耦合”为设计目标。
内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。
具体参数的结构将在下面数据结构设计的内容中说明。
接口传递的信息将是以数据结构封装的数据、参数传递或返回值的形式在各模块间传递。
3.3数据库设计
谷歌为Android系统提供了一种轻型的关系型数据库SQLlite3,开发人员在SQLlite3数据库管理系统的支持下,进行信息的收集、整理、存储、检索、更新、加工、统计和传播等操作就会变得非常容易,数据库设计已经成为Android软件设计中必不可少的一部分,并且数据库设计的好坏会直接影响到整个软件的性能和效率。
数据库的设计一般经过规划。
需求分析、概念设计、逻辑设计、物理设计5个步骤。
3.3.1数据库的概念结构设计
概念设计是指在数据分析的基础上自底向上的建立整个系统的数据库概念结构,从用户的角度进行视图设计,然后将视图集成,最后对集成的结构分析优化得到最后结果。
数据库的概念结构设计采用实体—联系(E-R)模型设计方法。
E-R模型法的组成元素有:
实体、属性、联系,E-R模型用E-R图表示,是提示用户工作环境中所涉及的事物,属性则是对实体特性的描述。
概念设计的目标是产生反映企业组织信息要求的数据库概念结构,即概念模式。
概念模式是独立于数据库逻辑结构,独立于支持数据库的DBMS,不依赖于计算机系统的,
根据以上对数据库的需求分析,并结合系统概念模型的特点及建立方法,建立E-R模型图。
实体属性实体间关系
(1)电子书信息实体E-R图如图3.1所示:
图3.1电子书信息实体E-R图
(2)电子书种类实体E-R图如图3.2所示:
图3.2电子书种类体E-R图
(3)收藏电子书实体E-R图如图3.3所示:
图3.3收藏电子书实体E-R图
3.1.2数据库的逻辑结构设计
我们知道,数据库概念模型独立于任何特定的数据库管理系统,因此,需要根据具体使用的数据库管理系统的特点进行转换。
即转化为按计算机观点处理的逻辑关系模型,E-R模型向关系数据库模型转换应遵循下列原则:
*每一个实体要转换成一个关系
*所有的主键必须定义非空(NOTNULL)
*对于二元联系应按照一对多、弱对实、一对一、多对多等联系来定义外键。
根据E-R模型,问卷调查管理系统建立了以下逻辑数据结构,下面是各数据表的详细说明。
(1)电子书信息表主要是记录了电子书本身的基本信息,表结构如表3.1所示。
表3.1电子书信息表(book_info)
列名
数据类型
允许空
是否外键
是否主键
依赖
book_id
integer
否
否
是
无
book_name
varchar
否
否
否
无
book_author
varchar
否
否
否
无
book_add_time
varchar
否
否
否
无
book_open_time
varchar
否
否
否
无
book_is_fav
varchar
否
否
否
无
book_category_id
integer
否
是
否
表3.2PK
book_category_name
varchar
否
否
否
无
book_size
varchar
否
否
否
无
book_process
varchar
否
否
否
无
book_begin_position
integer
否
否
否
无
(2)电子书种类表主要记录了电子书种类的基本信息,表结构如表3.2所示。
表3.2电子书种类表(book_category)
列名
数据类型
允许空
是否外键
是否主键
依赖
book_category_id
integer
否
否
是
无
book_category_name
varchar
否
否
否
无
book_id
varchar
否
否
否
无
book_name
varchar
否
否
否
无
(3)收藏信息表主要是记录了收藏的电子书的情况,表结构如图3.3所示。
表3.3收藏信息表(book_fav)
列名
数据类型
允许空
是否外键
是否主键
依赖
book_category_id
integer
否
否
是
无
book_name
varchar
否
否
否
无
book_size
varchar
否
否
否
无
book_add_time
varchar
否
否
否
无