基于Android系统的手机电子书阅读器的设计与实现.docx

上传人:b****5 文档编号:7272822 上传时间:2023-01-22 格式:DOCX 页数:56 大小:1.70MB
下载 相关 举报
基于Android系统的手机电子书阅读器的设计与实现.docx_第1页
第1页 / 共56页
基于Android系统的手机电子书阅读器的设计与实现.docx_第2页
第2页 / 共56页
基于Android系统的手机电子书阅读器的设计与实现.docx_第3页
第3页 / 共56页
基于Android系统的手机电子书阅读器的设计与实现.docx_第4页
第4页 / 共56页
基于Android系统的手机电子书阅读器的设计与实现.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

基于Android系统的手机电子书阅读器的设计与实现.docx

《基于Android系统的手机电子书阅读器的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Android系统的手机电子书阅读器的设计与实现.docx(56页珍藏版)》请在冰豆网上搜索。

基于Android系统的手机电子书阅读器的设计与实现.docx

基于Android系统的手机电子书阅读器的设计与实现

毕业设计(论文)

基于Android系统的手机电子书阅读器的设计与实现

 

毕业论文(设计)原创性声明

本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。

据我所知,除文中已经注明引用的内容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。

对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。

作者签名:

日期:

毕业论文(设计)授权使用说明

 

本论文(设计)作者完全了解**学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。

有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。

学校可以公布论文(设计)的全部或部分内容。

保密的论文(设计)在解密后适用本规定。

 

作者签名:

指导教师签名:

日期:

日期:

 

 

摘要

随着智能手机的快速普及,智能手机操作系统市场风生水起。

2008年Google推出了一款名为Android的开源智能手机操作系统,主要使用于便携设备,如手机、平板电脑。

它采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改SDK包,系统的开源性使其具有良好的拓展性。

本文主要阐述了在android平台上十分流行的电子书阅读器的设计与实现,具有阅读字体大小调节、阅读风格设置、自定义阅读主题、阅读进度跳转、关键词搜索、自动翻页、翻页特效、阅读书签、分享给好友、在线下载电子书等功能,本文详细讨论了应用程序的系统逻辑结构,体系结构,功能模块和设计流程,并在最后提出了android电子书阅读器的进一步功能实现展望。

关键词:

Android、电子书阅读器、智能手机

Abstract

Withtherapidproliferationofsmartphones,smartphoneoperatingsystemhasbeensopopular.In2008,GooglelaunchedaproductcalledtheAndroid,it’saopen-sourcesmartphoneoperatingsystem,mainlyusedinportabledevicessuchasmobilephones,tabletPCs.ItusestheLinuxkernel,amemberoftheOpenHandsetAlliance(OHA)canuseandmodifytheSDKpackage,opensource,ithasagoodexpansion.

Thisarticlefocusesonthedesignandimplementationofthee-bookreaderwhatisverypopularonandroidplatform,hasreadthefontsizeadjustment,readingstylesettings,thecustomtoreadtheme,readtheprogressofthejump,keywordsearch,auto-flip,flipeffects,readthebookmark,shareforfriend,downloadbooksandotherfunctions,discussedindetailthelogicalstructureofapplicationsystems,architecture,functionalmodulesandthedesignprocess,andinthelastandroide-bookreaderfurthertoachievethevision.

Keywords:

Android、E-bookReader、SmartPhone

引言

手机是已经成为了生活中不可缺少的通讯设备,没有手机有时会让人觉得寸步难行手机将脱离传统的打电话、发短信等基本的功能,而基于智能手机强大的处理能力和可扩展能力,基于3G网络高速数据传输,越来越多的功能和业务将被开发出来并大规模的应用[8]。

正基于此,Google于2007年11月5日宣布推出基于Linux平台的开源手机操作系统,号称首个为移动终端打造的真正开发和完整的移动软件——Android。

本课题主要就是设计和实现一款基于Android平台的电子书阅读器,给用户更好的阅读体验。

1.选题背景

1.1问题提出

据《3G行业深度研究报告》分析预测最先高速增长的3G业务包括手机游戏、手机阅读、无线音乐等。

