第 1 页 共 26 页
摘要
基于Android平台的电子书管理及阅读系统,是采用JAVA语言开发的一个小型应用系统。在科技日益发展的今天,社会竞争越来越激烈,3G时代已经慢慢融入了我们的日常生活。手机已经成为人们日常生活中不可缺少的一部分,尤其是在电子产品日新月异的今天,我们在平时随处可见的电子产品中,手机无疑是一个最大的用户集,而各大厂商智能手机则依旧是电子商场的一个耀眼明星。其中代表作有微软的WP7系统,苹果的IOS系统,但是其中Google的Android系统以其开放的源代码和方便简洁的操作成为手机领域的领头羊。所以我选择了这个题目作为毕业设计的题目,并希望再进一步完善系统后将系统发布到Google android market上供用户下载使用。
据了解,越来越多的年轻人喜欢阅读小说,本系统则根据用户需求及平台的特性而设计的,在Google Android SDK2.1环境下,运用Eclipse,PhotoShop等相关工具进行开发。同时解决了大型书籍载入、动态分页,网上阅读等众多技术难题。
该系统在Android手机上运行,由于手机性能及内存的瓶颈,在设计方面,本系统进行了相应的优化处理,以减少不必要的内存损耗,尽可能的使其在手机上能够流畅运行,增强友好度,方便使用。
关键词:电子书,安卓,JAVA。
第 2 页 共 26 页
Abstract
Based on the E-book management and reading system of
Android platform is a small application system which adopt to a development language of JAVA . Increasing development in technology today , more and more competitive , 3G era has been slowly integrated into our daily lives . Mobile phones have become an indispensable daily part of life , especially in the rapidly changing electronic products today , we usually ubiquitous in electronic products , mobile phone users is undoubtedly one of the largest sets , the major smartphone manufacturers of electronic markets is still a bright star . Representative has the promise of which Microsoft’s WP7 system , Apple’s IOS system , but is still sudden emergence of Google's Android open source system for its simplicity and ease of operation has become the leader in the field of smart phones . so i chose this topic as the subject of graduation and hopes to further improve the system will be posted to the Google android market system for refence by users download . Based on the E-book management and reading system of Android platform is a small application system which adopt to a development language of JAVA . Increasing development in technology today , more and more competitive , 3G era has been slowly integrated into our daily lives . Mobile phones have become an indispensable daily part of life , especially in the rapidly changing electronic products today , we usually ubiquitous in electronic products ,
第 3 页 共 26 页
mobile phone users is undoubtedly one of the largest sets , the major smartphone manufacturers of electronic markets is still a bright star . Representative has the promise of which Microsoft’s WP7 system , Apple’s IOS system , but is still sudden emergence of Google's Android open source system for its simplicity and ease of operation has become the leader in the field of smart phones . so i chose this topic as the subject of graduation and hopes to further improve the system will be posted to the Google android market system for refence by users download . It is understood that more and more young people like to read novels , the system is based on user needs and characteristics of platform design , in Google Android SDK2.1 environment , the use of the Eclipse , PhotoShop and other tools for development . While addressing a large load of books , dynamic pages , and many other technical problems . The system runs on Android phones , because mobile performance and memory bottlenecks , in terms of design , the system was optimized accordingly , to reduce unnecessary memory loss , as much as possible so that it can run smoothly on the phone , and enhance Friendliness , user-friendly .
Key words: E-book, Android, JAVA.
第 4 页 共 26 页
目录
摘要……………………………………………………………………… 1 Abstract……………………………………………………………………2 第一章 前言……………………………………………………………5
第二章 需求分析…………………………………………………………
第三章 概要设计…………………………………………………………
第四章 详细设计…………………………………………………………
第五章 系统测试…………………………………………………………
第 5 页 共 26 页
第六章 总结……………………………………………………………… 致谢…………………………………………………………………… 参考文献………………………………………………………………
第 6 页 共 26 页
第二章 需求分析 .......................................... 9
2.1 可行性分析 ....................................... 9
2.1.1 开发前景 ................................... 9 2.3.3 开发环境 ...................................... 17
第 7 页 共 26 页
第一章 前言
当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场的迅猛发展,使得手机操作系统也出现了不同的种类,现在的市场上热门手机操作系统有三个,微软的WP7系统,苹果的IOS系统,以及谷歌的Android系统,Android一次的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。众多手机品牌靠着Android系统备受推崇,其中值得一提的是摩托罗拉公司,就在2009年11月凭借其一款搭载Android平台的Droid手机,两个月内突破百万台,击败了苹果的iphone 3GS,被《时代》杂志评为“年度最佳科技产品”。因此告别了两年多的低迷势态,从而走出泥潭。
Android以其特有的开放性优势越来越受到人们和智能手机厂商的关注,并吸引了大量的第三方开发者加入,本次设计运用Android平台手机作为研究开发对象,配合Java语言程序设计以及面向对象思想设计了一款电子书管理及阅读系统。本系统实现了以下功能:电子书的导入及管理、手势识别、动态载入图书、字体、亮度、阅读模式、书签、跳转等。在实现时遵循可靠性、安全性、友好性,从而确定一套可行方案。本次设计是对所学只是的综合运用,把理论知识和实现相结合,最终将技术难点一一攻破。本论文
第 8 页 共 26 页
大多是在将设计于实现的方法,并没有大量罗列集体实现的代码。
第二章 需求分析 2.1 可行性分析 2.1.1 开发前景
目前,在智能手机市场上的操作系统主要有NOKIA的Symbian(塞班)、微
软的Windows mobile、Google的Android(安卓)、苹果的IOS、黑莓Blackberry的RIM等。
在全球手机操作系统排行中,Android被看好是相当红的话题,美国市场研究公司IDC发布报告称,Android操作系统有望在未来几年席卷智能手机市场,增速将超过所有竞争对手。IDC认为,从现在起到2013年,Android有望成为增速最快的手机操作系统,届时将成为全球第二大智能手机操作系统。之所以出现这种变化,是因为越来越多的手机厂商开始采用Android这一免费的开源系统。
总之,Android系统平台可以说是当前被关注度最高的智能手机系统平台之一。其强大的开放性、良好的安全稳定性、强悍而犀利的功能及众多实力厂商的支持,可以说是潜力巨大,魅力无限。
2.1.2 市场可信性
Android操作系统得到了全球众多业界重量级厂商的支持。随着Android智能手机平台的推出,很快便在其周围汇集了全球移动领域一大批的重量级厂商,并组成了开放手机联盟(Open Handset Alliance),包括摩托罗拉、PHILIPS、三星、HTC等在内的34家企业。由于Android是一个完全开源的智能手机系统平台,得到了业内众多资深厂商的支持,并且Android手机操作简单,性能强大,因此基于Android平台的高端智能手机出货数量不断增长,市场占有率快速上升。
与此同时,随着科技信息时代的到来,越来越多的人认为手机已经不仅
仅是用来打电话、发短信的。他们用手机聊QQ、看电影、玩游戏、看小说等等。因此这个市场的商业价值很高,所以我选择开发基于Android平台的电子书管
第 9 页 共 26 页
理及阅读系统。该系统提供了强大的阅读功能以及对电子书的管理,并且该软件安全可靠、便捷清爽,从市场的角度来看,十分有必要进行开发。
2.1.3 技术可行性
我们已经系统的学过JAVA技术,并对软件开发的流程有一定的了解,进
而学习了Android相关的一些技术,随着对几种技术的掌握,从技术的角度讲,该系统是可以实现的。
本项目需要用到Sun公司开发的JAVA技术以及Google公司开发的Android技术在Eclipse环境下进行开发。下面对Android技术的简单介绍和必要的阐述。
2.1.3.1 Android基本框架
图2.1.3.1Android框架图 (1)Applications
Application Android会同一个核心应用程序包一起发布,该应用程序包包
第 10 页 共 26 页
括email客户端,SMS短信息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是用JAVA
(2)Application FrameWork
开发者完全可以访问核心应用程序所使用的API框架。该应用程序架构
用来简化组建软件的重用:任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。该应用程序重用机制是的组件可以被用户替换。 所有的应用程序都由一系列的服务和系统组成,包括:
·可扩展的视图(Views)可以用来建应用程序,包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons),甚至包括一个可嵌入的web浏览器 ·内容管理器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。
·资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串,图形,和分层文件(layout files)。
·通知管理器(Notification Manager)使得应用程序可以在状态栏中显示客户通知信息。
·活动类管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。
(3)Libraries库
Android包括一个被Android系统中各种不同组件所使用的C/C++库集。该
库通过Android应用程序框架为开发者提供服务。
(4)Android Runtime
Android包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik是针对于同时高效地运行多个VMs来实现的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。该虚拟机是基于寄存器的,所有的类都经由JAVA汇编器编译,然后通过SDK中的dx工具转化成.dex格式有虚拟机执行。
第 11 页 共 26 页
(5)Linux内核
Android的核心系统服务依赖于Linux2.6内核,如安全性,内存管理,进程
管理,网络协议栈和驱动模型。Linux内核也同时作为硬件和软件堆栈之间的硬件抽象层。
2.1.3.2 Android系统的四大组件
在Android系统中,为我们提供了四大基本组件,每个组件是一个视图,但
是有些是可见的,有些是不可见的视图,像Activity,ContentProvider是可见的视图,Service和BroadcastReceiver是不可见的,它们只在系统的后台运行。下面分别介绍四大组件:
(1)Activity简介
在Android系统中Activity提供可视化的用户界面,一个Android应用通常
由多个Activity组成。多个Activity组成了Activity栈(Stack),当前活动的Activity处于栈顶。Activity有自己的生命周期,由Android系统来控制。
(2)Service简介
顾名思义Service就是运行在后台的一种服务程序,一般很少和用户交互,
因此没有可视化界面,定义一个Service类比较简单,只要继承Service类,实现其生命周期中的方法就可以了。一个定义好的Service必须在AndroidManifest配置文件注册,通过 (3)Broadcast Receiver简介 Broadcast Receiver顾名思义广播接收器,它和事件处理机制类似, 只不过事件处理机制是程序组件级别的(例如,某个按钮的单击事件),而广播事件处理机制是系统级别的。到目前为止我们可以使用Intent来启动一个程序组件,我们还可以通过使用sendBroadcast()方法来发起一个系统级别的事件广播来传递消息。我们可以在你的应用程序中实现Broadcast Receiver来监听和响应这些广播的Intent。 (4)ContentProvider简介 第 12 页 共 26 页 ContentProvider用来保存和检索数据,并且使应用程序之间相互访问数据 成为可能,它是跨应用程序共享数据的唯一方法。 2.1.3.3 Android手机平台控件研究 (1) Android系统控件与自定义控件的比较研究 在Google Android 中给出了非常多的绚丽的控件,但是在某些时候需要的实现某些功能的时候,系统的控件显得有些笨拙和难以控制,如,在本系统中,本打算使用系统自带的控件TabLayout 显示频道,但是现在的过程中,发现,该控件的每一个Tab之间有一定距离的间隔,且每一个Tab上面的图片很难控制其显示的方式和显示的效果,因此该综合美观和操作性的基础上,决定不用该控件来显示频道切换界面。而才用笔者自定义的控件——TabHost ,此控件从需求上必须能弥补系统控件TabLayout 的不足,且能易于用户操作。 (2) Android 自定义控件的实现的研究 在Google Android 移动平台中,自定义控件都大致可以分成三部分。第一,界面的实现;第二,功能的实现;第三,控件的调用。 (1) 界面的实现。在Google Android 平台中所有的控件都是继承了View这个超类,所以在本软件自定义一个控件的时候也需要继承这个超类,但是有些情况下不需要继承这个超类而是继承它的子类,如基于Google Android 平台的手机电子书阅读器中,就继承了这个超类的子类ViewGroup,即:public class TabController extends ViewGroup{}。基于此我们就得到了本系统要实现的那个控件的最基本的那部分——界面的实现。 (2) 功能的实现。要实现一个控件,让其能产生特定的效果,本系统需要自己来重写父类某些甚至是全部的构造函数,如在基于Google Android 平台的电子书阅读器中,笔者就重写了 protected void onLayout(boolean changed, int l, int t, int r, int b) { } protected void onMeasure(int widthMeasureSpec, int „„„ heightMeasureSpec) { 第 13 页 共 26 页 } „„„. } protected void onFinishInflate() { „„„„ 等方法。在方法中实现所需的功能,这样一个自定义控件就好了。 (3) 控件的调用。在Android 系统中,控件的调用非常的方便,如系统控件TextView,其调用方式如下: 但是当使用自定义控件的时候,其调用方式就与其有很大的区别。在自定义控件中,其调用的形式是通过命名空间的形式来进行调用的。如,在基于Google Android 移动平台的手机电子书阅读器中,调用自定义控件的方式如下: com.baina.viewtools.TabController > 2.2 设计思路及研究方法 2.2.1设计思路 阅读器的设计流程主要是按照软件设计的一般流程:需求分析、概要设计、详细设计、测试与维护的基本流程来设计开发的。首先,从整体分析软件功能,将功能模块化;然后对每个模块进行调试。最后对各个模块进行系统集成。 通过几个月的观察,发现几乎所有的人都有手机,而且几乎有一半以上的人用手机来阅读资料。可是这些阅读软件不尽人意,而且一个好的阅读软件也还没有安装在智能手机上。本系统针对这一点进行了较仔细的分析,在老版的阅读软件基础之上进行改进,最后,对系统进行了实现和维护。 第 14 页 共 26 页 2.2.2 研究方法 本系统在整体框架研究方法采用的是问卷调查法和观察研究法。而在总体设计上采用的是结构化方法,在局部底层开发上为便于交流采用快速原型法。 问卷调查法也称问卷法,它是调查者运用统一设计的问卷向被选取的调查对象了解情况或征询意见的调查方法。观察研究法指根据既定的研究目的,对现象或行为做有计划与有系统的观察,并依观察的记录对现象或行为做客观性的描述和解释。 结构化系统的设计方法是在结构化程序设计思想基础上发展起来的,它的基本涵义是一个系统由层次化的程序模块构成,每一个模块只有一个入口和一个出口,每一个模块只归其上一级模块调用,并有模块连接的准则和构造模块的标准,而且用系统结构图来表达系统的结构,尽可能用最优的方式将系统内各部分组织起来。 2.3 系统分析 2.3.1 需求分析 2.3.1 软件的基本功能要求 经过以上问卷调查和观察研究方法,在现行业务流程和数据分析的基础上基 本上确定了系统的功能,设计也基本上达到了目标。根据软件设计的步骤,需求分析是软件设计成功的基础,也是必不可少的步骤。同时,也对软件的设计提出了具体的要求。在做足了充分的调查研究之后,基本可以确定软件的功能界面如下: (1)刚打开软件时进入登陆注册界面。 (2)登陆账号则进入主菜单界面。 (3)在主菜单界面上有书架,本地图书,网上图书,书籍详情等功能。 (4)进入书架界面,用来选择找书的途径。 (5)网上图书列表界面,用来列出服务器端可供下载的文档。 第 15 页 共 26 页 (6)在网上找书,可直接进行阅读。 (7)下载完成提示界面,用户从服务器端完成指定文档下载任务时显示的界面。 (8)已存在要下载文件提示界面,当用户指定要下载的文档在SD卡中已存在时显示的界面。 (9)SD卡文件列表界面,列出SD卡中存在的所有资料。 (10)在SD卡中也可以进行书籍的重命名,复制和粘贴等功能。 (11)阅读界面,用来阅读文档的主界面,是整个阅读器设计核心部分。 (12)书签功能界面,退出书籍阅读时,可自动添加书签。 (13)手势翻页功能,手机可自动识别手放在手机上的位置,实现翻页功能。 (14)设置界面,用来选择对阅读界面不同的设置。 (15)字体颜色界面,用来设置不同的阅读字体颜色,提升用户的视觉体验。 (16)字体大小界面,通过设置字体大小来满足实际应用中的多重需求。 基本说明如下: 本系统是一个电子书阅读器,主要包含一个主界面,用来实现阅读的功能。在进入手机主界面时,手机底部会出现四个选项:首页,书单等功能。在首页中有个人信息,我的书架,书城,排行旁等信息,点击我的书架,如没有书,可在在SD卡中找书和通过网络下载;点击书籍阅读,在退出时,可自动添加书籍书签,等下次再度时,可自动跳到那一页;手势翻页,用贝塞尔曲线编写手机翻页功能;点击设置选项会有设置字体颜色和设置字体大小,为此用户可通过自己的喜好来设置不同阅读界面的风格。 2.3.2 系统构架 本设计总体逻辑结构层次划分如图2.3.2所示 第 16 页 共 26 页 图2.3.2 功能结构图 2.3.3 开发环境 数据库 由于本设计和数据库密切相关,但是对数据库的要求不高,因此可用Android系统本身自带的Sqlite数据库。 Android SDK与Eclipse开发的插件ADT 由于本设计是基于Android系统的,而Android开发环境的搭建是基于Eclipse的,因此需要下载Android SDK与Eclipse开发的插件ADT。 服务器 由于本设计需要用服务器来为其提供下载服务,而且对服务器的要求不高,因此在设计时用Tomcat作服务器。 第 17 页 共 26 页 2.3.2 功能需求(用例图分析) 2.3.2.1 书库管理需求 图 2.3.2.1 书库管理图 ·用例名称:最近阅读 目标:使得用户可以直接查看最近阅读的书目以及这些书目的相关信息(包括书名、导入方式、阅读进度等) ·用例名称:本地书库 目标:使得用户可以直接查看已经导入系统的书目以及这些书目的相关信息(包括书名、导入方式等) ·用例名称:电子书导入 第 18 页 共 26 页 目标:使得用户可以将SD卡中的TXT文件导入本地书库 2.3.2.2 阅读的基本功能需求 2.3.2.2 阅读的基本功能图 ·用例名称:字体调节 目标:使得用户可以根据自己的需求调节字体大小,同时系统将动态分配页数与每页所容纳的字符个数 ·用例名称:亮度调节/亮度模式 目标:使得用户可以根据自己的需求调节屏幕亮度及是否开启夜间模式 第 19 页 共 26 页 ·用例名称:书签 目标:支持用户添加、删除书签及跳转到书签位置 ·用例名称:页面跳转 目标:支持用户可以任意跳转到任意页数 ·用例名称:翻页模式/翻页 目标:支持用户可以随意在手机上手势翻书。 2.3.2.3 SD卡内电子书清单管理 2.3.2.3 SD卡导入图 ·用例名称:导入本地书目 目标:将所有SD卡内包含TXT文件的父文件全图列出。 2.3.2.4 系统流程图和结构图 (1)电子书管理阅读系统流程图 第 20 页 共 26 页 2.3.2.4 系统流程图 (2)本地图书管理及阅读系统结构图 2.3.2.4 本地图书管理图 第 21 页 共 26 页 (3)网上图书管理及阅读系统结构图 2.3.2.4 网上书城管理图 (4)电子书管理及阅读系统功能表 功能类别 个人信息 子功能 信息列表 功能描述 显示登陆的个人账号信息 我的书架 书籍阅读 点击书籍,进入阅读界面 第 22 页 共 26 页 删除图书 导入书目 返回上一级 刷新 导入 从书架中删除图书 返回到父文件夹 更新书库那个书目 将SD卡中书目导入书架 重命名 复制粘贴 更改图书书名 可把SD卡图书复制到另一个文件夹 图书详情 可查看图书多少K以及级传入时间 书单 网上书籍展示 书籍详情 可查看网上所有图书 可查看书籍简介以及评价 导入书架 可下载网上书籍导入书架中 书城 书籍展示 书籍阅读 更新网上书籍展示 点击书籍可网上阅读 调整文章字体并动态分配页数 阅读界面 字体 亮度 书签 跳转 第 23 页 共 26 页 调整屏幕亮度 自动添加书签 跳转到任意页面 翻页 2.3.3 系统界面需求 该系统要求界面简洁,UI组件友好,操作方便。 手势识别翻页 为达到理想效果,该项目所有图片素材全部由小组成员通过PhotoShop进行处理所得。 2.3.4 系统性能需求 根据Android手机系统超过五秒视为无响应特性制定如下要求: (1)载入大文件时,系统响应时间最长不能超过5秒(理论上0秒载入) (2)扫描SD卡时,系统响应时间最长不能超过5秒 (3)翻页时,系统响应时间最长不能超过5秒 (4)提高系统性能 2.3.5 运行环境需求 操作系统:Android手机基于Linux操作系统 支持环境:Android 2.1版本及以上 开发环境:Eclipse 第 24 页 共 26 页 第三章 概要设计 3.1 概述 软件概要设计的过程,即根据软件需求说明书的要求,将软件进行功能模块化,使得需求分析中提出的每一个功能要求都可由某个功能模块或几个功能模块的组合来实现。概要设计说明书即描述这些功能模块的功能以及模块间的关系。同时,为实现这些要求,还需设计有关的数据库和数据结构。 概要设计质量的好坏,直接影响到详细设计和最终的产品质量。在编写概要设计说明书时,应注意以下几个方面: 1、完整性:检查是否覆盖了所有的功能要求。 2、正确性:所描述的内容要正确。 3、一致性:描述的内容和术语与需求分析要一致。 4、可读性:表达方式要清晰,逻辑清楚,多采用图表方式,便于相互理解和交流。 5、必要性:所设计的模块或数据结构是必要的。 6、可追溯性:从需求说明中的某个功能可追溯到实现该功能的模块,反过来从模块实现功能可追溯到需求说明的某个功能要求。 3.1.1 读者对象 该文档的读者为用户代表、软件分析人员、系统开发管理人员和测试人员。 第 25 页 共 26 页 第 26 页 共 26 页 因篇幅问题不能全部显示,请点此查看更多更全内容