Computer Science and Application 计算机科学与应用, 2019, 9(11), 1977-1985
Published Online November 2019 in Hans. /journal/csa
/10.12677/csa.2019.911222
The Design and Implementation
of a Classic Literature Reading-Assist
System Based on Android
Jianfeng Hou1, Hui Zhang2, Yushuang Sui1, Yusong Zou2, Chang Han1
1College of Information, North China University of Technology, Beijing
2Beijing No.10 Middle School, Beijing
Received: Oct. 14th, 2019; accepted: Oct. 30th, 2019; published: Nov. 6th, 2019
Abstract
In the process of reading famous literary classics, there are often problems caused by insufficient background knowledge, representation of famous works hard to understand, insufficient under-standing of deep meanings, and insufficient speculation, which makes it difficult for high school students to extract the essence from famous works and improve the reading level. So we build an Android-based mobile reading-assist system. The system currently selects 15 classic Chinese and foreign literary classics, collects reading resources, and achieves accurate recommendation of reading resources, so that when people use fragmented time to read Chinese and foreign literary, they can obtain real-time matching reading information and share reading experience. Further-more, annotations made by readers will be transformed to reading-assist resources by system sorting and recommending of experts, to realize the circulation and accumulation of read-ing-assist information, providing readers with a reading platform that accumulates literary knowledge and cultivates cultural literacy.
Keywords
Android, Reading-Assist, Classic Literature, Recommendation, Sharing
基于Android的名著助读系统设计与实现
侯建峰1,张挥2,隋玉爽1,邹宇松2,韩畅1
1北方工业大学信息学院,北京
2北京市第十中学,北京
侯建峰 等
收稿日期:2019年10月14日;录用日期:2019年10月30日;发布日期:2019年11月6日
摘
要
针对中学生在名著阅读过程中,经常出现的由于背景知识不足、名著的部分表现手法难于理解、深层含义认知不够、思辨高度不够等导致其难于从名著中汲取精华、提高阅读水平的问题,构建了一个基于Android 的移动端助读系统,系统当前精选15本经典中外文学名著,搜集助读资源,实现助读资源的精准推荐,使人们在利用碎片化的时间阅读中外文学名著时,能够获得实时的匹配助读信息,分享阅读感受,同时,通过系统中的专家角审阅、推荐,可以将读者当前做的经典批注转化为系统助读资源,实现助读信息的不断积累、循环,为读者提供了一个积累文学知识、培养文化素养的阅读平台。
关键词
安卓,助读,名著,推送,分享
Copyright © 2019 by author(s) and Hans Publishers Inc. This work is licensed under the Creative Commons Attribution International License (CC BY). /licenses/by/4.0/
1. 引言
随着手机、电子阅读器等电子阅读终端设备的发展与普及,电子阅读以其信息量大、使用方便、经济实惠、节能环保、互动性强等优点,融合视频、语音、大数据智能分析与搜索等全面且强大的功能,逐渐深入大众的生活中[1]。传统纸质阅读方式在电子科技广泛普及的影响下,发生了石破天惊的变化,电子书籍阅读方式越来越大众化。中国新闻出版研究院全国国民阅读调查课题组,所做的第十五次全国国民阅读调查显示,有35.1%的国民倾向于“手机阅读”,我国国民电子阅读方式的接触率正大幅度增长[2]。
19世纪的美国著名作家梭罗说:“经典是人类思想最崇高的记录”。经典之所以是经典,就在于其主题的深刻、思辨的高度和敏锐的洞见,反复阅读经典能让人思维敏锐、视野宽广、情操高尚,对于人格的完善和志趣的培养,也是普通读物难以比肩的。同时也能在阅读中培养读者的爱国情怀[3]。
《义务教育语文课程标准》指出:“7~9年级的学生应学会制订阅读计划,广泛阅读各种类型的读物,课外阅读总数不少于260万字,每学年阅读两三部名著”。同时,名著的教学现状却不尽如人意,教师只勾画出课本上部分的名著片段的主要情节和思想感情等基本信息,然后让学生死记硬背,导致学生
对名著的理解支离破碎[4]。另外文学名著虽是经典的传承,但其本身晦涩的词句和与当今社会脱节的历史背景成为阅读经典之路的绊脚石,基于电子阅读的普及和调查研究结果——有近五成的学生愿意使用手机作为课堂学习的辅助[5],我们无法忽视名著助读系统的必要性。
本文基于Android 系统,利用Java 开发语言,实现了一个包含名著阅读、助读内容精准推荐、阅读感受分享、问答、读者画像等功能的手机应用,系统数据利用MySql 存储在服务器端,利用WebService 为移动端提供数据支撑,本文不包含服务器端的技术实现和数据库系统的设计,主要阐述移动端的设计与实现。
系统的助读资源有两个来源,一是由教师搜集的历史名家对名著所做的批注,属于已有的经典助读资源,在系统中被直接定义为“专家批注”,会在系统中精准地推荐给读者;第二类为读者的阅读感受、笔记,读者分享出来以后,经过教师的筛选、推荐转化为“专家批注”。系统中的助读资源会随着应用的推广、时间的累计,不断丰富,数量也会越来越庞大,此时,必须通过后台对数据的分析、过滤,实现助读资源的精准
侯建峰等
推荐,换句话说,精准推荐同时也用来应对信息过载,精准推送的意义和价值取决于信息过载的程度,助读精准推送的核心是一套推荐机制[6],根据读者的行为数据分析,为用户推荐符合其阅读需求
的助读内容。
2. 关键技术
系统移动端利用Android Studio工具进行开发,架构设计采用MVP (Model View Presenter)模式,将视图逻辑和业务逻辑分离,由于业务逻辑比较复杂,在助读内容精准匹配和数据动态加载、缓存功能上采用多线程技术配合网络请求进行实现。
2.1. MVP架构
MVP架构的核心是将业务逻辑从Activity (或者Fragment)中分离处理,Activity中只处理界面逻辑(显示和交互),将业务逻辑(包括网络请求、数据库的读写等)放入Presenter中,如图1所示,View层对应程序中的界面,Presenter实现界面和模型层的连接,起到桥梁的作用。
Figure 1. MVP structure
图1. MVP结构
2.2. 多线程技术
由于android系统对界面的更新操作全部在主线程中完成,为了避免出现界面卡顿的现象,所有的耗时操作全部要在子线程中完成,耗时操作完成后,再通知主线程进行界面更新,线程间的灵活切换显得异常重要。本文采用ReactiveX实现异步操作,它提供了一个清晰、准确处理异步问题和事件的方法[7],很好的避免了由于耗时操作回调而产生的多层嵌套问题。
在Android Studio中应用ReactiveX,导入RxJava开发包即可,其处理思想称之为观察者模式,两个主要逻辑执行者为Observable和Observer,即被观察者和观察者,被观察者处理耗时操作,处理完成或者处理过程中出现错误,都会发送给观察者消息,观察者根据处理结果,进行其余操作(包括页面更新等),被观察者和观察者可以通过接口指定其执行线程,一般被观察者所处理的操作在非主线程中完成,观察者如果在收到处理结果后要做页面更新,则指定在主线程中实现。
2.3. 数据缓存和动态加载技术
系统数据主要包括名著原文、助读信息、问答列表、用户信息等,其中对名著原文进行移动端数据缓存,其余数据全部通过网络请求实时加载,为了方便对缓存数据进行管理,在Android采用SQLite对数据进行存储。SQLite是一款轻量型的关系型数据库,android系统内置了该数据库,它的运算速度非常快,占用资源很少,非常适合本地持久化存储[8]。为了实现对SQLite的CRUD,本文采用了greenDA
O,它是一个开源的Android ORM (对象/关系映射,如图2所示)开发库,使用简单的面向对象的API来存储,更新,删除和查询数据,可以大大节省数据库相关内容的开发时间[9]。
阅读名著时,对本地数据库原文进行查询操作,以确认是否通过网络请求按章节获取正文,如果从网络获取,成功后即存入本地SQLite数据库,在以后的阅读中直接从本地加载原文,其余数据全部通过网络请求实时加载,网络请求是耗时操作需用到前文中提到的多线程技术,同时为了实现网络请求的功能,系统采用了Retrofit开发库,它是对okhttp的进一步封装,功能强大,支持同步和异步、多种数据的
解析[10],本系统采用JSON数据格式。
侯建峰 等
Figure 2. Object relational mapping model diagram
图2. 对象关系映射模型图
JSON 是一种轻量化的数据交换格式,比XML 更轻量、比二进制更易读,调试也更加方便。本文采用Java 的Gson 类库,对数据进行序列化和反序列化,以实现类对象和JSON 数据之间的转化。
2.4. 助读精准匹配技术
系统实现的精准匹配包含两层含义,首先是个性化推荐,即将用户的历史行为数据通过数学建模,来挖掘用户的兴趣和偏好,以此将用户可能感兴趣的信息筛选出来[11],具体到本系统中是根据用户的阅读习惯、阅读感受分享等行为分析,为用户推荐相关的助读信息,包括名著历史背景、名家赏析等。其次,是将通过搜集的助读信息分别按名著内容进行匹配,又分为三类:热区批注、章内专题、助读频道。
热区批注是针对名著具体的字、词、句的助读信息,在阅读正文时,通过位置计算,将其以虚线的形式展现在阅读页面上。章内专题是针对名著某一章节内容的助读信息,用户可以在阅读过程中,通过点击相应按钮实时获取。助读频道内容比较丰富,是针对具体某一本名著的助读信息,包括视频、音频等比较具象化的助读信息,主要通过网页的形式在APP 内呈现。
3. 系统功能设计与实现
本系统主要分为用户管理、阅读模块、助读模块、问答模块四个模块,整体功能模块图(如图3所示)。
Figure 3. Function module diagram of the whole system
图3. 系统整体功能模块图
3.1. 助读模块
助读模块主要分为热区批注、专题文章、助读频道三个功能板块。
侯建峰 等
android retrofitFigure 4. Annotation effect map
图4. 批注效果图
用户在阅读文章时,可以看到部分文字拥有批注。热区批注分为专家批注,和用户批注,不同类别批注会有不同的显示(如图4所示),专家批注大都来源于搜集的史料,是一些名家对这段内容的赏析;用户批注来源于广大用户,是读者在阅读时所产生的一些见解或想法。用户批注可供分享,交互呈现在批注标签页下,用户可以对这些批注进行收藏、点赞与评论。专家对用户批注拥有置顶、分类和推荐的权力。如果用户批注内容不错,经专家推荐后可成为专家批注(如图5所示)。
Figure 5. User annotation flow chart
图5. 用户批注流程图
专题文章是根据读者所阅读的章节推送一些相关的文章,这些文章可以是章节内容的延伸与扩展,历史背景的介绍,专家的赏析等内容。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论