2010年1月CNNIC发布《中国互联网发展状况统计报告》[11]手机用户上网行为统计:

目前有77.8%的用户使用手机在线聊天服务,第二位是手机阅读用户比例占到总体手机网民的75.4%。

Android的开源智能手机操作系统采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改SDK包,系统的开源性使其具有良好的拓展性。

包括了操作系统、用户界面和应用程序,即智能手机工作所需要的全部软件。

Android的最大特点是其开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。

对于软件从业人员来说,Android平台具有无限的吸引力。

虽然浏览器的功能已经十分强大,但通过手机浏览器阅读书籍还是会给给手机用户带来许多的不便,所以就需要一款方便的、功能强大的阅读软件。

本课题主要就是设计和实现一款基于Android平台的电子书阅读器。

1.2课题研究的背景和意义

1.2.1课题研究的背景

2011年第四季度Android手机50.9%的份额位居全球智能手机操作系统首位,远高于2010年第四季度的30.5%。

iOS为23.8%,高于上年同期的15.8%。

塞班位居第三,份额为11.7%,但远低于上年同期的32.3%。

其次分别为RIM(8.8%)、Bada(2.1%)和微软(1.9%)。

下图是Gartner对智能手机系统使用的统计和预计表:

Android是首款开源代码的操作系统,采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改安卓的SDK软件包。

系统的开源性使其具有良好的拓展性,一方面,为众多移动应用开发者提供了良好的系统性平台,有利于移动应用的集合;另一方面,终端厂商可以针对自身的特殊需要“定制化开发”。

与此相比,尽管2010年2月,塞班基本完成开源工作,但由于代码臃肿,用户界面设计缺失,塞班的开源并无实际意义,错失发展良机。

Android在全球市场的成长壮大,塞班市场份额不断下跌已成不争事实。

安卓操作系统发展迅猛主要得益于免费、开源和良好产业运作策略,这三点为安卓在智能手机市场赢得更多的发展机遇。

系统的免费让更多的厂商加入,推动了份额的上升;代码的开源让更多的开发者进入应用开发;应用的丰富吸引了更多用户选择,这也是谷歌值得众多厂商学习的地方。

此外,谷歌通过OHA联合众多厂商进行系统研发,不断更新版本,将系统应用推广到更多的终端产品中,确保用户体验持续改善。

[7]

1.2.2课题研究的意义

Android这个平台对于Google对于大众的意义不在于手机本身,Android存在的目的也不在于挑起手机操作系统之间的混战,而在于推动移动互联网产业链的迅速成型。

具有开源特性的Android平台打破了之前Symbian、windowsmobile等操作系统收取高额的授权费用的模式,使得只能手机成本大大的降低;而正是由于它开发源代码,使得手机产生更多个性化的应用。

同时,合作方能够在这里得到利润或者创造价值,手机软件行业得到维护协调发展。

以Google、苹果和路基亚为中心各自形成的生态链将以原来数倍的速度推动移动互联网的发展,这正式Google发布Android平台的意义,也是Andorid平台存在的使命所在。

而作为Android平台成员之一的中国移动也投资成立了一家通讯公司,专门从事Google手机软件的应用以及本地化的软件的开发,比如将在Google手机平台上添加飞信、输入法等一系列符合国内用户使用特色的功能。

国内众多企业也将眼光投入到Andorid上面,并启动了相关的计划来深入的理解并发展Android。

更多的手机软件开发企业已经或者筹备着将公司进行转型,从其方向的开发转向到Android的开发。

综上所述,无论是在国内还是在国外,Android平台对手机软件行业和移动手机台将发挥极大地推动作用,而在未来的几年或者一段时间内,Android将越发的凸显自己的重要性。

基于此,我们有必要通过进行相关的研究来了解Android平台,来了解开发Android的那一大批人的先进的理念和思想,并通过这些来了解手机软件行业,进而了解未来无移动互联网的发展趋势,从而更好的适应时代的需要。

1.3课题研究的目标和内容

1.3.1课题研究的目标

