基于Android平台的慕课视频资源订阅的聚合系统的研究与开发

时间:2022-10-16 09:52:08

基于Android平台的慕课视频资源订阅的聚合系统的研究与开发

摘 要:伴随着移动互联网的飞速发展,基于Android平台的APP应用也争相涌现。RSS作为一种内容聚合技术,广泛用于blog,新闻服务等资讯类信息的订阅,但对于像慕课这类视频资源的订阅却很少。慕课作为一种革新未来教育方式的新兴方向引起了众多专家学者的研究。基于上述情况,我们开发了一款订阅慕课视频资源的聚合阅读器。并在完成核心功能的基础上不断完善和补充新功能。

关键词:阅读器;视频订阅;MOOC;Feed43;Android

一、引言

聚合的三种主要XML格式为 RSS1.0,RSS2.0和Atom,本文中介绍的聚合系统主要用到RSS2.0。RSS(Really Simple Syndication),是在线共享内容的一种简易方式,通常在时效性比较强的内容上使用RSS订阅能使用户更快速的获取信息。通过Feed43制作的RSS输出也可以帮助用户获取网站内容的最新更新。这样可以使用户更高效的获取信息,提高了效率。RSS阅读器是一种聚合系统(Syndication System),聚合系统通常基于客户端-服务器模式。一端是一个Web服务器,它利用超文本传输协议(HTTP)发送数据,而在另一端的一个客户端应用程序接收这些数据。接下来我们分别介绍这两者。

二、聚合系统的实现

2.1RSS的工作原理

聚合系统遵循一个-订阅模式,这是其显著的一个特征。它基于这样的一种通信方式:信息的发送方称为者,它只负责创建信息而不关注是否有订阅者。而订阅者对某种类型的信息或者某个特定源的信息表达出兴趣,并只接受它关心的数据。在Web聚合中,者生成一个给定URL的结构化文档(feed)。订阅者使用专门的工具来订阅该URL。本项目中笔者自己开发了一个基于Android平台的慕课视频资源订阅的RSS阅读器。通常情况下,阅读器会周期性地读取(轮询)URL的文档。该工具自动执行这一过程,比如每小时或者每天执行一次。每当者向feed添加新的项并且移除旧的项时,订阅者在下一次读取该feed时便会接收到新的数据。本课题研究慕课网视频资源的订阅,但是慕课网并不提供feed输出,为此我们通过查阅资料找到一款FEED43这样的工具。FEED43是一个在线应用,可以为不提供Feed的网页生成RSS格式的Feed,以供阅读器订阅。

2.2RSS的实现

慕课网RSS feed文件制作实例:以中国大学MOOC页面为例,由于没有提供Feed,所以用户并不知道什么时候更新,笔者就用FEED43自制一个Feed使用。首先输入页面地址:http:///imooc,编码“utf-8”,点击Reload,就能看到页面代码了。我们的目的是检测页面更新,其实只需要检测视频种类有增加就可以了,所以第一步找到视频分类链接代码,发现视频分类链接代码的规律后,在第二步Define extraction rules,我们输入相应的规则,点击Extract,就能看到第三部分了,经过简单的设置,自制版本的Feed就成功了。详细的步骤见链接:http:///feed43/。

2.3SAX解析算法的研究

RSS 源的数据结构为XML文件,当前Android平台处理读取XMl数据有三种主流方式:1.DOM解析;2.Pull解析;3.SAX解析。由于Android 平台手机系统资源有限,所以笔者选择SAX解析方式,它简单有效且性能消耗较小。

SAX(Simple API for XML)是一个公共的事件驱动的XML文档解析标准,这里简单介绍一下SAX的工作原理。SAX的工作原理简单地说就是对文档进行顺序扫描,当扫描到文档(document)开始、元素(element)开始和结束、文档(document)结束等地方时通知事件处理函数,由事件处理函数做相应的动作,然后继续同样的扫描,直至文档结束。大多数SAX都会产生以下类型的事件:1.在文档的开始和结束时触发文档处理事件。2.在文档内每一XML元素接受解析的前后触发元素事件。3.任何元数据通常由单独的的事件处理。4.在处理文档的DTD或Schema时产生DTD或Schema事件。5.产生错误事件用来通知主机应用程序解析错误。SAX解析的过程如下:1.首先SAXParserFactory来创建一个SAXParserFactory实例;2.根据SAXParserFactory实例来创建SAXParser;3.SAXParser产生SAXReader;4.XMLReader加载XML,然后解析XML,在解析的过程中触发相对于接口的事件处理程序。

三、系统的测试

开发Android软件最后一步需要进行测试,测试分为两种,一种是利用Android自带的虚拟机进行测试,但是利用虚拟机会很卡,Android的AVD很慢,所以笔者在程序中使用真机进行测试。方法如下:(1)一部可正常使用的Android手机;(2)在手机中:设置-->应用程序-->开发-->USB调试;(3)插上USB连接手机;(4)测试连接是否正常,在开始菜单输入CMD命令:adb devices回车,如果显示你的设备名,则表明设备连接正常;(4)改写AndroidManifest.xml

android:icon="@drawable/ic_launcher"

android:label="@string/app_name"

android:debuggable="true">

注意:加的是最后的这句;(5)执行真机调试操作: 在Eclipse中右键项目Debug AsDebug ConfigurationsTarget选项卡选择Manual 点击下面Debug选择你的设备OK,这时你的设备就会开始执行你的Android程序。

四、结束语

本项目由个人大学生创新创业项目而来,课题所设计的基于Android平台的RSS慕课视频资源的阅读器可以合适的显示慕课网站更新内容,它使得慕课网的用户在不登录网站的情况下也可以获取自己订阅课程视频的最新信息。从而节约了时间,大大提高了用户信息的获取效率,同时也减少了频繁访问网站产生的额外的网络通信的消耗。

参考文献

[1]李明亮 学术期刊 《电子世界》 2014年24期 《基于Android的RSS阅读器的设计》

[2]Joe Fawcett,[美]Liam R.E.Quin,Danny Ayers著,刘云鹏,王超译。 《XML入门经典》(第五版),清华大学出版社,2013

[3]张余。《Android网络开发从入门到精通》,清华大学出版社,2014

上一篇:变频调节技术在某电厂引风机上的应用 下一篇:趁年轻赶紧输