1、基于Android电子书阅读器研究与实现摘 要 在对Android 学习中,主要做了以下的研究:首先,Android 系统是一个层次的软件集,所以先从层次方面对Android 进行系统研究;其次,通过对Android 平台上应用的开发,更进一步了解Android 这个系统。此次基于Android平台的电子书阅读器的设计与实现主要通过Eclipse开发工具, Java语言与Sqlite数据库来完成的。本阅读器实现了本地阅读,手动翻页,书签的添加、查看、删除,自动翻页,书架,快速定位,及在线下载。本文主要介绍程序的设计思路、逻辑、架构、及数据库的设计与整体的实现流程。最后进一步阐述Android电
2、子阅读器对文化发展的影响及其市场价值。关键词 Android;电子阅读器;java;sqlite;书签Abstract: LearningAndroid, mainly focuses on the following research: First of all, the Android system is a hierarchical software set, so doingsystem research on the levels of Androidcome to first; Secondly, leaning more about the development of appl
3、ications on the Android platform, a better understanding of the Android System. The completed of the design and realization of e-book reader based on the Android platform mainly by using the Eclipse development tools, Java language and Sqlite database. The e-book reader has realized the locality rea
4、ding, manual page, add bookmark, quiry, delete, auto flip, bookshelf, rapid positioning, and online download. This article mainly introduces the thinking and logic, architecture of the program design, the design of the database and the whole realization process. Finally, further elaborates the influ
5、ence of Android e-reader on the cultural development and their marketable value.Key words: Android; Ebook reader; java; Sqlite; bookmark目 录1 背景与意义11.1 Android操作系统介绍11.1.1 Android的认识11.1.2 Android的发展11.2 电子书阅读器介绍11.3 Android电子书阅读器的意义22 相关知识与技术32.1 Android的应用组件32.2 Android的拓展42.3 系统开发工具42.3.1 开发平台:Ecl
6、ipse IDE for Java Developers42.3.2 开发所用到的SDK:Android SDK 2.2版本42.3.3 开发所用到的数据库:SQLite42.3.4 网络环境:Tomcat 服务器:53 系统分析63.1 用户群体:63.2 系统目标63.3 电子书阅读器的需求分析73.3.1 电子书阅读器基本功能需求:73.3.2 系统维护需求73.3.3 系统的安全需求83.4 系统流程分析83.5 系统可行性分析113.5.1 技术可行性113.5.2 硬件可行性123.5.3 操作可行性124 系统设计124.1 系统结构设计134.2 系统开发环境和目标平台144.
7、2.1 系统开发环境144.2.2 系统目标平台144.2.3 Android开发环境搭建144.3 系统功能模块设计164.4 系统UML图184.5 数据库详细设计194.5.1 数据库表关系设计194.5.2 数据库表字段设计205 编码与实现215.1 主界面215.2 书签数据库的实现:225.3 分页及书签的实现235.4 主要的业务逻辑235.5 系统运行效果256 系统测试与运行286.1 系统测试的目的286.2 系统测试范围286.3 软件测试方法概述296.4 软件性能测试流程296.5 测试内容及结果296.5.1 内容与功能检查296.5.2 容错性与易用性测试306
8、.5.3 测试用例设计307 总结与展望31结束语32参考文献33致谢341 背景与意义1.1 Android操作系统介绍1.1.1 Android的认识Android是一款以Linux为基础的开源操作系统,主要使用于便携设备,如:手机、平板电脑等。2005年被Google收购,自2007年11月,Google公司正式向外界展示Android操作系统。Android的系统架构和其它操作系统一样,采用了分层的架构。从架构图看,android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux内核层。Android是以Linux为核心的手机操作平台,作为一款开放式的操
9、作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序,而不再是以前只能使用Java开发Android应用程序的单一局面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统1。1.1.2 Android的发展短短几年内android手机已经风靡全球。 Android的主要竞争对手是苹果公司的iOS以及RIM的Blackberry OS。从2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2012年2月数据,Android占据全球智能手机操作系统市场52.5%的份额,中国市场占有率为68.4%。伴随着移动互联网的
10、发展,android手机凭借良好的用户体验和广大的用户人群,使得越来越多的开发者参与到android程序开发当中。1.2 电子书阅读器介绍伴随着互联网的兴起,电子书和电子书阅读器早在上世纪90年代就已经出现,它以其环保、容量大、携带方便等特点迅速吸引广大阅读爱好者的青睐,经过多年的发展,各种不同版本的电子书相继出现,使得电子书阅读器的风格、界面更加完善接近真实,并给用户带来了非凡的体验。目前市面上Ebook选择的平台主要为WinCE和Linux,国外NOOK宣称将于感恩节上市第一台Android系统的电子阅读器,但真机始终未与大家见面。OPPO推出国内首款基于Android机器人系统的6英寸E
11、INK屏幕电子书阅读器,命名为Enjoy。Android是Google基于Linux平台开发的开放式开源操作系统,在手机上应用日臻成熟,如HTC HERO、Google Nexus One。Android系统的开放性和服务免费是其最大的特色,它是一个对第三方软件完全开放的平台,开发者在开发程序时拥有最大的自由度,可以随意DIY、共享。国内厂商和运营商纷纷加入了Android的阵营,包括中国移动,中国联通,华为通讯和联想等,Android平台在电子书阅读器上的应用将为Ebook的个性化、易用性开辟更广阔的道路。功能特点:一书多用:一本电子书阅读器可以装载很多本电子版的图书。大多数产品可以扩充SD
12、卡/CF卡等大容量存储,可以作为一个小型的移动图书馆。部分产品还可以作为笔记本、资料夹使用。省电环保:电子书阅读器用电极省,不使用传统纸张,由于使用了先进的显示技术,可以帮助人们少买纸质书,减少砍伐树木,从而保护了环境。保护视力:新型电子书阅读器的显示原理与目前的电脑和手机不同,不是主动发光,而是与传统纸张一样靠反射自然光或灯光,因此无辐射,不刺眼,对视力无损伤。海量存储:目前的电子阅读器大多可以扩充外置存储卡,可以存储高达8G,16G的数字图书,拥有一本电子书阅读器,相当拥了一个小型的图书馆。电子书阅读器比手机、PDA 、笔记本电脑、PSP、MP3等的优越性: 电子书阅读器与它们的区别是专业
13、阅读与非专业阅读之分。电子书阅读器有自已的阅读格式,可以分章节、加书签;电池继航时间,阅读界面明显优越于手机、PDA等。阅读的舒适性、方便性和可持久性占优。电子书阅读器和软件电子书阅读器相比,软件通常需要安装在电脑上或者手机上才能阅读,不专业,不方便。而电子书阅读器是一个已经集成了阅读软件的硬件设备,随着发展,这一个设备所集成的功能也越来越多。比如手写、批注、朗读、网络等等2!1.3 Android电子书阅读器的意义这世上最有趣的事,第一是人,第二是书。因为,书可以使人抓住这个世界秘密的核心。你读什么样的书就是什么样的人。如果你什么也不读,那么你的头脑就会萎缩,你的理想将会因失去活力而动摇。书
14、籍和阅读带给我们的不仅是对心中理想世界的坚持,更是对我们思想和心灵的升华与净化,进而改变我们的生活轨迹。阅读使文字具有了永恒的价值,它比图像更空灵,比记忆更清晰,比冥想更深邃。它让你站在巨人的肩膀之上,让你凌驾于伟人的思考之上。阅读是人社会化的重要途径,它把自然人转化为社会人。我们所认识的世界、人生、社会,很多都源于阅读。阅读虽不能改变人生的长度,但可以改变人生的宽度和厚度。通过阅读你可以视通四海,思接千古,与智者交谈,与伟人对话。对于一个生命有限的人来说,这是一件多么幸福的事啊。而阅读的意义在于,它在超越世俗生活的层面上,建立起精神生活的世界。一个人的阅读史,即是他的心灵发育史。阅读使人超越
15、动物性,不致沦为活动木偶,行尸走肉。停止阅读就意味着切断了与世界的沟通,与心灵的沟通,人生也就是进入了死循环,可以说,是阅读拯救了我们。我们无力改变人生的起点,但却可以通过阅读改变人生的终点3。Android,时下市场份额占有量最大的移动设备操作系统;电子书阅读器文化传播的利器。开发基于Android平台电子书阅读器是非常有意义的。2 相关知识与技术2.1 Android的应用组件 一个Android应用程序一般是由四个部分构建成的:首先,活动对象Activity,广播接收者Boardcast Receiver,服务Service以及内容提供者Content Provider,当然要想完成一个
16、Android真正的应用项目,光靠这些是还不够的,其中还包含着许多知识及组件值得去深入学习与掌握。活动对象(Activity): 一个Activity就代表了一个可见的界面,android 应用程序的运行过程就是在不同的Activity之间相互切换的过程。每个活动对象都有自己的视图(View)及事件相应,大部分应用程序都有多个活动对象。广播接收者(Broadcast Receiver): Broadcast Receiver 是一个能够接收广播消息并响应的组件。消息可以由系统产生,例如电话及短信的接收,电池电量发生变化等,同时也可以由应用程序产生,对于产生的这两种广播消息,都可以在相应的部分设
17、置相应的过滤规则来进行接收。服务(Service) 服务是具有长生命周期并且没有用户界面的一个组件。如果服务没有启动,可以使用bindService()来连接一个服务。当连接上一个服务,就能够使用服务提供的外部接口来和服务进行通讯。Android系统很多地方都用到了服务,例如:多媒体、网络、蓝牙、以及可以自定义一个服务。内容提供者(Content Provider): 一个应用程序能够把它的数据保存在文件中,也可以保存在SQLite 数据库中,或者其他任何可用的存储介质中。 如果应用程序之间想要进行共享数据, 那就要用到Content Provider。一个内容提供者就是一个类,它实现了一个标
18、准的方法集合。其他的应用程序可以通过这个类调用其中的方法来进行数据的保存和查找被内容提供者处理过的数据4。2.2 Android的拓展在Android中,开发者可以使用Java作为编程语言来开发应用程序,也可以通过NDK使用C/C+作为编程语言来开发应用程序,也可使用SL4A来使用其他各种脚本语言进行编程(如:python、lua、tcl、php等等),还有其他诸如:Qt(qt for android)、Mono(mono for android)等一些著名编程框架也开始支持Android编程,甚至通过MonoDroid,开发者还可以使用C#作为编程语言来开发应用程序。另外,谷歌还在2009年
19、特别发布了针对初学者的Android Simple语言,该语言类似Basic语言。而在网页编程语言方面,JavaScript,ajax,HTML5,jquery、sencha、dojo、mobl、PhoneGap等等都已经支持Android开发5。2.3 系统开发工具2.3.1 开发平台:Eclipse IDE for Java DevelopersEclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development
20、 Tools,JDT)。Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C+和Python的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。2.3.2 开发所用到的SDK:Android SDK 2.2版本SDK(software development kit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集
21、合。 因此,Android SDK 指的既是Android专属的软件开发工具包。2010年5月20日的谷歌I/O大会演讲中,Android2.2(代号Froyo)正式公布。紧接着没多久,Android2.2 SDK就开始正式提供下载。此外,Android 2.2系统新增了许多功能,比如便携式热点功能、在Android Browser中增加了对Adobe Flash的支持、以及对Android Market进行了一些完善。谷歌表示,除了新增加许多企业功能之外,Android 2.2在性能和速度上均有提高,给Android浏览器增加了V8 Java脚本引擎,另外还增加了许多新的API和服务。2.3
22、.3 开发所用到的数据库:SQLiteSQLite是一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目((Mozilla, PHP, Python)都使用了SQLite。SQLite 由以下几个组件组成:SQL 编译器、内核、后端以及附件。SQLite 通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展 SQLite 的内核变得更加方便。SQLite内部结构如图2-1所示。图 2-1 SQLite 内部结构SQLite 基本上符合 SQL-92 标准,和其他的主要 SQL 数据库没什么区别。它的优
23、点就是高效,Android 运行时环境包含了完整的 SQLite。此外,SQLite 不支持一些标准的 SQL 功能,特别是外键约束(FOREIGN KEY constrains),嵌套 transcaction 和 RIGHT OUTER JOIN 和 FULL OUTER JOIN, 还有一些 ALTER TABLE 功能。除了上述功能外,SQLite 是一个完整的 SQL 系统,拥有完整的触发器,交易等等6。2.3.4 网络环境:Tomcat 服务器:Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断
24、的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。Tomcat 是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应对HTML 页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。 这里的诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tom
25、cat和IIS、Apache等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为7.0.26 Released7。Tomcat Apache如图2-2所示。图2-2 Tomcat Apache3 系统分析3.1 用户群体:电子书阅读器的主要用户对象是,学生、老师以及喜爱阅读的人群,主要用户年龄集中在14岁到50岁之间。用户通过电子书阅读器进行日常阅读、学习,从中获取文化知识及阅读的乐趣。3.2 系统目标本阅读器围绕日常
26、生活与学习展开,用户可以通过本阅读器进行文本阅读。主要目标是,帮助用户通过手机或便携式设备管理图书及智能保存用户阅读进度,模拟真实手动翻页,使用户得到更加完美的用户体验。此外,还可以为用户建立一个属于自己的书架,帮助用户最快的找打自己喜欢的书。用户也可以通过web服务器来在线下载自己喜爱的书,尽可能的满足用户的阅读需求。3.3 电子书阅读器的需求分析3.3.1 电子书阅读器基本功能需求: 本地进行查找、阅读 阅读实现翻页功能 记录最后一次阅读位置 通过设置书签,进行跳跃阅读 可以进行在线图书下载 设置字体大小颜色及主题背景 自动翻页功能 阅读位置定位系统功能模块分析如图3-1所示。图3-1 功
27、能模块图3.3.2 系统维护需求系统维护工作在整个系统的生命周期中经常被忽视。人们往往热衷于系统开发,当开发工作完成以后,多数情况下开发队伍被解散或撤走,而在系统开始运行后并没有配置适当的系统维护人员。这样,一旦系统发生问题或环境发生变化,最终用户将无从下手,这就是为什么有些信息系统在运行环境中长期与旧系统并行运行不能转换,甚至最后被废弃的原因。随着信息系统应用的深入,以及使用寿命的延长,系统维护的工作量将越来越大。系统维护的任务是改正软件系统在使用过程中发现的隐含错误,扩充在使用过程中用户提出的新的功能及性能要求,其目的是维护软件系统的正常运作。而本电子书阅读器跟所有应用软件一样,需要通过用
28、户需求及问题反馈,定期的对系统进行维护,是系统的运行更加健康、寿命更长。3.3.3 系统的安全需求安全性对于用户来说往往是较为重视的的一点,本电子书阅读器不含任何插件,也不会牵扯到第三方软件,不会向外界发送任何有关用户的信息。3.4 系统流程分析系统流程主要是对图书阅读管理流程进行详细描述,通过采用系统流程图形来描述管理业务活动、进行规范化说明。主业务流程介绍:(1)启动程序,进入开机动画,稍后跳转到主界面;(2)进入主界面后,显示一段文字介绍,主要对操作进行大致说明;(3)导航条包括查找、书签、退出及设置等四项操作;(4)主界面包括两个子界面,可以左右滑动进行切换,第二个界面为书架界面,主要
29、功能为对近期所阅读过的书按照阅读的时间先后顺序保存,倒序显示出来。业务流程图如图3-2所示。图3-2.主业务流程图以上为系统操作的基本主流程,以下主要介绍子流程操作。在线查找:(1)进入主界面,点击查找,选择在线查找;(2)跳转到在线图书列表界面,图书信息以列表形式显示;(3)点击所选图书,进行下载。本地查找:(1)进入主界面,点击查找,选择本地查找;(2)跳转到SDcard目录界面,SDcard信息以图文列表形式显示,进行文件的下级目录查看,及文本阅读;(3)阅读完后,点击退出,将当前阅读界面信息保存到默认书签数据库中,对书架信息进行更新。查找流程如图3-3所示。图3-3 查找流程创建书签操
30、作:(1)进入到阅读界面,点击menu键,选择书签设置;(2)选择添加书签,输入书签名,点击确定(若有书签名重复提示是否覆盖已有书签,点击确定,将原有同名书签覆盖),书签信息保存到书签数据库中。查看书签操作:(1)进入主界面,点击书签选项;(2)选择查看书签,显示书签列表;(3)点击所要操作的选项,进入相应阅读界面,进行阅读。书签流程如图3-4所示。图3-4 书签流程设置流程操作:(1)进入主界面,点击设置选项;(2)跳转至设置界面,对字体大小、颜色、主题进行选择;(3)点击确定对设置数据进行保存,并对相关数据进行修改。设置流程如图3-5所示。图3-5 设置流程3.5 系统可行性分析可行性分析
31、的任务,并非所有问题都有简单而又明了的解决办法,事实上,有许多问题不可能在预定的系统规模之内解决。如果问题没有可行的解决方案,那么花费在这项开发工程上的时间、资源、人力和经费都将是无谓的浪费。可行性研究的目的就是要用最小的代价在尽可能短的时间内确定问题是否能够解决。必须记住,可行性研究的目的并不是解决问题,而是确定问题是否值得去解决。怎样才能达到这种目的呢?当然不能靠主观猜想,只能通过客观的分析。必须分析几种主要的可能解法的利与弊,从而判断原定的系统目标和规模是否现实,以及系统完成后所能带来的效益是否达到值得投资开发这个系统的程度。3.5.1 技术可行性本电子书阅读器鉴于是基于Android操
32、作系统平台开发的,而Android系统自2008年发布到目前为止,已有尽力年的历程。期间系统从最初的Android1.1版本到目前即将推出的Android 5.0操作系统Jelly Bean(果冻豆),期间经历了10个以上不同版本的更新,其稳定性毋庸置疑。而成功的Android版的电子书阅读器早已问世,如:掌阅、iReader阅读器、掌上书院等优秀产品。技术方面在一步一步提高,但随着社会多元化的发展,只是数款风格相似的阅读工具并不能满足人满的需要。另外,Android程序开发所用到的编程语言Java更是为众多程序员所喜爱。Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,Java
33、技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。对于系统开发过程中所用到的数据库为,Android系统自带的SQLite及web开发所用到的Apache Tomcat。3.5.2 硬件可行性该软件的开发是基于Android系统平台的,因此通过相关Android框架开发测试通过的软件均可以在任何手机设备上运行,但前提是手机设备必须是Android操作系统。在手机上只需要有基本的配置即可,不需要大型的系统软件和应用
34、软件来支持。由于该软件是采用系统自带数据库存储数据,因此安装此软件要保证足够的内存空间和手机磁卡空间。所以Android手机阅读器在软硬件上是可行的。3.5.3 操作可行性移动手机设备已经深入人们的日常生活,对于手机的操作人们已经不再陌生。对于日常Android应用软件,绝大多数用户都能很快掌握其操作方法,并能熟练操作。而本电子书阅读器带有基本的操作指导,简洁的风格、清晰的界面,并为用户的操作做出相应的提示。操作简单,逻辑清晰。4 系统设计在软件需求分析阶段,对于用户的各种需求我们已经做好了详细地分析,并做出了软件开发所需要的技术支持,解决了软件功能性即“做什么”的问题,在软件设计阶段,要着手
35、解决“怎么做”的问题。软件设计是一个把软件需求变换成软件表示的过程,系统设计时需注意以下几点:(1)安全性。在当今信息化时代,信息就是基础就是财富,保护信息的安全性十分必要,尤其是作为个人信息更是具有较高的安全性要求。(2)先进性。在充分满足用户需求的前提下,结合当今广泛应用的先进的方法进行设计,立足于用户需求,开发出符合市场需求的软件产品。(3)可扩展性。因为不同手机对于电子书阅读器的兼容性不同,并且,在很多方面上都需要进行改进以适应手机发展趋势及用户的应用需求,所以在软件设计阶段,要充分考虑到软件应用的可扩展性,便于将来软件升级更新,给其他系统留接口,能够比较友好地与其他系统衔接这也是软件
36、设计的原则之一。(4)有效性。有效性主要包括功能有效性,设计的软件一定要最大限度地满足用户的需求,包括用户显式的需求和隐式的需求。4.1 系统结构设计系统的设计模式采用经典的MVC模式,软件的设计思想采用面向对象的编程模式来实现。MVC (Model-View-Controller):M是指逻辑模型,V是指视图模型,C则是控制器。一个逻辑模型可以对于多种视图模型,一种视图模型也可以对于多种逻辑模型。使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式,而C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新,这与设计模式中的观察者模式是完全一样。MVC好处:从
37、用户的角度出发,用户可以根据自己的需求,选择自己合适的浏览数据的方式。比如说,对于一篇在线文档,用户可以选择以HTML网页的方式阅读,也可以选择以PDF的方式阅读。从开发者的角度,MVC把应用程序的逻辑层与界面是完全分开的,最大的好处是:界面设计人员可以直接参与到界面开发,程序员就可以把精力放在逻辑层上。而不是像以前那样,设计人员把所有的材料交给开发人员,由开发人员来实现界面。在Eclipes工具中开发Android采用了更加简单的方法,设计人员在DroidDraw中设计界面,以XML方式保存,在Eclipes中直接打开就可以看到设计人员设计的界面。 Android中界面部分也采用了当前比较流
38、行的MVC框架,在Android中: 1.视图层(View):一般采用XML文件进行界面的描述,使用的时候可以非常方便的引入。当然,如何你对Android了解的比较的多了话,就一定可以想到在Android中也可以使用JavaScript+HTML等的方式作为View层,当然这里需要进行Java和JavaScript之间的通信,幸运的是,Android提供了它们之间非常方便的通信实现。 2.控制层(Controller):Android的控制层的重任通常落在了众多的Acitvity的肩上,这句话也就暗含了不要在Acitivity中写代码,要通过Activity交割Model业务逻辑层处理,这样做
39、的另外一个原因是Android中的Acitivity的响应时间是5s,如果耗时的操作放在这里,程序就很容易被回收掉。3.模型层(Model):对数据库的操作、对网络等的操作都应该在Model里面处理,当然对业务计算等操作也是必须放在的该层的。就是应用程序中二进制的数据。在Android SDK中的数据绑定,也都是采用了与MVC框架类似的方法来显示数据。在控制层上将数据按照视图模型的要求(也就是Android SDK中的Adapter)封装就可以直接在视图模型上显示了,从而实现了数据绑定。比如显示Cursor中所有数据的ListActivity,其视图层就是一个ListView,将数据封装为Li
40、stAdapter,并传递给ListView,数据就在ListView中现实。系统构架设计如图4-1所示:图41 MVC框架4.2 系统开发环境和目标平台4.2.1 系统开发环境(1)Eclipse编程软件Eclipse是一个相当著名的开源Java IDE,主要以其开放性、极为高效的GUI、先进的代码编辑器等著称,其项目包括许多各种各样的子项目组,包括Eclipse插件、功能部件等,主要采用SWT界面库,支持多种本机界面风格。(2)Android SDKAndroid平台的手机价格低廉,但其性能却一点也不低廉,随着Android手机的普及,Android应用的需求势必会越来越大,这是一个潜力巨
41、大的市场,会吸引无数软件开发商和开发者投身其中。(3)JDK环境JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。JDK 是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。JDK是学好Java的第一步。而专门运行在x86平台的Jrocket在服务端运行效率也要比Sun JDK好很多。从SUN的JDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更新,运行效率得到了非常大的提高。4.2.2 系统目标平台本软件的目标平台为Android2
42、.1、Android2.2或者更高的版本。4.2.3 Android开发环境搭建一 、JDK安装设置环境变量步骤如下:(1)我的电脑-属性-高级-环境变量-系统变量中添加以下环境变量: (2)JAVA_HOME值为: D:Program FilesJavajdk1.6.0_18(你安装JDK的目录) (3)CLASSPATH值为:.;%JAVA_HOME%libtools.jar;%JAVA_HOME%libdt.jar;%JAVA_HOME%bin; (4)Path: 在开始追加 %JAVA_HOME%bin; 安装完成之后,可以在检查JDK是否安装成功。打开cmd窗口,输入java ver
43、sion 查看JDK的版本信息。出现类似下面的画面表示安装成功了:如图4-2所示。图42 jdk安装成功二、Eclipse安装本软件安装的是Eclipse IDE for Java Developers的win 32bit版。Eclipse版本信息如图4-3所示。图43Eclipse版本三、Android SDK安装在Android Developers下载android-sdk_r05-windows.zip,下载完成后解压到任意路径。(1)运行SDK Setup.exe,点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的Force h
44、ttps:/.这项,再点击Available Packages 。 (2)选择希望安装的SDK及其文档或者其它包,点击Installation Selected、Accept All、Install Accepted,开始下载安装所选包 (3)在用户变量中新建PATH值为:Android SDK中的tools绝对路径(4)“确定”后,重新启动计算机。重启计算机以后,进入cmd命令窗口,检查SDK是不是安装成功。 运行 android h 如果有类似以下的输出,表明安装成功:验证安装成功界面如图4-4所示。图44、验证SDK安装成功四、ADT安装(1)打开 Eclipse IDE,进入菜单中的
45、Help - Install New Software (2)点击Add.按钮,弹出对话框要求输入Name和Location:Name自己随便取,Location输入http:/dl- with后的下拉列表中选择我们刚才添加的ADT,根据提示一步步next,然后选择Preferences. 在左边的面板选择Android,然后在右侧点击Browse.并选中SDK路径,点击Apply、OK配置完成8。五、创建AVD为使Android应用程序可以在模拟器上运行,必须创建AVD。(1)在Eclipse中。选择Windows Android SDK and AVD Manager ;(2)点击左侧面板
46、的Virtual Devices,再右侧点击New ;(3)填入Name,选择Target的API,SD Card大小任意,Skin随便选,Hardware目前保持默认值 ;(4)点击Create AVD即可完成创建AVD9。4.3 系统功能模块设计对于一个实用性的电子书阅读器,从功能上来讲主要分为以下几大部分:从整体功能上来看,不难想象到的是图书阅读、翻页、分页、跳转、添加书签、书签跳转、删除书签、文本设置、主题设置及自动翻页等10。功能模块图如图4-5所示。图4-5、功能模块图重点模块介绍:图书阅读功能模块:通过比特流形式将文本数据随机读入内存,再由输出流以GBK编码形式输出,通过Bitm
47、ap及画布将文本信息展示到手机屏幕上去。对于阅读翻页形式主要是采用模拟手动翻页形式,实现过程较为麻烦,其中主要用到PointF(浮点)、GradientDrawable (图形绘制工具)及多点触摸监听。分页是在对流文件进行分页显示时翻页即进行页码增加。阅读时将屏幕进行锁定、获取屏幕默认尺寸大小,进行背景字体大小、颜色、主题初始化。书签功能模块:此模块主要是对阅读的进度位置以数值形式保存,方便用户进行阅读定位。其主要内容包括书签添加(图书名称、添加时间、添加位置、自定义书签名称),查看书签(书签名称、保存日期、添加书目),删除书签(将书签从数据库中删除)。阅读时,当退出时系统会默认添加一个书签标记当前阅读位置,方便下次进行阅读。自动翻页模块:自动翻页主要是针对用户需求而定,用户可以根据个人实际情况将自动翻页的间隔时间设为10、20、30、60秒不等,主要实现方法是使用线程控制。但翻页时无法进行手动触摸,因此多点监听无法获取数据,从而无法