学习Android应用开发技术,并以此为基础开发一个项目,既Android电子书阅读器来了解Android平台的相关特性和开发的流程。

为以后的工作打下良好的基础。

主要目标:

1)通过独立设计UI来了解Android以至于移动平台开发的UI的设计方法。

2)通过设计功能点来初步的了解移动平台开发的所需注意事项,初步的了解移动平台的开发,并了解别体会如何获得更好的人机交互。

3)通过选取相应的算法来实现具体的功能,来了解Android平台的类库和其相关的设计模式,了解其先进的思想和API的特点。

4)通过测试来完善程序,使其Bug不合理地方最少化,并进一步了解Android平台的相关先进的特点和其人性化的设计,与此同时熟悉软件开发的相关流程并深刻认识在编码时一些注意事项的重要性。

5)通过发布程序到GoogleAndroidMarket上,了解Android程序发布的流程,并通过它了解其他平台下的开发、发布的流程。

并通过用户的反馈来进行相关的修改。

基于此更深刻的理解人机交互的重要性和设计的重要性。

1.3.2课题研究的内容

Android电子书阅读器主要是在Eclipse工具上完成编程,其中界面设计是用XML技术实现的,具体的功能是使用JAVA语言实现的。

电子书阅读器主要分为本地书库、在线书城、个性阅读等模块。

其中,本地书库是遍历SD卡把用户需要的书籍添加到书架(数据库)中;在线书城是给用户提供从互联网上下载电子书的途径;而个性阅读是最为重要的,具体实现了阅读字体大小调节、阅读风格设置、自定义阅读主题、阅读进度跳转、关键词搜索、自动翻页、翻页特效、添加书签等功能。

具体的技术路线图如下:

Android电子书阅读器技术路线图

2.Android系统的介绍

2.1Android系统概述

Android是Google开发的基于Linux平台的开源手机操作系统。

它包括操作系统、用户界面和应用程序——移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。

它采用了软件层(softwarestack,又名以软件叠层)的构架,主要分为三部分。

底层以Linux内核作为基础,由C语言开发,只提供基础功能。

中间层包括函数库Library和虚拟机VirtualMachine,由C+开发。

最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java编写。

Google与开放手机联盟合作开发了Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达电和T-Mobile在内的30多家技术和无线应用的领军企业组成。

Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。

Android作为谷歌企业战略的重要组成部分,将进一步推进"随时随地为每个人提供信息"这一企业目标的实现。

我们发现,全球为数众多的移动电话用户从未使用过任何基于Android的电话。

谷歌的目标是让(移动通讯)不依赖于设备甚至平台。

出于这个目的,Android将补充,而不会替代谷歌长期以来奉行的移动发展战略:

通过与全球各地的手机制造商和移动运营商结成合作伙伴,开发既有用又有吸引力的移动服务,并推广这些产品。

 Android在正式发行之前,最开始拥有两个内部测试版本,并且以著名的机器人名称来对其进行命名,它们分别是:

阿童木(AndroidBeta),发条机器人(Android1.0)。

后来由于涉及到版权问题,谷歌将其命名规则变更为用甜点作为它们系统版本的代号的命名方法。

甜点命名法开始于Android1.5发布的时候。

作为每个版本代表的甜点的尺寸越变越大,然后按照26个字母数序:

纸杯蛋糕(Android1.5),甜甜圈(Android1.6),松饼(Android2.0/2.1),冻酸奶(Android2.2),姜饼(Android2.3),蜂巢(Android3.0),冰激凌三明治(Android4.0),根据最新消息新一代Android版本(Android5.0)将命名为果冻豆(JellyBean)。

2.2Android系统的特征

1)开放性。

在优势方面,Android平台首先就是其开放性,开放的平台允许任何移动终端厂商加入到Android联盟中来。

显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。

  2)挣脱束缚。

在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。

自从iPhone上市,用户可以更加方便地连接网络,运营商的制约减少。

随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。

  3)丰富的硬件。

这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。

  4)开发商。

Android平台提供给第三方开发商一个十分宽泛、自由的环境。

