



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android在线图书阅读器设计与实现本文由CorpioWang贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 浅析 Android 在线图书阅读器设计与实现 摘要: 摘要: 根据市场需求,为方便用户阅读电子书,本文使用 Android 开发了一款功 能强大的手机在线图书阅读器。重点阐述了软件的框架结构、应用程序设计中使 用的关键技术以及核心模块的设计。 关键词: Android,Sphinx,多线程服务器 Abstract: According to the market demand, a powerful online book microreader is developed for people reading E-book using mobile telephone. This paper stated the framework of the system, introduced the core technology and the design of the important module. Key words: Android, Sphinx, multithread, server 引言 随着智能手机的普及,手机软件行业也得到快速发展,人们正在不断地给手机增加新的 功能,如手机游戏、手机阅读、无线音乐等。本文设计了一个功能强大的手机在线图书阅读 器,该程序可下载到手机上,实现随时随地的进行阅读,软件的其主要功能包括在线即时搜索 图书、 阅读图书的功能,并具有定义图书书签、 图书预读和选章阅读的功能,具有非常实用的 价值。 一、在线图书阅读器的设计 1.1 系统功能设计 根据需要,在线图书阅读器主要实现即时的在线阅读,主要包含以下功能: (1)在线即时搜索图书:可以按照书名、作者进行搜索所要阅读的书籍。 (2)在线即时阅读图书:在线进行电子图书的全屏阅读。 (3)书签功能:可以定制书签,以方便下次阅读。 (4)预读功能:可以预读下一页的内容,减少用户等待的时间。 1.2 软件的总体架构 在线图书阅读器采用 PHP +Android + Sphinx 的架构模式(如图 1 所示)。用 PHP 做服务 端,提供与阅读相关的一系列接口。Android 做客户端,与服务器端通信,完成用户的相关操 作。客户端与服务器端以 SOAP 作为基础通讯协议。Sphinx 作为搜索图书的引擎,提供强大 的分词、查询等服务。 图 1 在线图书阅读器的系统架构 二、系统使用的关键技术 2.1Sphinx 搜索引擎 传统的基于数据库(SQL)的搜索形式功能单一、查询速度慢,用户体验不佳。Sphinx 是 一个基于 SQL 的全文检索引擎,可以结合 MySQL, PostgreSQL 做全文搜索, Sphinx 利用自身 强大的词库进行分词,建立索引,功能强大,支持模糊搜索,权重设置等,提供比数据库本身更 专业的搜索功能,使得应用程序更容易实现专业化的全文检索。 秒可以搜索 4G 的文本内容, 1 速度极快。 再利用 Python 进行自定义数据源,使得搜索更加灵活,极大的满足用户搜索需求。 Sphinx 还提供了 PHP 的查询接口,简化了开发繁琐度。 2.2PHP 服务器端 PHP 服务器是一款专门与 PHP、MySQL 无缝结合的网页服务器。在服务器端通过 SOAP 与 客户端进行通讯,完成数据的交换。考虑到高并发以及大数据量问题。服务器端设置了多重 缓存(主要利用 memcache 实现缓存的管理),对于查询结果、 文章等进行分级多层缓存。 数据 库利用集群以及建立索引等方式,提高吞吐量。 2.3Android 客户端 Android 是 Google 开发的基于 Linux 平台的开源手机操作系统,该平台由操作系统、中 间件、 用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。 Android SDK 提供了必要的工具和 API,以便开发者在 Android 平台上使用 java 语言开发应 用程序。 三、核心功能的设计与实现 3.1 查询搜索功能 通过 PHP 与 Sphinx 共同协作完成快速查询搜索功能,该功能的流程如图 2 所示: 图 2 查询搜索功能的流程图 如果你已装好 sphinx, php 运行环境,假设要搜索关键词“红楼梦”,通过 sphinx 可以 取到搜索结果。其中 PHP 调用 Sphinx 接口的核心代码如下: require (“sphinxapiphp”); /其中 sphinxapiphp 是 sphinx 调用接口封装文件 MYMsphinx = new sphinxclient (); /创建 Sphinx 的客户端接口对象 MYMsphinx-setserver(“localhost”, 9312); /设置连接 Sphinx 主机名与端口 MYMquery_str =“红楼梦”; MYMresult =MYM sphinx -query(MYMquery_str,“*”); /按照字符串进行查询 ? 3.2Android 客户端 用户通过在手机上运行客户端实现在线阅读、在线图书查询、图书章节预读、图书书签 等功能。为了提高用户体验,程序大量运用了多线程以及异步等方式。用户请求过程的流程 图如图 3 所示。 图 3 客户请求的流程图 其中 Android 连接 PHP 服务器端的核心代码如下: public static String receive(String url)throws Exception byte result = nul;l try URL u = newURL(url); URLConnection con = uopenConnection(); /连接服务器 InputStream in = congetInputStream();获得输入流 DataInputStream din = new DataInputStream( in); result = new bytecongetContentLength(); for( int i=0; i result i = dinreadByte(); /读取数据 catch(Exception e) return nul;l return new String(result,“utf8”); 3.3 预读功能 预读功能可以实现自动预读图书下一页的功能,充分利用了 CPU,减少用户阅读等待的 时间,提高了效率。预读功能的流程如图 4 所示。 图 4 预读功能的流程图 预读功能采用多线程技术实现,线程体的核心代码如下: public void run() intpage_index = IntegerparseInt(thisprepared_pagegetPageindex(); /获取预读的页码 int total_page = IntegerparseInt(thisprepared_pagegetPagecount(); /获取图书当前章节的总页 数 int current_c = IntegerparseInt(thisprepared_pagegetChapterid(); /获取预读页码所属的章节 intnext_c = 0; try next_c =IntegerparseInt(thisprepared_pagegetNextchapterid(); catch(Exception e) next_c = 0; String url =“”; /如果预读页码小于当前章节的总页数的读取预读页的内容,否则读取下一章节第一页的内 容 if(page_index total_page) url = UrlsgetBookContentUrl( new String(page_index+1)+“”, thisprepared_pagegetBookid(), current_c +“”); thisdownloadInfo(url); else if(next_c! =0) url = UrlsgetBookContentUrl( new String“1”, thisprepared_pagegetBookid(), next_c +“” ); thisdownloadInfo(url); if(thiscache! =null) thiscachesetUrl(url); 四、性能评估 该系统与同类的手机在线阅读器相比,性能上具有如下优势: (1)无需下载 TXT 小说文档,更无需手机连接电脑转移文档,网络资源随意选择; (2)自动保存书签,当阅读至书籍的第二章时,软件将自动保存书签,下次阅读一劳永逸; (3)可以及时阅读最新连载书籍,无需四处寻找最新章节; (4)具有预读功能,在阅读时,能将下一章提前预读出来,所以在翻页时迅速过渡,无网络 加载时间,节省时间,阅读畅快; (5)相比其他在线阅读可节省三分之一的流量,相比单纯的文本阅读器可享受更多的优 秀书籍。 五、结束语 根据移动用户需求,本文基于 android 开发了手机在线图书阅读器,该系统已经完成测 试,投入运行。该系统能够为移动用户提供方便、快捷、灵活的图书阅读服务,具有非常实用 的价值。随着 3G 手机的普及,系统具有广泛的应用前景。 参考文献 1 E2EColud 工作室编著深入浅出 GoogleAndroidM北京:人民邮电出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海市大学附属中学2025届高三年级第二次模拟考试数学试题试卷
- 湖南省岳阳市2025届高三教学质量监测 (二)思想政治试题(含解析)
- 2025年华南海关实施封控指定供应商招标采购项目合同简则订货协议书x
- 山东省职教高考(电子商务专业)综合知识备考试题库大全-下部分
- 汽车线束培训班
- 档案管理制度分类
- 25年4月脑肿瘤影像分割算法分包协议
- 财务顾问聘用合同模板
- 导演劳务合同二零二五年
- 租房委托书经典范例二零二五年
- 2024版医疗废物分类目录解读
- 市场营销策划(本)-形考任务三(第八~十章)-国开(CQ)-参考资料
- 2024-2030年中国情趣用品行业市场全景分析及投资前景展望报告
- 2024年漳州人才发展集团有限公司招聘笔试参考题库附带答案详解
- 《化妆品稳定性试验规范》
- 建筑业建筑工程施工安全管理实践报告
- 园长指导保教活动制度
- 幼儿园大班科学课件:《植物的生长》
- 中医禁食疗法专家共识护理课件
- 管理沟通-原理、策略及应用(第二版)教学课件1
- 阑尾粘液腺癌护理查房
评论
0/150
提交评论