1、 基于社交网络的移动应用推荐系统研究及应用重庆大学硕士学位论文(专业学位) 学生姓名:李迎辰指导教师:柳玲副教授学位类别:工程硕士(软件工程领域)重庆大学软件学院二 O一四年四月Research and Application of Mobile Application Based on Social Networking Service A Thesis Submitted to Chongqing Universityin Partial Fulfillment of the Requirement for theProfessional DegreeByLi YingchenSuperv
2、ised by Ass. Prof. Liu LingSpecialty: ME (Software Engineering Field)School of Software Engineering of Chongqing University, Chongqing, China April, 2014重庆大学硕士学位论文 中文摘要摘 要随着互联网、移动通信技术的迅速发展,智能移动终端如手机、平板电脑的大量普及,移动上网已经超越传统 PC上网成为第一大上网 终端1。近年来,移动应用程序市场作为一种新兴的电子商务平台得到蓬勃发展。人们通过手机应用市场安装各种各样的应用程序,给工作、生活、学习来
3、了极大的便利和乐趣。几大应用市场也都即将或者已经迈入百万级的数量,在这样海量的应用程序中查到自己感兴趣的内容对于普通用户来说是件苦恼的事情。而对于应用市场来说,传统检索、分类并不能提高用户购买使用热情,尽管一些应用市场加入了一些推荐技术,但是冷启动、数据稀疏性问题依然严重。与此同时,社交网络作为一种面向社会性网络的互联网服务平台,在互联网领域发展迅速。使用者可以通过“朋友的朋友”建立起朋友关系,也可以和不熟悉但是性格、兴趣相近而用户建立关系。社交网络社区得到了用户的青睐,在线上、线下都发挥着越来越来重要的作用。本文针对目前移动应用市场在个性化推荐过程中,特别是协同过滤推荐中面临的数据稀疏性问题
4、,在研究了社交网络、协同过滤推荐相关理论技术后,提出一种基于社交网络的协同过滤推荐方法模型并对其进行了验证,在此基础上设计并实现了基于社交网络的移动应用推荐系统原型。本文完成的主要工作如下:研究了个性化推荐技术 、社交网络理论的国内外 现状,分析目前推荐系统普遍面临的问题,探讨把社交网络运用到推荐系统的可行性。针对本文的 应用场景研究了 Android开发、协同过滤推荐相关技术、社交网络社区发现算法,对比分析了协同过滤的三种推荐方式的优缺点。研究了社交网络中用户兴趣模型的获取和计算方式,提出一种基于社交网络的协同过滤推荐模型并进行验证分析。针对推荐模型 设计基于社交网 络的移动应用推荐系 统的
5、移动端和服务端。移动端用于收集用户数据,相应请求等,服务器用于数据分析和推荐模型的处理。实现了移动应 用推荐系 统主要模块的原型。包括客 户端的用户操作行为数据的获取和推荐应用程序的展示,服务端社交网络模块和推荐模块。通过实例对 原型系统进 行了验证,验证了模型设计 的可行性和有效性,对原型系统进行了分析并归纳总结。关键词:移动互联网,社交网络,协同过滤推荐,移动应用推荐I重庆大学硕士学位论文 英文摘要ABSTRACT With the rapid growth and wide popularization of the Internet, mobilecommunication techn
6、ology and the smart mobile terminals like mobile phones andtablet PCs, the number of mobile internet users has enjoyed explosive growth. Going farbeyond the traditional PC-based internet access, the mobile internet has become themajor internet terminal.As a special e-commerce platform, the mobile ap
7、plication market has beenbooming in recent years. From the mobile application market, people can install variousapplications, which provides great convenience and pleasure to their work, study andlife. The number of applications in some major markets is reaching or has reached onemillion, and search
8、ing some applications users are interested in among the vast list hasturned out to be a trouble to most normal users. Traditional searching and classificationfall to heighten the enthusiasm of users to buy or install the application, whichstimulates application markets to make a change. Although som
9、e application marketsoffer recommendations based on the content, and even utilize personalizedrecommendation techniques like collaborative filtering, problems such as cold start anddata sparsity remain serious. Meanwhile, social networking services, as an internetservice platform facing social netwo
10、rk, has been rapidly developing on the internet.Users can establish friendship through“friends of friends”, and they also can makefriends with those who are unfamiliar but share the similar characteristics and interests.Social network community has gained great popularity, and it will place an incre
11、asinglyimportant role online or offline.For the data sparsity in the process of personalized recommendation on mobileapplication market, especially in the collaborative filtering recommendation, afterstudying the related theory and technology of social network and collaborative filteringrecommendati
12、on, this study presents and verifies a model which is based on socialnetworks collaborative filtering recommendation. On this basis, it also sets out thedesign and implementation of a system prototype for mobile applicationrecommendation based on the social network.This paper has accomplished the fo
13、llowing tasks: The paper studies the research status at home and abroad about personalizedrecommendation. For the application scenarios in this study, the paper researches relatedII重庆大学硕士学位论文 英文摘要theories about Android development, techniques about personalized recommendationand social network. Afte
14、r comparing advantages, defects and usage scenarios of three kinds ofcollaborative filtering recommendations modes, this paper analyzes the acquisition andcompute mode of the user interest model in the social network, and sets out acollaborative filtering recommendation model based on social network
15、 and then verifyit. For the model of recommendation, this paper designs mobile side and serverside of mobile application recommendation system based on social network. The mobileside is used to collect user data, corresponding requests and etc., while the server side isused for data analysis and pro
16、cessing of recommendation model. The major module prototypes of mobile application recommendation systemare designed and implemented in this paper, including data acquisition of usersoperation, the display of recommended applications from the client side, as well asmodules of both social network and
17、 recommendation from the server side. The prototype system and the feasibility and effectiveness of the model designare also verified through examples. After analyzing the prototype, the paper summarizesthe points and reaches the conclusion.Keywords: Mobile Internet, Social Network, Collaborative Fi
18、lteringRecommendation, Mobile Application RecommendationIII重庆大学硕士学位论文 目 录目 录中文摘要I英文摘要 II1绪论 11.11.21.31.4课题研究背景与研究意义 1国内外研究现状 2本文的主要工作 3本章小结 42相关技术分析 52.12.22.3ANDROID开发 5社交网络理论 10个性化推荐理论 14基于关联规则推荐 15基于内容的推荐 16协同过滤推荐 17本章小结 212.3.12.3.22.3.32.43基于社交网络的协同过滤推荐模型研究 . 223.1 社交网络中用户模型 22用户兴趣模型获取 22用户兴趣模
19、型表示 23混合用户兴趣模型计算 24基于社交网络的协同过滤推荐模型 26问题的提出 26数据模型定义 26方法基本思想 27方法流程描述 27实验设计及分析 31本章小结 343.1.13.1.23.1.33.23.2.13.2.23.2.33.2.43.33.44基于社交网络的移动应用推荐系统设计 . 354.14.24.3需求分析 35设计目标 36系统体系结构 36IV重庆大学硕士学位论文 目 录4.4 服务端的设计 37系统功能设计 38社交网络模块 38应用程序推荐 39客户端的设计 40客户端功能架构 41检测用户行为数据 43应用程序推荐模块 43本章小结 444.4.14.4
20、.24.4.34.54.5.14.5.24.5.34.65基于社交网络的移动应用推荐系统实现 . 465.1 服务端功能实现 46社交网络模块实现 46推荐模块实现 47客户端功能实现 48用户信息模块 48应用程序推荐 49客户端与服务器端通信实现 50JSON数据解析 50HTTP传输协议 . 51系统应用实例及分析 53本章小结 565.1.15.1.25.25.2.15.2.25.35.3.15.3.25.45.56结论与展望 . 576.16.2结论 57工作展望 57谢. 59致参考文献. 60附 录. 63V重庆大学硕士学位论文 1 绪论1 绪论1.1课题研究背景与研究意义近年来
21、,随着移动互联网的发展和智能终端的普及,手机、平板电脑逐渐成为一种重要的上网设备。来自中国互联网络信息中心(CNNIC)发布的第 33次中国互联网络发展状况统计报告显示。截止 2013年 12月底,中国网民数达到 5.64亿,手机网民达到 5亿,约占 81.0%。移动互联网展示出巨大的发展潜1。同时,移动应用市场也蓬勃发展,从苹果公司 iOS系统的 App Store到谷歌安卓系统的 Android Market 以及微软的 Windows Store,基于平台化的应用安装越来越流行。而主流移动操作系统 iOS的 App Store和 Android的 Google Play相继迈入百万应用市
22、场,苹果公司在 2013年 9月发布 iPhone 5s/iPhone 5c时宣称 App Store拥有超过 100万款应用2,在维基百科 Google Play页面显示其应用数量在 2013年7月也已突破 100万大关3,后起者 Windows 8应用数目前也突破 10万大关4。可以预测今后通过系统平台安装应用软件会成为一种趋势。然而,面对各大应用商店里面海量的应用程序,目前的比较普遍的主要有三种:其一,用户可以通过关键字搜索,系统按照关键字匹配列出相应的应用程序;其二,系统根据应用程序类型分门别类,用户进入该类型后查找应用程序;其三,在某应用程序下面推荐类似的应用程序。但是要想从数量巨大
23、的应用程序中发现或者探索自己感兴趣的应用仍然是个非常繁琐的问题,现在有一些升级的解决方案,比如根据用户过去下载的应用程序或者过去评价的应用程序,推荐可能跟兴趣的应用程序。这种方案相对普通检索来说改进的一些,然而,还是存在一些问题的。首先,用户下载安装的应用程序并不能代表他真的对这款应用程序感兴趣,也可能是看到该应用程序排名比较靠前下载试玩一下。其次根据用户评价使用过的应用来推荐也是有一点难度的,某些用户由于各种原因没有及时评价应用程序的习惯从而使数据非常稀疏。社交网络(Social Network)是基于六度分隔理论发展起来的一种面向社会性网络的互联网服务,通过“熟人的熟人” 来进行网站社交拓
24、展。不 过随着社交网络应用领域的不断扩展,目前的其服务已经不至于仅限于“熟人的熟人” 的层面,用户可以搜索发现与自己有共同兴趣爱好的用户,建立基于特定需求的社会关系,从而扩大社交圈。正是因为提供这样的服务功能,社交网络社区得到了用户的青睐,在线上、线下都发挥着越来越来重要的作用。近年来,移动通信技术的发展迅速。越来越多的研究统计表明,移动互联网正慢慢成为人们使用网络的主要方式。与此同时,移动互联网用户在数量上也呈“井喷式增长” ,目前是第一大上1重庆大学硕士学位论文 1 绪论网终端1。2013年 12月 4日,工信部向三大运营商颁发了 4G 牌照,4G 网络、终端、业务正式从实验室走向商用。伴
25、随着移动 4G 网络的应用以及智能移动终端的普及,移动社交网络逐渐成为备受业界关注的领域。对于社交网络来说,移动化也是一种趋势,它一方面提供用户实时、便捷线的线上网络服务,另一方面,它也为移动运营商、互联网公司提供了新的业务机遇。然而,在发展迅速的背后,传统互联网中的信息过载问题却同样出现在移动互联网中,和传统互联网主要基于 PC 显示方式不同,移动 互联网终端存在的诸多限制因素(如 处理器性能、屏幕大小以及页面排版适应性等)无疑加重了信息过载状况,因此在移动互联网中,通过个性化推荐技术,根据用户的活动行为数据为其展示、推送可能感兴趣的信息,不仅能够提高用户使用体验,增加用户对服务的“黏度”
26、,而且有利于合理配置资源,提高企业利润。因此,个性化服务技术在移动互联网领域有广阔的应用前景。移动互联网的迅速发展、智能终端的普及为人们的生活带来了很大便利。社交网络服务的流行,为个性化推荐提供了基础数据,通过对用户数据的分析,能够挖掘出用户的兴趣,真正实现个性化推荐,避免被淹没在海量应用程序的选择中,有效的节省时间。因此,本文提出一种基于社交网络的移动应用推荐系统。1.2国内外研究现状国外对于个性化服务的研究比国内要开始的早,理论和经验都比国内要成熟。1995年3月,卡内基梅隆大学的Robert Armstrong等人在美国人工智能协会主办的年会(AAAI,The National Conf
27、erence on Artificial Intelligence)上提出了个性化导航系统Web Watcher,斯坦福大学的Marko Balabanovic等人在这次会议也推出了个性化推荐系统LIRA。1995年8月的国际人工智能联合大会(IJCAI),麻省理工学院的Henry Lieberman提出了个性化导航智能体Letizia。这三个系统是公认的个性化服务经典系统,它们也标志个性化服务的开始。随后个性化服务被广泛应用在互联网服务领域,1996年,卡内基梅隆大学的Dunja Mladenic对Web Watcher 进行了改进,推出了个性化推荐系统Personal Web watche
28、r5。同年互联网巨头Yahoo公司也推出个性化页面My yahoo,用户可以自由定制个人首页,网站也会根据用户喜好推荐个性化资讯信息。2000年4月,以美国为主导的多国联合个性化研究机构和网络公司成立了个性化协会,该协会旨在推动个性化服务的发展与应用。同一时期,我国的一些科研机构也在开展个性化服务研究,并提出了一些原型系统。清华大学的路海明等提出了基于多Agent混合智能系统实现个性化推荐。浙江大学自主研发了个性化信息检索系统NetLooker。南京大学的潘金贵等设计出了个性化信息搜集系统DOLTRI-Agent6 。2重庆大学硕士学位论文 1 绪论进入2000年后,随着电子商务的蓬勃发展,个
29、性化推荐服务逐渐被应用于电子商务领域,如国外知名的购物网站Amazon 、eBay 、国内淘宝、京东、当当网等,网站根据用户的浏览记录、收藏、历史购物记录等向用户推荐商品,达到了很好的用户体验。在非电子商务领域,如Flickr、豆瓣网、虾米网等,这些网站根据用户的兴趣分别向用户推荐图片、图书电影、音乐。互联网电子商务领域的应用为移动个性化服务提供的参考模型。近年来,随着移动通信网络快速发展,相对于传统网络移动网络提供了更为丰富、多元、便捷的服务,通过手机/平板电脑等智能移动终端获取信息逐渐成为人们获取信息的主要方式之一,如浏览新闻、听音乐、看视频、发邮件、玩游戏、进行社交活动等。加之移动网络因
30、其方便识别用户、普及率高、移动性等优势,移动推荐系统(Mobile recommender system) 7通过获取用户兴趣偏好来过滤不相关信息,为用户提供个性化服务逐渐成为缓解移动信息过量的有效方式8。国外许多研究机构、大学对移动推荐系统开展了研究,将传统在线网站中的推荐系统算法和模型应用与移动网络环境,并取得一些研究进展及应用案例。文献9提出根据移动通信网络的服务内容以及用户反馈信息等,为用户推荐可能感兴趣的服务。文献 10 提出可以利用移动设备可移动特性,在设备中加入无线传感器,记录用户日常生活的习惯,再通过算法模型为用户提供推荐。应用领域苹果IOS应用平台的Genius功能,Genn
31、ius根据用户所下载的应用软件,了解用户的喜好产生推荐,挺实用Genius的时间越久,收集的喜好越多,推荐的可能也越精确,这项功能基本可以理解为是基于内容的个性化推荐。然而基于这种推荐也面临的问题,用户下载的可能并非是自己真正需要和喜欢的应用,移动平台因其屏幕小、网络带宽有限,推荐应该包括用户个人信息、用户兴趣偏好、用户社交网络等。1.3本文的主要工作移动通信技术的发展、移动智能终端的普及使得人们对于移动应用的需求迅速增大,从效率工具到游戏娱乐,从社交应用到教育医疗。然而对于用户来说,在海量应用程序中发现自己感兴趣的应用太过于繁琐。因此,本文提出基于社交网络的移动应用推荐系统,结合社交网络中朋
32、友圈兴趣相似的特征帮助用户快速的找到或者推荐感兴趣的应用。本文章节结构如下:第1章为绪论,讲述了本课题研究背景与研究意义、目前国内外研究现状和本文要完成的主要工作。第2章介绍了社交网络、个性化推荐相关的关键技术。第3章对社交网络中社区发现算法进行了研究,根据用户网络定义对传统协同过滤推荐算法和基于社区的协同过滤推荐算法进行研究。第4章在前面研究工作的基础上,设计出基于社交网络的移动推荐系统。第5章实现了该系统。3重庆大学硕士学位论文 1 绪论第6章是结论和展望。具体来说,本文主要完成了一下几个方面的工作:调研国内外社交网 络和个性化推荐的研究 现状,分析目前移 动领域应用推荐所欲的问题,为后续
33、研究做准备。在查阅文献 资料的基础 上,介绍了社交网络理论 基础,对社交网络的网络结构和社区发现算法进行了研究分析,详细介绍了基于关联规则、基于内容和协同过滤三种个性化推荐研究并对比了优缺点。结合上述研究提出了基于社交网络的协同过滤推荐模型,介 绍了推荐模型了用户模型的获取、表示和计算,详细介绍了基于社交网络的协同过滤推荐模型的流程并进行实验验证。将通过用户 模型建立的社交网 络加入协同过滤推荐中, 设计并实现了基于社交网络的移动应用推荐系统。1.4本章小结本章论述了个性化推荐以及社交网络的应用发展现状,提出了把个性化推荐和社交网络结合起来的应用价值,指出了课题研究的意义,探讨了国内外个性化推
34、荐的研究现状,最后提出了本文的研究工作。4重庆大学硕士学位论文 2 相关技术分析2相关技术分析2.1 Android开发随着智能手机、平板电脑的普及以及网络带宽的不断扩容,移动终端平台迅速发展,形成了以 Google Android、Apple IOS、Microsoft Windows Phone为代表的移动终端操作系统,这其中 Google Android以其平台开放的特征吸引了众多手机厂商、移动运营商、开发者的支持。以下内容就 Android平台、系统架构、数据传输等进行研究和介绍。ApplicationHome Contacts Phone Browser Application Fr
35、ameworkActivityManagerWindowManagerContentProviderViewSystemNotificationManagerPackageManagerTelphoneManagerResourceManagerLocationManagerXMPPManagerLibraries Android RuntimeSurface Manager Media Framework SQLiteCore LibrariesDalvik VMOpenGL|ESSGLFreeTypeSSLWebKitLibcLinux KernelDisplayDriverCameraD
36、riverBluetoothDriverFlash MemDriverBinder(IPC)DriverUSBDriverKeypadDriverWiFiDriverAudioDriverPowerManager图 1.1 Android系统架构图Fig. 1.1 Android system architecture Android平台介绍2007年 11月 5日,Google联合其他 34家手机制造商、软件开发商、电信运营商和芯片制造商一同成立开放手持设备联盟( Open Handset Alliance,简称OHA)。同时推出 Android(中文称安卓),一个以 Linux为基础的开源
37、操作系统,主要用于便携设备,如手机、平板电脑等。通过与设备制作商、软件开发商、运营商以及其他各方的合作,Google希望借此建立一个标准化、开放式的移动电话软件平台,形成一个开放式的移动生态系统。该平台由操作系统、中间件、用户5重庆大学硕士学位论文 2 相关技术分析界面、应用软件组成,号称是首个为移动终端打造的真正的开放的和完整的移动软件。Android在国内外发展前景十分广阔,目前,最新的版本为 Android4.3 KitKat。和其他移动智能操作系统如:Apple iOS,Windows Phone相比 Android系统架构Android的系统构架主要由以下五部分构成: Applica
38、tion(应用程序层),Application Framework(应用架构层),Libraries(系统运行库)、Android运行环境(Android Runtime),Kernel层(Linux内核层)11 ,如图 1.1:以下分别对系统构架中的每个层进行介绍:1)应用程序层(Application ):应用程序层是 Android的应用层,主要是一些 Android系统的核心应用程序,包括联系人管理程序、SMS短消息、电子邮件、日历、浏览器等,也是 Android提供用户的基本功能。2)应用程序框架层(Application Framework):主要是为 Android开发者设计的,
39、如图,应用程序框架层提供活动管理器( Activity Manager)、窗口管理器(Window Manager)、内容提供器( Content Provider)、视图系统(View System)、通知管理器(Notification Manager)、电话管理器(Telephony Manager)、位置管理器(Location Manager)等功能,开发人员通过访问 所需框架组件的 API编写功能丰富的应用程序。3)系统运行库(Libraries):Android系统包括一个 C/C+库的集合,这些库能被应用程序框架中的不同组件使用,如:负责管理显示与存取操作活动、2D 绘图与 3
40、D绘图显示合成的 Surface manager,处理 3D效果的 Open GL|ES ,处理 2D显示绘图引擎的 SGL,支持多种影音格式的 Media Framework 库,处理向量字形和显示位图的 FreeType ,网页浏览器引擎 WebKit,BSD标准系统 C类库 libc ,同时还提供了 SQLite库,一个轻量级、功能强大、应用程序可用的关系型数据库引擎。4)Android运行时(Android Runtime):Android应用程序是由 Java语言开发,但是却不是使用标准 Java运行时组件运行 Java程序,而是由 Google自行研发的 Android运行时组件来
41、执行程序。其由两部分构成核心库和 Dalvik虚拟机。a)核心 类库(Core libraries),核心类库提供了 Java所需要的调用的大部分类库,还包括一些 Google自行开发的 Android Java类库,如 android.os、、android.media等。b)Dalvik虚拟机,Dalvik虚拟机主要功能是为 Android应用程序提供运行时环境,相当于 JVM12,每个 Android应用程序都是 Dalvik虚拟机中的一个实例,运行在自己单独的进程中。Dalvik虚拟机和 Java虚拟机(JVM)的区别主要以下三个方面:第一,Dalvik基于寄存器(Register-b
42、ased),而 JVM基6重庆大学硕士学位论文 2 相关技术分析于栈(Stack-based )。第二,运行环境不同,为了适应手机、平板等受限环境,Dalvik允许在有限的内存中同时运行多个虚拟机的实例,并且每一个 Dalvik应用作为一个独立的 Linux进程执行。第三,不同于 Java虚拟机运行的是 Java 字节码(bytecode),Dalvik虚拟机运行的是其专有的文件格式 dex ,dex文件格式针对手机运行环境内存小的特点进行了优化,可以减少文件尺寸,提供读写操作的类查找速度。5)Linux Kernel,系统内核层,主要负责硬件驱动程序、电源、网络、系统安全、进程管理以及内存管
43、理等功能,同时 Linux内核也作为软件和硬件之间连接的抽象层,是软硬件沟通的桥梁。目前 Android4.1/4.2/4.3版本基于 Linux Kernel3.4.0内核,较之前版本,系统的流畅度更好,应用程序效果体验更佳。 JSON数据传输JSON全称 JavaScript Object Notation,JavaScript 对象符号,是一种轻量级的数据交换格式。易于阅读和编写,同时也易于机器解析和生成。 JSON基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集,采
44、用完全独立于语言的文本格式,同时也使用了类似于 C语言家族的习惯(包括 C, C+, C#, Java, JavaScript, Perl, Python等)。这些特性使 JSON成为理想的数据交换语言13 。1) JSON语法结构JSON构建于以下两种结构:a.对象,一个 对象是一系列无序的 “名称 /值”对的集合,以“”开始,并以“”结 束,每个“ 名称/值 ”对之间用“,”分开。object 名称 : 值 ,图 2.1 对象格式Fig. 2.1 Object Format示例: var student=“name ”:”eason”,”age”:25,”class”,”computers
45、cience”。表示 student对 象包含三个元素:name , age,class ,他们的值分别是eason,25,computer science 。b.数组:是值的有序集合,可以表示为对象的集合。以“” 开始,并以“”7重庆大学硕士学位论文 2 相关技术分析结束,值之间用“ ,”分开。array 名称 ,图 2.2 数组格式Fig. 2.2 Array Format示例:var students=jack,tom,eason ,表示在 students数组中包含三个元素jack,tom,eason。 JSON序列化与反序列化根据 JSON 语 法结构可知,JSON 格式的数据可以描
46、述一个相当复杂的对象或者对象的集合,而对象无法在客户端和服务器之间有效传输,因此使用对象传输过程中的序列化和反序列化就显得非常重要,通常序列化( Serialization)是指将对象的状态信息转换为可以存储或传输的格式的字节的过程,反序列化是将字节序列恢复为对象的过程。应用到 JSON数据传输就是对象如何序列化成 JSON格式的数据以及 JSON格式数据如何解析并封装成对象。 JSON与 XML格式对比XML(eXtensible Markup Language ,可扩展标记语 言)是万维网协会 W3C 组织定义的一种数据传输和交互的标准语言,也是一种跨平台的、依赖于内容的、可扩展标记语言,
47、是标记处理结构化文档内容的有力工具 14 。在异构系统之间,经常利用 XML传输数据。然而使用 XML的描述文档信息偏重于对文档信息的描述,文档信息本身包含了大量冗余标签,导致传输效率降低15 16。 JSON相对于XML则可以有效的减少数据格式中的冗余标记,减少占用 带宽。如下一段 XML文档:2011123001Jack8重庆大学硕士学位论文 2 相关技术分析male222011123002Tommale23这段 XML代码使用 JSON格式表示如下:“studentlist“:“student“:“no“:“2011123001“,“name“:“Jack“,“sex“:“male“,“
48、age“:“22“,“no“:“2011123002“,“name“:“Tom“,“sex“:“male“,“age“:“23“从上面示例代码可以看出, JSON格式在数据传输过程中的代码体积要小于XML格式。另外由于 JSON是 JavaScript的一个子集,因此可以通过 JavaScript的eval()函数来读 取 JSON格式,如果使用第三方的数据可以通过浏览器支持的JSON.parse(str)方法读取 JSON 格式,目前大部分主流浏览器已经支持该方式(IE8+,FireFox3.5 ,Chrome4+/Safari4+,Opera10+)。与 XML格式最大的不同在于 XML是
49、一个完整的标记语言,而 JSON是 JavaScirpt支持的一种数据表述格式,XML利用标记语言的特性提供了绝佳延伸性(如: XPth),在数据存储、检索方面具备对 JSON的优势,而 JSON 的优势在于小巧,以及解析方便等,使得其等适用于移动终端与服务器之间的网络传输,总体上来说 XML 比较适合标记文档,JSON则 更适用于 传输文档。1)基于 JSON的数据传输技术9重庆大学硕士学位论文 2 相关技术分析Android设备 Web Server客户端请求响应客户端解析JSON并JSON对象 数据库显示图 2.3 JSON数据交换图Fig. 2.3 JSON Data exchange process2.2社交网络理论社交网络的概念起源于图论,而其研究可以追溯到 1763年欧拉(Euler)证明了 Koenigsberg七桥问题,该问题开