因此不会受到各种条条框框的阻挠,可想而知,会有多少新颖别致的软件会诞生。

但也有其两面性,血腥、暴力、情色方面的程序和游戏如何控制正是留给Android难题之一。

5)Google应用。

从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。

6)应用程序无界限。

Android上的应用可以通过标准API访问核心移动设备功能。

通过互联网,应用程序可以声明它们的功能可提供其他应用程序使用。

7)应用程序是在平等的条件下创建的。

移动设备上的应用程序可以被替换或扩展,即使是拨号程序或主屏幕这样的核心组件。

8)应用程序可以轻松地嵌入网络。

应用程序可以轻松地嵌入HTML、JavaScript和样式表,还可以通过WebView显示网络内容。

9)应用程序可以并行运行。

Android是一种完整的多任务环境,应用程序可以在其中并行运行。

在后台运行时,应用程序可以生成通知以引起注意。

2.3Android系统的功能

1)支持虚拟键盘。

虚拟键盘的出现意味着基于Android1.5或以上版本的移动设备可以同时支持物理键盘和虚拟键盘。

2)使用Widget实现桌面的个性化。

可以用Widget修饰自己的桌面。

大多数小的web应用都是从网络上获得实时数据并展示给用户的。

Android预装了5个桌面Widget,包括数字时钟、日历、音乐播放器、相框和搜索。

3)用在线文件夹快速游览数据。

类似于OSXLeopard的QuickLook特征,Android的在线文件夹可显示常见的数据条目,比如联系人、喜欢的应用、E-mail信息、播放列表、书签、RSS源等,并不需要运行系统程序处理特定的数据条目。

4)视频录制和分享。

Android还有录制和分享视频的功能,对回放和MPEG-4、3GP等视频格式也有了更好的支持。

可以通过E-mail、MMS或直接上传到YouTube等方式来分享视频。

5)图片上传。

在线分享图片需要的点击更少。

完成照相后,当浏览图片或选择Google在线图片服务Picasa时,只需轻点“分享”就会拥有1Gb的免费图片存储空间。

6)更快、更兼容的游览器。

Android的基于Webkit内核的游览器带来了重要的调速装置(SpeedPumb),这得益于新的Wenkit渲染引擎和优化的Java脚本编译器(SquireFish).

7)VoiceSearch语音搜索。

带有语音识别技术的Google手机已于2008年11月面世,它支持语音搜索功能。

该功能增强了默认的搜索能力,已超过纯文本搜索。

8)立体声蓝牙和免提电话。

除了增强的免提电话体验,Android还支持立体声蓝牙(A2Dphe和AVCRP),并有自动配对功能。

9)强大的GPS技术。

Android内部提供了大量的GPS组件,我们可以很轻松地获得设备当前的位置等信息,让导航等功能更加完美。

10)Android系统硬件检测。

Android可自动检测和修复SD卡的文件系统,允许第三方应用显示Android系统的硬件特征。

为了让用户下载到与自己的设备匹配的应用,我们可以检测用户设备的硬件信息,让满足应用要求的设备安装该程序,当更多的Android设备建立在不同的硬件上时,这个功能显得很实用。

2.4Android的架构

Android的架构是Linux内核、C/C++函数库、Dalvik虚拟机、应用框架以及关键应用程序构成的,如图2-1。

通过编译基于框架的应用程序可以降低开发负荷。

应用软件原则上是在DalvikVM上运行的。

图2-1Android架构图

2.4.1应用程序层

Android平台内包含一些关键应用程序,如邮件收发客户端程序、短信收发程序、日历和网页浏览器等,开发者可以在其平台上开发更多有特色的应用程序。

开发语言是Java。

2.4.2应用程序框架

Android应用程序的开发基于框架和组件。

Android本身已在其框架中提高了许多的组件供应用程序调用,当然开发者也开放新的组件,并将组件放入应用程序框架中,以供自己和其它应用程序调用。

2.4.3C/C++函数库

Android应用程序框架之下是一套C/C++函数库,它们服务于Android应用程序组件,其功能通过组件间接提供给开发者。

这些函数库包括:

