【Android论文栏目提醒】:网学会员,鉴于大家对Android论文十分关注,论文会员在此为大家搜集整理了“基于Android的电子书阅读器的研究与实现 - 期刊论文”一文,供大家参考学习!
网络出版时间:2012-10-30 15:22网络出版地址:http://www.cnki.net/kcms/detail/34.1205.TP.20121030.1522.002.html 收稿日期:2012-08-30 、 、 作者简介:马鸣1983-男,河南省南阳市人,助教,研究生,主要从事《移动开发》《C语言程序设计》《cwinform 开 、 、 ,女,河南省南阳市人,助教,研究生,主 发》《ASP.NET 基础》《ASP.NET 高级应用》等课程的教学工作;钱鸽(1982-) 、 、 要从事《C 语言程序设计》《数据结构》《VC》等课程的教学工作。
基于
Android 的电子书阅读器 马鸣 钱鸽 (南阳理工学院,河南 南阳 473004) 摘要:
Android 系统是一个层次的软件集,所以先从层次方面对
Android 进行系统研究;其次,通过对
Android 平台上应 用的开发,更进一步了解
Android 这个系统。
此次基于
Android 平台的电子书阅读器主要通过 Eclipse 开发 工具 Java 语言与 Sqlite 数据库来完成的。
本阅读器实现了本地阅读,手动翻页,书签的添加、查看、删除,自动翻页, 书架,快速定位,及在线下载。
本文主要介绍程序的设计思路、逻辑、架构、及数据库的设计与整体的实现流程。
最后进一 步阐述
Android 电子阅读器对文化发展的影响及其市场价值。
关键词:
Android 电子阅读器 java sqlite 书签 中图分类号:TP311 文献标识码:A 文章编号:1009-3044201227- Design and Realization of the Ebook Reader Based on
Android MA Ming QIAN Ge Nanyang Institute of Technology Nanyang 473004 China Abstract:The
Android system is a hierarchical software set so doing system research on the levels of
Android come to first Secondly leaning more about the development of applications 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 reading 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 influence of
Android e-reader on the cultural development and their marketable value. Key words:
Android Ebook reader java Sqlite bookmark 1 前言 电子书和电子书阅读器早在上世纪 90 年代就已经出现,它以其环保、容量大、携带方便等特点迅速吸引广大阅读爱好 者的青睐,经过多年的发展,各种不同版本的电子书相继出现,使得电子书阅读器的风格、界面更加完善接近真实,并给用 1 户带来了非凡的体验 。
2 系统相关技术分析 2.1
Android 系统架构
Android 是一种以 Linux 为基础的开放源代码操作系统,主要使用于便携设备。
Android 的系统架构采用了分层的架构。
android 分为四个层,分别是应用程序层、应用程序框架层、系统运行库层和 linux 内核层。
随着
Android 的快速发展,如 今已允许开发者使用多种编程语言来开发
Android 应用程序,而不再是以前只能使用 Java 开发
Android 应用程序的单一局 面,因而受到众多开发者的欢迎,成为真正意义上的开放式操作系统2。
2.2 系统开发工具 2.2.1 开发平台:Eclipse IDE for Java Developers 1 Eclipse 是著名的跨平台的自由集成开发环境 。
(IDE) 最初主要用来 Java 语言开发,目前亦有人通过插件使其作为 C、Python、PHP 等其他语言的开发工具。
Eclipse 的本身只是一个框架平台,但是众多插件的支持,使得 Eclipse 拥有较佳的 4灵活性。
许多软件开发商以 Eclipse 为框架开发自己的 IDE 。
2.2.2 开发所用到的数据库:SQLite SQLite 是一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。
此外它还是开源 :SQL的,任何人都可以使用它。
许多开源项目(Mozilla PHP Python)都使用了 SQLite。
SQLite 由以下几个组件组成:编译器、内核、后端以及附件。
SQLite 通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展 SQLite 的内核变 5得更加方便 。
2.2.3 网络环境:Tomcat 服务器 Tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能。
Tomcat 是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。
当在一台机器上配置好 Apache 服务器,可利用它响应对 HTML 页面的访问请求。
实际上 Tomcat 部分是 Apache 服 6务器的扩展,但它是独立运行的,所以当你运行 tomcat 时,它实际上作为一个与 Apache 独立的进程单独运行的 。
3 系统的设计3.1 系统流程设计 系统流程主要是对图书阅读管理流程进行详细描述,通过采用系统流程图形来描述管理业务活动、进行规范化说明。
主业务流程介绍: 1)启动程序,进入开机动画,稍后跳转到主界面; 2)进入主界面后,显示一段文字介绍,主要对操作进行大致说明; 3)导航条——包括查找、书签、退出及设置等四项操作; 4)主界面包括两个子界面,可以左右滑动进行切换,第二个界面为书架界面,主要功能为对近期所阅读过的书按照阅读的时间先后顺序保存,倒序显示出来。
业务流程图如图 1 所示。
图1 主业务流程 23.2 系统功能模块设计 对于一个实用性的电子书阅读器从功能上来讲主要分为以下几大部分: 从整体功能上来看,不难想象到的是图书阅读、翻页、分页、跳转、添加书签、书签跳转、删除书签、文本设置、主题设置及自动翻页等。
功能模块图如图 2 所示。
图2 功能模块图4 系统的实现 由于在整个实现过程中,牵扯到了许许多多的控件、方法、类与接口。
所以在编码与实现方面本文主要是对重要的过程、类与方法进行介绍。
电子书阅读器的实现主要分为以下几个阶段:4.1 主界面的实现 主界面主要是通过导航条的方式,引导用户进行相关的操作。
主界面显示布局,上部为主界面、及书架两个字界面切换按钮,下部为操作导航。
阅读主界面如图 3 所示。
图3 阅读器主界面 此功能相关代码如下: private void loadButtomMenu 3 gv_menu GridView this.findViewByIdR.id.gv_menu gv_menu.setBackgroundResourceR.drawable.channelgallery_bg gv_menu.setGravityGravity.CENTER ArrayList data new ArrayList HashMap map new HashMap map.putitemImage R.drawable.ic_menu_search map.putitemText查找 data.addmap map new HashMap map.putitemImage R.drawable.ic_menu_book_flag map.putitemText书签 data.addmap map new HashMap map.putitemImage R.drawable.ic_menu_exit map.putitemText退出 data.addmap map new HashMap map.putitemImage R.drawable.ic_menu_manage map.putitemText设置 data.addmap 4.2 分页及书签的实现 分页是通过对以流形式的文本进行分段读取与显示,显示内容的多少主要是根据字体大小及设备屏幕大小来进行计算的。
翻页动画的实现效果,如图 4 所示。
图4 预读与翻页效果 4 此功能相关代码如下: public BookPageFactoryint w int h pageNum 1 mWidth w mHeight h mPaint new PaintPaint.ANTI_ALIAS_FLAG mPaint.setTextAlignAlign.LEFT mPaint.setTextSizem_fontSize mPaint.setColorm_textColor mVisibleWidth mWidth - marginWidth 2 mVisibleHeight mHeight - marginHeight 2 mLineCount int mVisibleHeight / m_fontSize public void openbookString strFilePath throws IOException book_file new FilestrFilePath bookTitle strFilePath.substringstrFilePath.lastIndexOf/1 strFilePath.lastIndexOf. long lLen book_file.length m_mbBufLen int lLen m_mbBuf new RandomAccessFilebook_file r.getChannel.map FileChannel.MapMode.READ_ONLY 0 lLen 4.3 网络下载的实现 在线图书下载进度提示,如图 5 所示。
图5 在线下载 此功能相关代码如下: public void run String temp bookInfo.getid String bookName temp.substringtemp.indexOf: 1 String bookUrl http://192.168.0.99:8080/web/src/ bookName 5 .txtURL url url new URLbookUrl HttpURLConnection conn HttpURLConnection url.openConnection conn.setConnectTimeout5000 conn.setRequestMethodGET inStream conn.getInputStream progressLength conn.getContentLength RandomAccessFile accessFile new RandomAccessFilesaveDirrwd accessFile.setLengthprogressLength byte buffer new byte1024 int len 0 int countLen 0 while len inStream.readbuffer -1 accessFile.writebuffer 0 len countLen len Message msg handler.obtainMessage msg.arg1 countLen System.out.printlnlen len msg.sendToTarget Thread.sleep1000//service 中下载进度条的更新时间间隔 accessFile.close 5 结束语 本阅读器围绕日常生活与学习展开,用户可以通过本阅读器进行文本阅读。
主要目标是,帮助用户通过手机或便携式设备管理图书及智能保存用户阅读进度,模拟真实手动翻页,使用户得到更加完美的用户体验。
此外,还可以为用户建立一个属于自己的书架,帮助用户最快的找打自己喜欢的书。
用户也可以通过 web 服务器来在线下载自己喜爱的书,尽可能的满足用户的阅读需求。
参考文献: 1 杨丰盛.
Android 应用开发揭秘M.北京:机械工业出版社2010.48-50. 2 李刚. 疯狂
Android 讲义M.北京:电子工业出版社2012. 45-46. 3(美)墨菲.
Android 开发入门教程M. 李雪飞吴明晖 译.北京:人民邮电出版社2010.18-20. 4 王世江 盖索林. Goggle
Android 开发入门指南M.北京:人民邮电出版社 2009.35-38. 5 王世江 余志龙 陈昱勋. Google
Android SDK 开发范例大全M.北京:人民邮电出版社 2010.40-43. 6 公磊. 基于
Android 的移动终端应用程序开发与研究J.计算机于现代化2008715:35-37. 6