电子阅读器论文Word格式.docx
- 文档编号:16621280
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:29
- 大小:2.62MB
电子阅读器论文Word格式.docx
《电子阅读器论文Word格式.docx》由会员分享,可在线阅读,更多相关《电子阅读器论文Word格式.docx(29页珍藏版)》请在冰豆网上搜索。
TXT文本;
电子书阅读器
Androide-readersclientdesign
Abstract
Wearenowinaworldofinformationtechnology,thecomputermoredomorehigh-end,mobilephoneandothermobiledeviceswillbecomemoreandmoreintelligent,therefore,anexcellentapplicationsoftwareplatformcandecidethemarketabilityofanoperatingsystem.Tooursmartphonetodownloadanelectronicreadercanreadthetextisthevastnumberofpeoplewoulddo.
ThisdesignisbasedontheAndroidplatform,usingtheJavalanguageanddesignabasedonAndroidSQLitedatabasee-reader.Thisdesignnotonlyrealizethefunctionofthemostbasictextreading,andalsodesignssomeoftheuseofadditionalfunctionalitytoprovideabetterexperience,includinglookingforbooks,bookmarks,autoflipandmaininterfacefunctionSettings.Thebiggestfeatureofthisdesigncantouchscreentoachievetheeffectofthepage.Throughmanytestsandmodifications,thefunctionoftheelectronicreaderismoreandmoreperfect,andintheandroidemulatortofurthertestandverify,itgenerallycanmeettheneedsoftheuser..
Keywords:
Android;
TXT;
e-book;
reader
1绪论
1.1课题提出的背景
阅读是人类获取知识的重要手段之一,千百年来作为人们生活的一部分,伴随着生产力的进步和科技的发展,它的呈现形式也在发生着变化,从古代的石器,竹简到现在的纸质媒介,电子书籍,人们的阅读习惯也随之发生着变化。
除了阅读习惯的变化,城市化,现代化的生活方式,也由环境对阅读模式潜移默化的影响。
大众逐渐喜欢电子阅读,有两个主要原因:
一、生产能力的的不断进步和电子产品的普及;
二、纸质书籍不具有海量存储、搜索和携带太不方便,而使用电子阅读器使一些公共的电子图书也提高了便利指数。
电子阅读器的出现对教科书,文本知识产权的买家和卖家的经济意义有着重大影响。
虽然数字文本倾向于降低成本,但仍存在转售限制。
数字化教学材料对传统的大学书店和图书馆的发展产生了很大的影响。
数字文本的更新非常方便,并且还可以拥有更多其他功能,如书签,自动翻页,字体颜色的更改。
电子阅读是移动互联网浪潮中重要的一波,在移动用户中的使用率极高。
据XX无线发布的移动互联网报告称,手机用户搜索量最大的即为小说,所占比高达35%。
1.2课题提出的目的
本次软件设计的目的就是让读者不用在拿着很厚很厚的一本书,只要从网上复制一本txt格式的文本,放在内存卡里边,就可以了。
有些书籍和资料是很难获得其文本格式的文本,因此这些书籍还是要翻阅实体书的。
1.3课题提出的意义
电脑改变了人们的工作方式,网络给我们带来一个新的生存空间,我们收集信息的方法已经发生了翻天覆地的变化。
由于现今电子阅读器软件越来越多,大家每天早上阅读的习惯也在向电子方向发展,无纸化电子阅读时代的悄然临近。
越来越多的人几乎每天都离不开手机,很大一部分人每天都会用手机看电子书。
电子书可以说是人们生活中不可缺少的一部分。
本次设计是基于安卓系统而设计的电子阅读软件,它可以为人们提供很好的阅读体验,可以找书、保存书签、自动翻页和主界面功能设置等功能。
2Android平台介绍
2.1Android简介
Android一款基于linux的操作系统,其最大特点就是开源。
中文名为安卓。
初期由google开发,之后由开放手机联盟开发。
该平台主要由操作系统、中间件、用户界面和应用软件组成。
目前该操作系统主要应用于手机、平板、电视等移动终端上,有着良好的发展前景。
第一款Android智能手机在2008十月公布。
在2011的第一季度安卓系统在市场的份额首次超越了塞班系统,成为全球第一。
2013年是google开发的android系统五周年,在全球使用这款安卓系统的设备的数量高达十亿台。
2.2Android基本框架
安卓的本质就是在标准的Linux系统上添加了DalvikJava虚拟机,并在Dalvik虚拟机上搭建了一个JAVA的applicationframework,所有的应用程序都是基于JAVA的applicationframework之上。
Android的主要应用在arm平台上,除了arm平台还可以经过编译控制,就可以在x86、mac等体系的设备上运行。
安卓的分层可以分为四个层,最上层是应用层,应用框架层和系统运行时层,最底层是Linux核心层。
如上图蓝颜色的是java程序,黄颜色的是代码为运行JAVA程序而实现的虚拟机,绿颜色的部分为C/C++语言编写的程序库,红颜色的代码内核(linux内核+driver)。
在ApplicationFramework之下,由C/C++的程序库组成,通过JNI完成从JAVA到C的调用。
2.3Android四大组件
Android的四大组件是支持android应用程序显示,跳转,服务和事件的重要工具,它们主要是:
活动(Activity),意图(Intent),服务(Service),内容提供器(ContentProvider)。
活动是一个用户的窗口类,属于UI。
活动是一个类,每个活动类继承基类的活动,和用于与其他控件一起使用。
意图之间活动,跳跃和数据传输服务。
Service是后台服务,为用户提供数据支持。
内容提供器是负责数据的存储和读取。
在Android软件的用户界面,通常采用XML技术设计,XML在位置和状态不能控制的使用没有布局,常用于Android的布局有5种,分别是:
AbsoluteLayout、LinearLayout、RelativeLayout、FrameLayout、TableLayout,因为布局的利用,而且布局和布局之间能够相互嵌套,让安卓软件用户界面的设计变得非常灵活,即便面对些许比较复杂的窗口设计,只须使用合适的布局,就能够使开发变的很容易。
2.4中介软件
中介软件作为android操作系统应用程序的桥梁,主要分为函数和虚拟机。
安卓使用的是sqlite3数据库来存放数据的,用户可以通过ContentProvider类来获取数据。
安卓的数据存储技术主要有:
文件存储、preference、sqlite、ContentProvider和网络存储,本软件主要是用了文件存储,SQLite和ContentProvider,文件的存储是以流的形式可以读和写文件,可以以文格的格式,也可以以二进制的形式。
在java语言中,如果要用到流,那么需要序列化写入文件的对象,在嵌入式移动设备中通常使用sqlite这种小型数据库,它可看作电脑上使用的sqlserver和oracle数据库。
在这个软件中,用户生词本中的所有数据全部储存在sqlite数据库中,通过用文件作为介质保存数据来进行数据的备份与恢复。
3系统需求分析与总体设计
3.1客户端基本控制需求
经过问卷调查和观察研究方法,大体上确定了系统的功能,通过现行业务流程与数据分析的基础上基本上确定了系统的功能,设计也基本上达到了目标。
需求分析是软件设计的基本步骤也是必不可少的步骤,它是软件设计成功的基础。
同时,对软件的设计也提出了具体要求。
在做足了充分的调查研究之后,基本可以确定软件的功能窗口如下:
(1)首次打开应用程序时的welcome动画窗口。
(2)在没有读过任何文本的情况下打开软件时进入的软件说明窗口。
(3)在主窗口下点击“MENU”按键后跳出的主菜单窗口。
(4)找书选择窗口,用作挑选找书的方式。
(5)在线下载菜单窗口,用作显示出服务器端可以下载的文本。
(6)下载结束提醒窗口,读者从服务器端完成选择的文本下载任务时的提醒窗口。
(7)已经下载过的文件提醒窗口,当用户选择要下载的文本在内存卡中已经存在时提示的窗口。
(8)内存卡文本列表窗口,列表中含有内存卡的所有信息
(9)阅读窗口,用来浏览文本的主窗口,是这个阅读器设计的最重要部分。
(10)书签功能窗口,用作选择和书签相干的所有操作。
(11)增添书签功能窗口,把目前已读到的页码保存到书签中,方便下一次继续阅读。
(12)查找书签功能窗口,经过选择书签记录回到保存该书签时的阅读位置。
(13)清空书签功能窗口,可以将过时的和无效的书签进行删除。
(14)自动翻页功能窗口,在一定时间进行自动翻页。
(15)设置窗口,根据自己的喜好对阅读主界面进行设置。
(16)背景音乐窗口,可以在阅读文本时听音乐,提升阅读的乐趣。
(17)背景图片窗口,可以选择不同的阅读窗口风格,使界面更加具有个性化。
(18)字体色彩窗口,可以选择不同的文字字体色彩,提高阅读的视觉效果。
(19)字体大小窗口,可以选择文字大小来适应实际生活中的各种情况。
基本说明如下:
这个软件是一个电子书阅读器,主体是一个主窗口,用于实现阅读的作用。
在阅读窗口时,点击菜单,软件下方会弹出一个选项条,上面含有找书、书签、自动翻页和设置四个选项。
单击找书选项会弹出两个选项,一个是在sdcard卡中找书另一个是在网络中下载;
单击书签选项会弹出三个选项,分别为增添书签、查找书签和清空书签,当然长时间按着查找书签列表中的书签也可以用来删除该书签;
单击自动翻页会弹出四个选项,分别是每过30second、40second、50second进行自动翻页和停止自动翻页;
单击设置选项会弹出四个选项,可以进行对背景音乐、背景图片、字体色彩和字体大小的设置,用户可以根据自己的需要进行必要的设置,而且你可以选择自己喜欢的音乐作为背景音乐,阅读和欣赏。
本次设计整体功能划分如下3.1图所示。
图3.1功能结构图
3.2数据库结构分析
3.2.1数据模式设计
本软件总共有3张表,分别是:
(1)阅读记录表主要包含阅读记录的标识号,文本的路径和阅读记录数据。
(2)书签表主要包含书签的标识号,书签相关的阅读记录的标识号,书签的名字和书的页码。
(3)上次阅读记录表主要包含上次阅读记录的标识号,文本的路径,上次阅读到的书的页码,上一次阅读书的字体。
本次安排的数据库表如下图3.2:
图3.2数据库结构图
3.2.2数据表格设计
Sqlite3是本次所采用的一个小型数据库,在sqlite3中新建三个表格。
即阅读记录表、书签表和上次阅读记录表,用来存储阅读时产生的阅读数据。
具体内容如下表3.1、表3.2和表3.3所示:
表3.1阅读记录表
表3.2书签表
表3.3上次阅读记录表
3.2.3表的具体设计
阅读记录表的具体设计:
在数据库中的表名为BookRecord,表中字段名称分别是rid,path,和data。
其中path以varchar类型进行存储,data用blob类型进行存储,rid为integer类型主键。
书签表的具体设计:
在数据库中的表名为BookMark,表中字段名称分别是mid,ridfk,bmname和page。
其中以mid为书签表的主键,bmnam以varchar类型进行存储,书页号page以integer类型进行存储。
上次阅读记录表的具体设计:
在数据库中的表名LastTimePage,表中字段名称分别是lid,path,page和fontsize。
其中将lid定义为上次阅读记录表的主键,path以varchar类型进行存储,page以integer类型进行存储,fontsize为integer类型。
3.2.4数据字典
数据字典是物理数据库的具体体现。
表3.4BookRecord数据字典
表3.5BookMark数据字典
表3.6LastTimePage数据字典
3.3ER图分析
E--R图又被称作:
实体-联系图(EntityRelationshipDiagram),提供了表现实体类型、属性和联系的方法,用来描述现实世界的概念模型。
E-R图的图形符号约定如下表:
表3.7E-R图图形符号
存储阅读记录、存储书签、存储上次阅读记录的E-R图如下图所示:
图3.3存储阅读记录的E-R图
图3.4存储书签的E-R图
图3.5存储上次阅读记录的E-R图
3.4系统总体设计
打开电子书阅读器后,软件会检查最后阅读过去的记录,以此为基础来判断跳转到相应的阅读窗口。
然后阅读窗口下的用户可以通过选择菜单执行找书、书签、自动翻页和设置的操作。
单击找书菜单会弹出两个选项,一个是在sdcard卡中找书另一个是在网络服务器上下载;
单击书签菜单会弹出三个选项,分别是增添书签、查找书签和清空书签,当然长时间按着查找书签列表中的书签也可以用来删除该书签;
根据各模块的不同功能,分层次结构的划分设计。
在Eclipse中建立名为Reader的project,project的具体结构图如下图3.6所示:
图3.6软件工程结构图
该功能包是通过安卓开发工具AndroidSDK自动生成的,主要有以下内容:
(1)src源代码目录:
该目录用来存储所有Android应用程序的源代码。
这个目录中有各种不一样的包,每个包中都对应着开发的源代码,该目录也是开发过程中最耗费精力的一块。
(2)gen文件夹目录:
该目录中R.java文件是由系统自动生成的。
事实上R.java定义了一个R类,它包含了用户应用程序窗口、字符串、图片等资源和与它一一对应的id(资源编号)。
这些id都是由系统自动生成的,只要有一个资源对象,系统就会为它在R类中写入对应的id,就像是一本字典。
(3)Res资源目录:
该目录中包含了drawable、layout和values三个目录。
a.drawable目录:
该文件夹下有3个文件夹分别是drawable-hdpi、drawable-ldpi和drawable-mdpi,用于存储不同分辨率的图像资源,用于不同分辨率的android开发,要获取该资源可以通过Resource.getDrawable(id)来获得。
b.layout目录:
这个文件夹下包括了一切用XML形式的界面描述文件。
主要用来描述应用程序的用户窗口的布局,也用于表述用户窗口和接口组件。
c.values目录:
这个文件夹下包括了一切用XML形式的参数描述文件,当然也可以在这增添一点另外的资源,例如字符串、颜色、形式和数组等。
主要用作在代码里经过R类来调用它们,而不能直接运用,这就能够实现代码和资源的分开管理,易于维护。
除了上面的文件夹,也有一个AndroidManifest.xml文件,这个文件是系统控制的文件,通知系统怎么处理创建的全部顶层项目,特别是Activity,所有要被运用到的组件都要在这里注册。
同时这个文件是每个android程序中必须的文件。
它位于整个项目的根目录,描述了package中暴露的组件(activities,services,等等),他们各自的实现类,各种能被处理的数据和启动位置。
除了能声明程序中的Activities,ContentProviders,Services,和IntentReceivers,还能指定permissions和instrumentation(安全控制和测试)。
在该文件中最主要的内容之一就是意图过滤器,该过滤器表达了什么时候、什么样额的情况下让活动启动。
在一个Activity(或操作系统)准备要施行一个动作,该Activity会创建一个意图对象。
这个对象包括了许多表述符,表述了准备要做的操作,比如处理数据,数据的类型,和一点另外的信息。
安卓把意图对象中的全部公开的意图过滤器比较,查询到一个最合适的Activity来执行请求的数据和动作。
3.5运行环境设计
1.数据库
因为本次设计与数据库有密切的关系,但对于数据库的要求又不是太高,因此可以使用安卓系统本身带有的Sqlite数据库。
2.AndroidSDK和Eclipse开发的插件ADT
因为本次设计是基于安卓系统的,然而安卓开发环境的搭建是基于Eclipse的,因此必须要安装AndroidSDK和Eclipse的ADT插件。
3.服务器
因为本次设计有用到服务器来提供文本下载服务,而且对于服务器的需求不高,是以在本次设计中用Tomcat来当作服务器。
Tomcat服务器的安装步骤:
(1)首先在http:
//tomcat.apache.org/下载6.0.39的Tomcat。
(2)然后在安装D:
\apache-tomcat-6.0.39\webapps目录下新建一个名为txt的文件夹。
(3)在名为txt文件夹下新建一个txt_list.txt文本文件。
(4)在txt_list.txt中写入信息如图。
(5)参照txt_list.txt里的信息,新建文本如图。
(6)打开D:
\apache-tomcat-6.0.39\binn文件夹。
(7)运行D:
\apache-tomcat-6.0.39\bin文件夹下的startup.bat。
(8)打开http:
//localhost:
8080/这个地址,如果出现如下图所示的效果则表示服务器安装成功。
4系统详细设计与实现
4.1电子阅读器客户端界面模块实现
ReaderView类主要实现自适应屏、绘制阅读器的主窗口、实现按键和屏幕的触控事件以及实现翻页功能。
(1)surfaceCreated方法:
该方法主要处理初始化成员变量的工作。
(2)onDraw方法:
该方法负责处理图片的绘制。
标题、广告条和左右页面等都是靠其处理。
其中广告条的绘制是动态的,在广告条线程中值需要更改图片数据下标志值NUM。
(3)onTouchEvent方法:
该方法负责处理屏幕触控事件,屏幕触控事件为移动是翻页特效的实现。
(4)drawPage方法:
该方法初始化左右两页被绘制的文字图片,并重新绘制。
图4.1从用户进入软件到阅读窗口时的流程图
图4.2用户在阅读窗口时的操作流程图
当读者打开阅读窗口的时候,刚开始阅读控制模块会根据读者上次退出软件时的位置来决定载入txt文本的初始位置,接着在参考手机屏幕尺寸与文字的大小来决定一页能有多少个文字。
并获得文字的长度,然后读取对应长度的字符并在这个基础之上生成与上一页和下一页内容的bitmap图片。
读者可以通过用手触摸屏幕来进行相关操作,点击屏幕的左下方是翻到前面一页,点击屏幕的右下方是翻到后面一页。
4.2设置模块实现
4.2.1设置字体大小功能的实现
本次设置模块中的调节字体大小选项和选择书签选项的设计大体上相同,都是用java代码来设置布局菜单控件的摆放方式。
在点击小号字体、中号字体或大号字体后,假如现在使用的字体和将要改用的字体一样是,就不进行操作,否则就把字体的大小与中英文间距进行重新赋值,接着重新绘制显示页面。
当字体的大小发生改变后,书签中页数的更新和HashMap中存放数据的更新。
其中涉及的方法主要有updataBookMarkAndHashMap方法和drawVirtualPage方法。
a.updataBookMarkAndHashMap方法字体大小发生改变后负责更新书签与HashMap。
首先判断数据库中是否存在当前这本书的书签,如果存在书签,则取出当前这本书的所有的书签,记录当前每条书签对应的CURRENT_LEFT_START的值;
如果不存在当前书的书签时,将当前的页数和左上点的索引值归零,并清空HashMap中的数据,重新绘制到当前读到的文本处,并将每一页的信息放入HashMap。
b.drawVirtualPage方法是字体大小变化后,书签和HashMap更新过程中,虚拟绘制主界面中每一页信息,并且为下一页的Left_Start的值赋值的方法。
4.2.2更换背景图片以及设置字体颜色功能的实现
(1)更换背景图片功能的实现
a.为了让选项更具有观赏性,对选项中的按钮设置个略缩背景图,让用户能够更直观的选着自己想要的背景图片。
b.将按钮添加监听,使点击按钮后,可以有效的进行背景图片更换的操作。
c.设置要更换的背景图片,并设置好图片的属性,通过工具类中PicLoadUtil方法来实现图片的大小自动适应屏幕。
d.重新绘制左右两侧背景图片上的文字。
(2)设置字体颜色功能的实现
a.为了使菜单栏看上去更加美观,为菜单栏中的按钮设置背景图,同时背景图与要设置字体颜色一致,为用户提供参考。
b.将按钮添加监听,使点击按钮后,可以有效的进行阅读窗口字体颜色的重新设置。
c.完成字体颜色设置,返回到当前阅读窗口继续阅读。
4.2.3音乐播放功能的实现
(1)先创建总的LinearLayout,定义其容布置方向以及位置,并为其添加背景图片。
接着创建放置标题的LinearLayout,定义其内容不知方向以及位置,并为其添加TextVie
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 阅读器 论文