论文总字数:12860字
毕业设计软硬件使用说明文档
题 目 基于Andorid的电子书阅读器
设计与实现
计算机科学与工程 院(系)计算机科学与技术 专业
学 号 09012414
学生姓名 李文博
指导教师 杨鹏
起止日期 2016.1.26 至 2016.5.24
设计地点 东南大学计算机科学与工程学院
第一章 开发环境配置
1.1 JDK安装配置
JDK,全称Java Development Kit,是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)。
JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.htm
本文软件开发环境为JDK 1.8。
安装好之后,按如下要求配置系统环境变量:
- 新建JAVA_HOME变量,值为jdk根目录的变量;
- 修改Path变量,在值末尾处添加%JAVA_HOME%\bin;
- 新建ClassPath变量,值为.;%JAVA_HOME%\lib\tools.jar。
1.2 Eclipse及Android sdk、ndk安装配置
Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
Eclipse下载地址:http://www.eclipse.org/downloads/
本文软件开发使用的Eclipse版本为4.5.2。
为了运行Android虚拟机,在安装好Eclipse和JDK之后,还要进行Android sdk、ndk的配置。配置流程如下:
- 配置SDK:(software development kit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。
Android SDK管理工具下载地址:http://developer.android.com/sdk/index.htm
下载完成后,根据开发所需Android版本下载Android SDK。
图1-1 Android SDK 配置图
- 配置ADT:ADT(Android Development Tools)在Eclipse编译IDE环境中,需安装ADT(Android Developer Tools)插件,这是Android在Eclipse上的开发工具。配置过程如下:
启动Eclipse,点击 Help菜单 -gt; Install New Software… ,点击 Add… ,输入地址:http://dl-ssl.google.com/android/eclipse/。
图1-2 Eclipse ADT 配置图
- 配置NDK:为了允许用户使用类似C / C 之类的原生代码语言执行部分程序,需要安装NDK(Native Development Kit)。
NDK下载地址:http://developer.android.com/tools/sdk/ndk/index.htm
下载完成后,打开Eclipse,点Window-gt;Preferences-gt;Android-gt;NDK,设置NDK路径。
图1-3 Eclipse NDK 配置图
- 配置编译环境:JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是Camp;C )。编译环境配置如下:
右击项目工程,选择Properties,在Builder选项中,新建一个变量,取名为NDK_Builder。
图1-4 Eclipse NDK_Builder 配置图1
选择Build Options选项,按图4-5配置,点击Specify Resources,将编译空间设置为需要编译的工程下JNI文件。
图1-5 Eclipse NDK_Builder 配置图2
第二章 系统设计
2.1 系统流程图
开始
主界面
浏览文件夹
更改系统设置
书架
背光灯亮度
更改界面语言
白天夜间模式
选择书籍
阅读设置
管理书签
管理书籍
分类排序
退出
结束
选择书籍
图2-1系统流程图
当用户进入软件系统后,系统首先加载主界面。主界面上显示有文件浏览系统的入口。用户可以根据主界面提供的文件管理系统进入用户自己的文件夹,选择书籍文件打开阅读。如果是第二次加载主界面,书架功能会根据最近阅读历史记录,显示最近阅读过的书籍封面。用户可以直接通过书架选择书籍进入阅读。
在选择书籍后,用户进入阅读模式。阅读模式下,系统根据默认设置,设置默认字体格式、字号大小。用户可以根据自己的需求改变字体格式、字号大小。当用户改变阅读设置后,系统会根据更改后的设置重新绘制阅读界面,用户可以继续阅读。在阅读时,用户可以根据点击屏幕的左半区域与右半区域进行翻页。用户也可以通过滑动操作进行翻页。
当用户想要保存当前的阅读进度,等待下次阅读时,可以选择添加书签。系统将会根据当前阅读进度保存阅读位置。下一次进入阅读时,用户可以通过书签直接跳转到想要继续阅读的位置。用户也可以删除不需要的书签。
书籍管理系统为用户提供了管理书籍文件的功能。在书籍管理界面,用户可以修改书名、修改作者信息,以及删除书籍。当用户为多本书籍添加完作者信息后,用户可以根据作者名浏览书库文件,可以看到同一作者有哪些不同的作品。
在系统设置模块,用户可以根据偏好修改界面显示参数。第一次进入系统时,获取当前屏幕亮度作为默认亮度,默认语言为中文。下一次进入系统时,系统将会沿用上一次用户修改后的设置。为了提供更好的阅读体验,系统设置中提供了昼夜模式切换功能。夜间模式下,页面灯光显得更加柔和。
在完成阅读后,用户可以选择退出,或者从Android系统提供的进程管理接口中关闭本软件。系统将会记录下当前设置,并且下一次进入软件时,将会以上一次的设置为默认设置运行。
2.2 系统框架
本系统采用C/S模式框架进行设计。系统主要分为以下几大模块:文件管理模块、格式解析模块、阅读信息管理模块、显示模块、通讯模块等。
- 文件管理模块:主要用来管理系统中的文件。
- 格式解析模块:主要用来解析电子书数据,根据不同的格式类型将电子书封装成相应的数据对象。
- 阅读信息管理模块:主要负责管理用户的阅读信息,如阅读历史、翻页、书签管理等。
- 显示模块:主要是实现客户端和用户交流的接口,实现可视化用户界面等。
电子书系统模块设计图如图3-1所示。
控制模块
应用模块
图2-2 电子书系统模块设计图
2.3 系统功能模块
根据用户日常阅读习惯,表2-1对用户阅读小说的场景进行模拟,在场景中,标识出3种参与者,即用户、客户端、服务器。
表2-1 阅读小说场景模拟表
场景名称 | 阅读小说 |
参与者 | User:用户,Client:客户端,Server:服务器 |
事件流 |
|
C/S模式下,系统模块主要由客户端模块和服务器端模块两个模块构成。而在Android平台中,操作系统为软件提供了丰富的应用接口,因此传统意义上的服务器模块可视为控制模块,而传统意义上的客户端模块可视为应用模块。
图2-3 电子书系统用例图
控制模块并不直接面对用户,控制模块的主要功能是接收与解析前台发送过来的命令,调用相应的函数完成数据、内容、设置等更改,然后把结果返回给前端。而应用模块则直接面对用户,主要负责将后端返回的结果以图形化的形式显示在屏幕上,或者接收用户对手机的各种操作,并且将操作解读成各类命令,交给后端进行处理。
2.2.1 控制模块
控制模块主要实现服务器端各功能模块。即控制模块主要负责调用Android系统提供的各类接口,完成对不同格式的书籍的解析封装与对软件功能的控制。图2-4描述了控制模块所包含的主要功能模块。
图2-4 控制模块体系图
- 文件管理模块:文件管理模块实现的主要功能是对设备内文件的管理。通过调用系统提供的文件管理应用接口,能够从SDCard或者本地文件夹中读取符合一定规则的书籍文件。
系统访问文件时,首先获取路径。FileInfo根据设置的path值调用isDirectory(),判断底层路径名所对应的文件是否是文件夹。如果返回true,则判断当前路径所标识的文件是文件夹,调用returnArcName( )返回当前文件夹名,等待进一步获取路径名。如果不是,表明当前已经是文件,则调用系统提供的java.io.inputStream( ),获取文件内容,并进行处理。
setPath( path )
isDirectory()
returnArcName( )
loadFile( )
inputStream( )
returnBytes( )
return ( )
图2-5 文件访问时序图
- 书籍解析模块:书籍解析模块实现的主要功能是解析不同格式的书籍文件,包括txt, doc, epub, fb2, htm等主流格式电子书文件。解析完成后,这类文件将会以字节流的格式统一保存发送给前端,前端以Bitmap格式显示在屏幕上。
系统解析不同格式的书籍文件时,首先调用setname(name),将书籍文件名传递给BookInfo类。然后,调用typeof()。BookInfo将截取文件名后缀,判断书籍文件类型。当系统请求解析书籍时,FileInfo将从文件系统中获得的二进制流数据,根据type进行重新处理,去掉无用的信息,转换成utf-8编码格式的文件。
setname(name )
typeof()
return ( )
loadContent( )
handleByType( )
return ( )
return ( )
图2-6 书籍解析时序图
- 命令解析模块:命令解析模块主要负责解析来自前端的各类操作命令,然后将根据不同的操作命令做出相应的反应。
doOperation( )
giveOrder( )
return ( )
onDraw ( )
图2-7命令解析时序图
- 数据库模块:数据库模块主要负责与数据库的链接,完成与SQLite数据库的数据交互,对数据进行增删查改。数据库保存书籍信息、书籍阅读历史、书签等信息,减少软件响应时间。数据库具体设计见本文2.3节数据库设计。
2.2.2 应用模块
应用模块主要包括客户端各功能模块。即应用模块主要负责管理用户界面,能够对用户的各类操作进行响应,并且将用户操作需求反映给控制模块,并将控制模块返回的结果显示给用户。
图2-8 应用模块体系图
- 显示模块:显示模块主要负责将书籍内容显示在用户界面上。通过控制端的处理后,书籍信息将会以图片的形式发送给应用端,应用端能够调用Android系统提供的用户界面绘制借口将书籍显示给用户。
- 阅读管理模块:阅读管理模块主要负责接收用户对阅读信息的操作,包括翻页、记录书签等,并且把这些命令发送给控制模块进行处理。
根据用户需求,阅读模块主要有以下几个功能:文本翻页、书签设置。其中,书签设置模块主要有书签的增加、查看、删除与根据书签信息进行跳转等功能。
图2-9 阅读功能用例图
阅读模块需要支持两种翻页方法。一种是点击屏幕左右两侧进行翻页,另一种是滑动翻页。当用户触击屏幕时,onTouch捕捉到点击屏幕的坐标(x,y)。点击翻页只要判断x的范围即可进行翻页。滑动翻页需要获许手指点击时的坐标(x1,y1)和手指离开屏幕时的坐标(x2,y2),根据软件捕捉到的屏幕接触轨迹来判断向前翻页还是向后翻页。
onTouch( )
givePointPos( )
onDraw( )
clickorslide( )
changepage ( )
图2-10 翻页时序图
- 书籍管理模块:书籍管理模块主要负责接收用户对书籍文件的操作,包括图书的增加、删除,修改作者、书名、阅读状态等。书籍管理模块会把这些命令发送给控制模块进行处理。
图2-11 书籍管理功能用例图
- 设置模块:设置模块主要包括系统设置和阅读设置。系统设置包括系统界面的字体修改、昼夜模式切换、调整背光灯亮度等;阅读设置包括书籍字体、字号修改等。
图2-12 设置功能用例图
2.3 数据库设计
本文所用到的数据库E-R数据模型如下图。
图3-12 数据关系E-R图
本文的设计中,数据库模块共设计了5张表,分别是书籍信息表、书签信息表、书籍封面表、作者信息表以及作者、书籍关系表。
书籍信息表主要用来存放与书籍文件有关的各类信息。其中,书籍ID作为主键,系统将会根据当前书籍信息表内的书籍内容自动设置Id信息。路径属性存放了书籍文件的文件路径,当用户需要根据最近阅读快速打开最近阅读的小说时,系统可以根据缓存中存放的书籍ID快速查找到书籍路径,直接打开书籍,而不需要用户再一次手动浏览文件系统查找书籍所在的文件夹。书籍信息表中设置了格式属性,书籍文件第二次被打开时,系统不需要再一次根据书籍的文件名判断书籍类型,可以直接根据保存好的书籍格式信息来进行书籍解析。编码属性保存了书籍文件内容编码格式,一般来说,会采用utf-8格式。
剩余内容已隐藏,请支付后下载全文,论文总字数:12860字
该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;