目录1、设计内容及要求 (2)1.1课题提出的背景目的及意义 (2)1.2设计思路及研究方法 (2)2、概要设计 (3)2.1软件的基本功能要求 (3)2.2系统架构 (4)2.3开发环境 (4)3、设计过程 (5)3.1总体软件结构设计 (5)3.2接口设计 (7)3.3数据库设计 (7)3.4软件设计模型 (10)3.5软件维护设计 (10)4、系统功能模块的设计与实现 (10)4.1关键技术 (10)4.2欢迎界面的实现 (13)4.3主控制类的实现 (13)4.4工具类的设计 (13)4.5阅读界面的实现 (14)4.6找书功能的实现 (15)4.7书签功能的实现 (16)4.8设置字体大小功能的实现 (17)4.9更换背景图片以及设置字体颜色功能的实现 (18)5、设计结果 (18)6、设计总结 (24)参考文献 (25)1、设计内容及要求1.1 课题提出的背景目的及意义1.1.1 课题提出的背景在这个信息化的时代,IT业已经成为世界发展的主流,我们对信息技术的依赖远远超过了对我们自己的依赖,计算机和手机已经成为我们日常生活中不可缺少的获得信息的渠道。
正因为如此,各种各样的软件层出不穷,我们的生活也因为各种各样的软件变的更有滋有味。
不缺乏娱乐性,也不缺乏教育意义,让我们从这些软件中受益匪浅,使我们看到了相比以前的巨大进步。
我们的依赖性也越来越大,越来越离不开这些给我们提供日常信息的工具。
手机也已不再仅仅是简单的人与人通话的工具,而是在很大程度上成为了我们获取信息的一个更好的渠道。
开发一款好的手机软件是相当必要的。
以前我们看看杂志,小说都要去图书馆借阅,而且时间有限,很不方便;而现在是在电脑上或者手机上看杂志,看小说,文档。
以此看来,一个好的手机阅读器软件的开发是相当有必要的。
1.1.2 课题提出的目的此次设计的目的很明显,就是给予阅读者更大的便利性,阅读者不用再到处拿着一本厚厚的书籍,大大减少了读者的负担,只需要下载一本txt格式的电子书,放在sd卡里边,就是人们的生活百科。
1.2 设计思路及研究方法1.2.1 设计思路阅读器的设计流程主要是按照软件设计的一般流程:需求分析、概要设计、详细设计、测试与维护的基本流程来设计开发的。
首先,从整体分析软件功能,将功能模块化;然后对每个模块进行调试。
最后对各个模块进行系统集成。
1.2.2 研究方法本系统在整体框架研究方法采用的是问卷调查法和观察研究法。
而在总体设计上采用的是结构化方法,在局部底层开发上为便于交流采用快速原型法。
结构化系统的设计方法是在结构化程序设计思想基础上发展起来的,它的基本涵义是一个系统由层次化的程序模块构成,每一个模块只有一个入口和一个出口,每一个模块只归其上一级模块调用,并有模块连接的准则和构造模块的标准,而且用系统结构图来表达系统的结构,尽可能用最优的方式将系统内各部分组织起来。
2、概要设计2.1 软件的基本功能要求在现行业务流程和数据分析的基础上基本上确定了系统的功能,设计也基本上达到了目标。
根据软件设计的步骤,需求分析是软件设计成功的基础,也是必不可少的步骤。
同时,也对软件的设计提出了具体的要求。
在做足了充分的调查研究之后,基本可以确定软件的功能界面如下:(1)刚打开软件时的欢迎动画界面。
(2)在没有阅读记录情况下打开软件时进入的软件说明界面。
(3)在主界面下单击“菜单”按钮后弹出的欢迎主菜单界面。
(4)找书选择界面,用来选择找书的途径。
(5)网络下载列表界面,用来列出服务器端可供下载的文档。
(6)下载完成提示界面,用户从服务器端完成指定文档下载任务时显示的界面。
(7)已存在要下载文件提示界面,当用户指定要下载的文档在SD卡中已存在时显示的界面。
(8)SD卡文件列表界面,列出SD卡中存在的所有资料。
(9)阅读界面,用来阅读文档的主界面,是整个阅读器设计核心部分。
(10)书签功能界面,用来选择与书签相关的具体操作。
(11)添加书签功能界面,将当前阅读到的位置以书签名和书页号的形式存至书签表,方便下次阅读。
(12)选择书签功能界面,通过选择书签记录跳转至想要阅读的位置。
(13)删除书签功能界面,再不想要该条书签记录的情况下实现删除操作。
(14)自动翻页功能界面,实现不同时间间隔自动翻页的效果。
(15)设置界面,用来选择对阅读界面不同的设置。
(16)背景音乐界面,可在阅读的同时欣赏音乐,更大限度的提升。
(17)背景图片界面,用来设置不同的阅读界面风格,使阅读更为个性化。
(18)字体颜色界面,用来设置不同的阅读字体颜色,提升用户的视觉体验。
(19)字体大小界面,通过设置字体大小来满足实际应用中的多重需求。
基本说明如下:本系统是一个电子书阅读器,主要包含一个主界面,用来实现阅读的功能。
在阅读界面时,点击menu,手机底部会出现四个选项:找书、书签、自动翻页、设置。
点击找书选项会有两种操作可供选择,分别是在SD卡中找书和通过网络下载;点击书签选项会有三种操作可供选择,分别为添加书签、选择书签和清空书签,其中长按选择书签列表中的某条书签记录也可达到删除该条记录的目的;点击自动翻页选项会有四种操作可供选择,分别为每隔30秒、40秒、50秒自动翻页和停止自动翻页;点击设置选项会有四种操作可供选择,分别为设置背景音乐、设置背景图片、设置字体颜色和设置字体大小,为此用户可通过自己的喜好来设置不同阅读界面的风格,并且可以选择自己喜爱的音乐作为背景音乐,在阅读的同时欣赏。
2.2系统架构本设计总体逻辑结构层次划分如图1所示。
图1 功能结构图2.3 开发环境数据库由于本设计和数据库密切相关,但是对数据库的要求不高,因此可用Android系统本身自带的Sqlite数据库。
Android SDK与Eclipse开发的插件ADT由于本设计是基于Android系统的,而Android开发环境的搭建是基于Eclipse的,因此需要下载Android SDK与Eclipse开发的插件ADT。
服务器由于本设计需要用服务器来为其提供下载服务,而且对服务器的要求不高,因此在设计时用Tomcat作服务器。
3、设计过程3.1 总体软件结构设计打开电子书阅读器之后,软件会先查看上次阅读的最后记录,以此作为根据来进行判断从而跳转至相应的阅读界面。
然后用户就可在阅读界面下通过选择menu来执行想要的操作:找书、书签、自动翻页、设置。
点击找书选项会有两种操作可供选择,分别是在SD卡中找书和通过网络下载;点击书签选项会有三种操作可供选择,分别为添加书签、选择书签和清空书签,其中长按选择书签列表中的某条书签记录也可达到删除该条记录的目的;点击自动翻页选项会有四种操作可供选择,分别为每隔30秒、40秒、50秒自动翻页和停止自动翻页;点击设置选项会有四种操作可供选择,分别为设置背景音乐、设置背景图片、设置字体颜色和设置字体大小,为此用户可通过自己的喜好来设置不同阅读界面的风格,并且可以选择自己喜爱的音乐作为背景音乐,在阅读的同时欣赏。
根据各个模块的不同功能,对本设计进行了层次结构的划分。
在Eclipse下创建了一个名为Test的工程,工程的结构图如图2:图2 软件工程结构图该功能包是通过Android SDK自动生成的,主要包括以下内容:(1)src源代码目录:该目录存放Android应用程序所有的源代码。
该目录项有不同的包,包中对应开发的源代码,开发过程中的主要精力都集中在开发src目录下内容。
(2)gen文件夹目录:该目录存放了Eclipse的ADT插件自动生成的R.java 文件。
实际上R.java定义了一个R类,它包含了应用中用户界面、图像、字符串等各种资源与之相对应的资源编号(id)。
这些资源编号都是系统自动生成的,即有一资源对象,系统就为此在R类中生成相应资源编号,好比一本字典。
(3)Res资源目录:该目录定义了drawable、layout及values 3个目录。
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 外部接口在用户界面部分,根据需求分析结果,用户需要一个友善界面。
在界面设计上,应做到简单明了,易于操作,并且要注意到界面的布局,应突出的显示重要以及出错信息。
在界面设计部分,本系统按照Microsoft公司的用户界面设计标准,为用户提供友好、方便、直观、简洁的操作环境。
本系统采用了窗口继承的方式,使窗口有统一的界面风格。
同时,对错误信息、提示信息进行标准化,尽量做到清晰明了。
3.2.2 内部接口系统在功能模块的设计上,以“高内聚、低耦合”为设计目标。
内部接口方面,各模块之间采用函数调用、参数传递、返回值的方式进行信息传递。
具体参数的结构将在下面数据结构设计的内容中说明。
接口传递的信息将是以数据结构封装的数据、参数传递或返回值的形式在各模块间传递。
3.3 数据库设计3.3.1 数据模式设计一共设计了3张表,是:(1)阅读记录表(阅读记录的ID,书的路径,阅读记录数据)(2)书签表(书签的ID,书签对应的阅读记录的ID,书签名,书页)(3)上次阅读记录表(上次阅读记录的ID,书的路径,上次阅读到的书页,上次阅读时的字体)数据库表的设计如下:图3 数据库结构图3.3.2 数据表格设计本数据库用的是一个小型数据库sqlite3,在数据库中创建了三个表格。