标准C函数库、媒体功能库、浏览器引擎、2D和3D图形库、基于WEB应用的的安全协议SSL、用于点阵和矢量字体渲染的FreeType以及SQLite引擎等。

2.4.4Java程序运行环境

Android的Java程序运行环境包含一组Java核心函数库及Dalvik虚拟机,它们有效地优化了Java程序的运行过程。

所有的Android应用都运行在它自己的进程里,该进程是一个Dalvik虚拟机的实例,Dalvik被设计成能在一台设备上高效的运行多个虚拟机实例。

Dalvik虚拟机的可执行文件被封装成Dalvik可执行格式(.dex)。

这是被优化过的最小内存依赖的格式。

Java编译器(dx工具)将注册了的和运行时用到的类编译成.dex格式。

Dalvik虚拟机依赖于底层Linux内核提供的功能,如线程机制,和内存管理机制等。

2.4.5Linux内核

Android系统平台是基于优化了的Linux内核,是其系统平台的核心。

它提供诸如内存管理、进程管理、设备驱动等服务,同时也是手机软硬件的连接层,提供了一个屏蔽层用于屏蔽硬件和上层软件。

2.5Android应用的构成和工作机制

对于一个Android应用程序来说,是由Activity、IntentReceiver、Service、ContentProvider四部分组成,但并不是每一个Android应用程序都必须由这四部分组成。

在应用程序中使用时,需要在配置文件AndroidMainfest.xml中进行配置。

这个配置文件是每个Android应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等。

2.5.1Activity

Activity是构成应用程序中最重要的构造块,在Android应用程序中,几乎都是通过Activity来与用户进行交互,所以Activity主要负责的就是创建与用户进行交互的显示窗口,你可以在这些窗口里通过调用setContentView(View)方法来显示你自己的用户界面。

1)活动生命周期

活动(Activity)在系统中以活动栈的形式进行管理。

当一个新的活动启动后,被放到了栈项,成为了运行活动,而新活动之前的活动在活动栈里总位于新活动之下,直到新的活动退出才重新回到前台。

图2-2Activity状态变换路径图

从图2-2可以看出,Activity有三个关键的循环:

①活动的整个生命期:

从首次调用onCreate(Bundle)开始,到最终调用onDestroyO结束。

在onCreate()中进行所有初始化,在onDestroyO时进行清理工作,释放资源。

②活动的可见生命期:

从调用onStart()开始,到onStop()被调用为止。

在这段时间内,即使活动不与用户进行交互,用户也可以在屏幕上看到它。

在这两个方法调用之间,可以维护活动显示给用户的资源。

onStart()和onStop()方法可以多次调用,因为活动随时可以在可见和隐藏之间进行转换。

③活动的后台生命期:

从调用onResume()开始,到onPause()被调用为止。

在这段时间内活动处于其它所有活动之前,并与用户进行交互。

一个活动可以不断在resumed状态和paused状态之间变换[4]。

2)活动之间的切换

Android使用了Intent类来实现活动之间的切换工作。

Intent负责对应用中一次操作的动作、动作涉及的数据和附加数据进行描述。

根据Intent的描述,负责找到对应的组件,将Intent传递给调用的组件并完成组件的调用。

因此,Intent起着一种媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。

在应用中,我们可以以两种形式来使用Intent:

直接Intent,指定了component属性的Intent,通过指定具体的组件类,通知应用启动对应的组件。

间接Intent,没有指定comonent属性的Intent,则需要包含足够的信息,这样系统才能根据这些信息,在所有的可用组件中,确定满足此Intent的组件。

2.5.2BroadcastReceiver

  在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。

而BroadcastReceiver是对发送出来的Broadcast进行过滤接受并响应的一类组件。

可以使用BroadcastReceiver来让应用对一个外部的事件做出响应。

这是非常有意思的,例如,当电话呼入这个外部事件到来的时候,可以利用BroadcastReceiver进行处理。

例如,当下载一个程序成功完成的时候,仍然可以利用BroadcastReceiver进行处理。

BroadcastReceiver不能生成U

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1