浅析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利用自身强大的词库进行分词,建立索引,功能强大,支持模糊搜索,权重设置等,提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索。1秒可以搜索4G的文本内容,速度极快。再利用Python进行自定义数据源,使得搜索更加灵活,极大的满足用户搜索需求。Sphinx还提供了PHP的查询接口,简化了开发繁琐度。
2.2PHP服务器端
PHP服务器是一款专门与PHP、MySQL无缝结合的网页服务器。在服务器端通过SOAP与客户端进行通讯,完成数据的交换。考虑到高并发以及大数据量问题。服务器端设置了多重缓存(主要利用memcache实现缓存的管理),对于查询结果、文章等进行分级多层缓存。数据库利用集群以及建立索引等方