基于+Android+平台的手机桌面资讯系统的设计与实现.pdf_第1页
基于+Android+平台的手机桌面资讯系统的设计与实现.pdf_第2页
基于+Android+平台的手机桌面资讯系统的设计与实现.pdf_第3页
基于+Android+平台的手机桌面资讯系统的设计与实现.pdf_第4页
基于+Android+平台的手机桌面资讯系统的设计与实现.pdf_第5页
已阅读5页,还剩77页未读 继续免费阅读

基于+Android+平台的手机桌面资讯系统的设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

题题(中、英文)(中、英文)目目 基于基于 android 平台的手机桌面资讯系统的设计与实现平台的手机桌面资讯系统的设计与实现 the design and implement of the mobile desktop information system based on the android platform 作者姓名作者姓名 卢卢 娜娜 指导教师姓名指导教师姓名、 职务职务 白丽娜白丽娜 高工高工 学学科门类科门类 软件工程软件工程 提交论文日期提交论文日期 二一一年六月二一一年六月 学科、专业学科、专业 软件工程软件工程 代号代号 分 类 号分 类 号 学号学号 密级密级 1070110701 tp319tp319 公开公开 1008206310082063 西安电子科技大学西安电子科技大学 学位论文独创性(或创新性)声明学位论文独创性(或创新性)声明 秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在 导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标 注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成 果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说 明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关的法律责任。 本人签名: 日期 西安电子科技大学西安电子科技大学 关于论文使用授权的说明关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保 留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内 容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后 结合学位论文研究课题再攥写的文章一律署名单位为西安电子科技大学。 (保密的论文在解密后遵守此规定) 本学位论文属于保密,在 年解密后适用本授权书。 本人签名: 日期 导师签名: 日期 摘要摘要 随着移动通信与 internet 的飞速发展与相互融合,资讯服务在互联网上的发展 日臻成熟。移动终端手机作为新兴的主流媒体,早已渗透到人们的日常生活, 成为人们的主流信息获取平台。由此,传统、成熟的资讯服务只有与移动平台功 能相结合,制定基于移动平台的解决方案,才能更好地为用户提供丰富多种的用 户体验。android 作为新兴的移动平台,以其优良的系统性能和人性化的 ui 设计, 成为解决方案中的最优选择。 本文针对手机用户的需求, 设计并实现了基于 android 平台的手机桌面资讯系 统。系统服务端采用 memcached 缓存技术和支持高并发访问的 nginx 技术,为系 统提供各种功能接口,完成用户界面显示数据功能。系统客户端利用 android widget 技术,结合客户端业务无关性的思路,将通用浏览器与个性化客户端融合, 完成了数据的解析展示功能。 通过 android 模拟器和 g3 手机进行测试,结果表明基于 android 平台的手机 桌面资讯系统能够提供内容同步、内容展示和个性化订阅等功能。用户界面友好, 操作便捷,提高了手机用户自由获取信息的速度,增强了手机用户人性化的体验 效果,具有良好的可扩展性和业务无关性。 关键词:资讯服务 android widget 业务无关性 abstract as mobile communication and the rapid development of internet with mutual confluence, information services on the internet development more and more mature gradually.mobile phones as emerging mobile terminal - the mainstream media, have already penetration to peoples daily life, become peoples mainstream information platform. thus, traditional, mature information service only with mobile platform, formulate combined functions based on mobile platform solutions, to better provide users with rich variety of user experience. android as emerging mobile platform, with its excellent performance and humanized ui design, become the optimal choice solutions. aiming at the cell phone users requirements, design and realized based on android platform mobile desktop information systems. system server using mature memcached cache technology and support high concurrent access to nginx technology, the system to provide all sorts of function interface for user interface display data, complete function. the system client use android widget technology, combined with the client business irrelevance, the idea will gm browser and individualized client fusion, completed data analytical display function. through the android simulator and g3 tested and the results showed that the mobile phones based on the android platform mobile desktop information system can provide content synchronization, content display and individualized subscription etc. function. user friendly interface, convenient operation and improve the cell phone users free access to information, increased the speed of cell phone users humanized experience effect, has good expansibility and business irrelevance. key word: information service android widget business irrelevance 目录目录 第一章 绪论 1 1.1 选题背景及研究意义 . 1 1.2 国内外研究现状 . 1 1.3 主要研究内容 . 3 1.4 论文结构 . 3 第二章 相关技术概述 . 5 2.1 android 平台介绍 . 5 2.1.1 android 平台的组成 . 5 2.1.2 android 应用程序框架 . 5 2.1.3 android 应用程序类型分析 . 7 2.2 memcached 技术 . 8 2.3 nginx 技术 11 2.3.1 nginx 优点 . 11 2.3.2 nginx 性能描述 11 2.4 客户端业务无关性 . 13 2.5 android widget 技术 . 13 第三章 手机桌面资讯系统需求分析 15 3.1 系统整体架构 . 15 3.1.1 系统逻辑结构 . 15 3.1.2 系统软件体系结构 . 16 3.1.3 服务端组网设计 . 17 3.2 系统功能用例分析 . 18 3.2.1 客户端功能用例分析 . 19 3.2.2 服务端功能用例分析 . 21 3.3 客户端功能需求分析 . 22 3.3.1 客户端登录功能 23 3.3.2 资讯浏览功能 23 3.3.3 内容同步功能 . 25 3.3.4 客户端设置功能 26 3.4 系统非功能性需求分析 27 3.5 软件生命周期过程选型 27 第四章 手机桌面资讯系统客户端设计与实现 29 4.1 客户端业务流程设计 29 4.1.1 登录 29 4.1.2 内容同步 . 30 4.1.3 浏览新闻列表 . 31 4.1.4 浏览内容详情 . 31 4.1.5 个性化订阅频道 . 32 4.2 客户端功能设计 . 33 4.2.1 内容同步 . 33 4.2.2 内容显示 . 35 4.2.3 个性化订阅频道 . 36 4.3 客户端功能实现 . 36 4.3.1 桌面 widget 功能实现 36 4.3.2 内容详情页功能实现 . 41 4.3.3 列表页功能实现 . 44 4.3.4 个性化频道订阅功能实现 46 4.4 异常处理 . 47 4.5 性能处理 . 48 第五章 运行与测试 . 51 5.1 测试环境搭建与系统部署 51 5.2 客户端功能测试 . 53 5.2.1 登录功能测试 . 53 5.2.2 内容同步功能测试 . 53 5.2.3 内容显示功能测试 . 54 5.2.4 个性化频道订阅测试 . 56 5.3 客户端接口系统压力测试 56 第六章 工作总结与展望 . 61 6.1 工作总结 . 61 6.2 展望. 61 致谢 63 参考文献 65 附录 67 附录 a. 67 附录 b . 71 第一章 绪论 1 第一章第一章 绪论绪论 1.1 选题背景及研究意义 据 cnnic(中国互联网络中心)发布的第 27 次中国互联网络发展状况统计 报告 1显示, 截至 2010 年底, 我国网民规模达到 4.57 亿, 较 2009 年底增加 7330 万人;我国手机网民规模达到 3.03 亿,依然是拉动中国总体网民规模攀升的主要 动力,这预示着更多的经济活动步入互联网时代。随着我国网民上网设备多样化 的发展, 智能手机迅速地走进了普通人的生活,它将成为人们获取信息的主要设备。 因此,手机的应用服务将会有很大的发展空间,手机桌面资讯服务就是其中的一项。 2010 年 1 月 13 日,国务院总理温家宝主持召开国务院常务会议,决定加快推 进电信网、广播电视网和互联网三网融合。这为移动互联网的应用提供了巨大的 发展契机。三网融合2,在概念上从不同角度、不同层次上分析,可以涉及到技术 融合、业务融合、行业融合、终端融合及网络融合。融合以后,不仅信息传播、 内容和通信服务的方式会发生很大变化,还将衍生出更加丰富的增值业务类型。 最快、最便捷地获取最需要的信息是网民上网的基础需求。互联网平台正是这样 一个信息资讯的融合平台。国内各大门户网站,如新浪、搜狐、网易等无一不是 以内容取胜。那么,如何在屏幕有限、方便携带的手机上获取用户最想要的资讯 信息,这将是未来研究的热点。 本文对基于 android 平台的手机桌面资讯系统进行应用研究, 系统服务端采用 成熟的 memcached 缓存技术、支持高并发访问的 nginx 技术,系统客户端利用 android widget 技术结合客户端业务无关性的思路, 将通用浏览器和个性化客户端 很好的融合,实现了手机用户对桌面资讯服务的需求。通过该应用系统的研究与 开发,大大方便用户自由获取信息的需求,顺应了时代发展的需要,进一步扩展、 增强和完善手机信息服务系统, 充分利用 android 平台其自身开源及无缝集成互联 网的特点,有效降低了软件成本,实现了手机桌面资讯系统客户端业务无关性的 设计,成为手机桌面资讯服务崭新而重要的应用。 1.2 国内外研究现状 在手机端提供资讯服务应用一般有两种方式:一是通过 wap 技术,以 wap 网站的方式获取信息;二是通过手机客户端的方式获取信息。 经调研,目前较为流行的服务类客户端,如 wap 门户网站、uc 桌面、qq 桌面以及 12580 手机客户端等。本文所研究的手机桌面资讯系统,在系统性能方 基于 android 平台的手机桌面资讯系统的设计与实现 2 面与上述客户端的对比,如表 1.1 所示。 表 1.1 手机客户端系统性能对比表 产品名称 功能强 用户体验好 扩展性强 wap 门户网站 uc/qq 桌面 12580 手机客户端 手机桌面资讯客户端 各大 wap 门户网站,如手机新浪网、手机腾讯网、空中网、3g 门户等,均 有新闻中心栏目,提供国内外要闻、体育、娱乐、生活等分类信息。优视科技的 ucweb整合了这类 wap 门户网站, 通过自己的服务器转发访问外部的 wap 网站。 其自身服务器只完成数据压缩、数据缓存等功能。这样就确保了 ucweb 具有流量 小、速度快的特点。然而,ucweb 是基于 wap 技术的,其用户界面简陋,用户 体验不友好,并且各类 wap 门户网站所提供的服务同质严重。用户需要分级、分 页地寻找所关注的信息,这样导致检索信息时间较长。 信息服务类客户端,如 uc 桌面、qq 桌面,具有桌面动态显示、桌面天气定 制、个性资讯订阅、通话计费等功能,通过手机桌面以滚动显示最新资讯及当地 天气信息。用户激活客户端后就进入了客户端新闻资讯列表页面。查看某条资讯 内容时,客户端再激活手机浏览器来显示对应的 wap 页面内容。这种提供资讯内 容的方式虽然业务逻辑简单、清晰且易扩展,但是用户在查看具体内容页的内容 时,需要打开手机浏览器,响应速度较慢,用户体验不统一。并且具体内容页采 用 wap 技术实现,界面效果简陋,没有丰富的媒体资源。 生活服务类手机客户端,如 12580 手机客户端。用户界面直观清晰,一般在 登录后的第一屏就直接列表显示功能菜单。用户点击选择后就直接进入所需要的 功能界面。这种通过手机平台客户端的技术,可以实现较丰富的页面效果,如透 明图、背景图、小动画等。相比 wap 技术,手机客户端与服务端之间传递的数据 量更小,速度更快,用户体验更友好。但是,由于手机客户端业务有关性的特点, 其业务功能逻辑的实现均由客户端完成,以及手机硬件性能的限制,导致其功能 单一,扩展性较差。 本文所研究的基于 android 平台的手机桌面资讯系统, 结合了普通浏览器与手 机客户端的优点,平衡了通用布局与手机客户端用户体验效果之间的矛盾,提出 了客户端业务无关性的概念,满足了手机用户的桌面资讯服务需求。 第一章 绪论 3 1.3 主要研究内容 本文主要研究基于 android 平台的手机桌面资讯系统的设计与实现。 涉及了手 机桌面资讯系统的用户需求分析、体系结构设计、组网设计、详细功能设计、系 统功能实现、系统测试等多方面内容。 在整个研究过程中,本文主要完成以下工作: 1. 系统的需求分析,包括系统整体架构分析、系统功能用例分析、客户端 功能需求分析以及服务端功能需求分析。 2. 系统的整体设计,包括系统逻辑结构设计、软件体系结构设计、系统组 网设计等。 3. 系统客户端部分功能概要设计、业务流程设计等。 4. 设计并实现基于 android 平台的手机桌面资讯系统客户端部分功能。如 自动更新的桌面 widget 功能、内容展示功能、个性化频道订阅功能等。 5. 系统测试环境搭建及部署测试系统,主要完成系统客户端的功能测试及 测试结果展示等。 1.4 论文结构 本论文共分为六章,各章主要内容如下: 第一章:绪论。提出了项目背景、研究对象及其国内外研究现状,介绍本文 承担的主要工作和组织结构。 第二章:相关技术概述。列举并简要描述了项目研究过程中涉及到的关键理 论和技术。其中,包括负载均衡技术、分布式缓存技术、multipart 技术、nginx 技 术等。 第三章:手机桌面资讯系统需求分析与整体架构。分析系统的整体架构,重 点描述了系统客户端的功能需求。 第四章:手机桌面资讯系统客户端功能设计与实现。详细描述了客户端各功 能模块的处理流程、详细模块设计及具体编码实现等。 第五章:运行与测试。部署了分布式的软件环境,测试了系统的运行情况并 作出测试结果分析。 第六章:工作总结与展望。总结本文的主要研究内容及研究成果,并对今后 的发展方向进行展望。 基于 android 平台的手机桌面资讯系统的设计与实现 4 第二章 相关技术概述 5 第二章第二章 相关技术相关技术概述概述 2.1 android 平台介绍 android 平台是 google 于 2007 年 11 月发布的一种智能手机平台3-5。它是由 操作系统、 中间件、 用户友好界面和应用软件组成, 是全面整合的软件栈。 android sdk 提供了在 android 平台上使用 java 语言进行 android 应用开发所必须的工具 和 api 接口。 2.1.1 android 平台的组成 android 平台不仅是一种操作系统,它更是一个开源的体系架构。android 平 台大量应用了开源社区的成果,并将其针对移动设备进行了一系列的优化。 android 平台包含的主要构成部分及其特性有: 1. 经过 google 改进和调优的 linux kernel; 2. 经过 google 修改的 java 虚拟机 dalvik vm; 3. 大量可用的类库和应用软件,例如浏览器 webkit,数据库 sqlite; 4. google 已经开发好的大量现成的应用软件,并可以直接使用很多 google 在线服务; 5. 基于 eclipse 的完整开发环境; 6. 优化过的 2d 和 3d 图形处理系统; 7. 多媒体方面对常见的音频、视频和图片格式提供支持; 8. 支持 gsm、蓝牙、edge、3g、wifi、摄像头、gps。 2.1.2 android 应用程序框架 android 平台的架构从上至下包含了五个部分:应用程序(applications) 、应 用框架 (application framework) 、 开发库 (libraries) 、 运行时环境 (android runtime) 以及 linux 内核(linux kernel) 。 1. 应用程序(applications) android 会同一系列核心应用程序包一起发布,该应用程序包包括 email 客户 端,sms 短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程 序都是使用 java 语言编写的。 2. 应用程序框架6-7(application framework) 基于 android 平台的手机桌面资讯系统的设计与实现 6 开发人员也可以访问核心应用程序所使用的 api 框架。该应用程序的架构设 计简化了组建的重用,任何一个应用程序都可以发布它的功能块,并且任何其它的 应用程序都可以使用其所发布的功能块(须遵循框架的安全性限制) 。同样,该应 用程序重用机制也使用户可以方便的替换程序组件。 隐藏在每个应用后面的是一系列的服务和系统,其中包括: 丰富而又可扩展的视图 (views) , 可以用来构建应用程序, 它包括列表 (lists) , 网格(grids) ,文本框(text boxes) ,按钮(buttons) ,设置可嵌入的 web 浏览器。 内容提供器(content providers)使得应用程序可以访问另一个应用程序的数 据(如联系人数据库) ,或者共享它们的数据。 资源管理器(resource manager)提供非代码资源的访问,如本地字符串,图 形,和布局文件(layout files) 。 通知管理器(notification manager)使得应用程序可以在状态栏中显示自定义 的提示信息。 活动管理器(activity manager)用来管理应用程序生命周期并提供常用的导 航回退功能。 3. 开发库(libraries) android 包含一套 c/c+开发库,主要包括:libc、media framework、webkit、 sgl、opengles、freetype、sqlite 等。它们被应用于 android 系统的各种组件 中。这些功能通过 android 应用框架展现给开发人员。 4. 运行时环境(android runtime) android 包括了一个核心库,该核心库提供了 java 编程语言核心库的大多数 功能。 每一个android应用程序都在它自己的进程中运行, 都拥有一个独立的dalvik 虚拟机实力。dalvik 被设计成一个设备可以同时高校地运行多个虚拟系统。dalvik 虚拟机执行(.dex)的 dalvik 可执行文件,该格式文件针对小内存使用做了优化。 同时虚拟机是基于寄存器的,所有的类都经由 java 编译器编译,然后通过 sdk 中 的dx工具转换成.dex 格式由虚拟机制性。 dalvik 虚拟机依赖于 linux 内核的一些 功能,比如线程机制和底层内存管理机制。 5. linux 内核(linux kernel) android 的核心系统服务依赖于 linux2.6 内核,如安全性,内存管理,进程管 理,网络协议栈和驱动模型。linux 内核也同时作为硬件和软件栈之间的抽象层。 整体架构上来看,android 相比其他平台显示出了自身的特点,如集成了 webkit 浏览器、dalvik 虚拟机等模块。 第二章 相关技术概述 7 2.1.3 android 应用程序类型分析 android 的 api 主要包含几个部分:views、intents、activity、permissions、 resource type、services、notifications、contentproviders 以及 xml 支持。比较重 要且常用的, 如 views 用于提供界面设计的接口, services 提供运行在后台的服务, content provider 定义了一组系统级的数据库,notification 为用户提供提醒的 api 等。这些都可以通过 sk 附带的文档查询到。 android 上的应用程序可以分成四种主要类型:活动、服务、接收器和 content provider。 1. 活动(activity) 活动是最常用的 android 应用程序形式。活动在一个称为视图类的帮助下, 为 应用程序提供 ui。视图类实现各种 ui 元素,如文本框、标签、按钮等。一个应用 程序可以包含一个或多个活动。这些活动通常与应用程序中的屏幕形成一对一的 关系。 应用程序通过 startactivity()或 startsubactivity()方法从一个活动转到另 一个活动。如果应用程序只需切换到新的活动,使用前一个方法,如果需要异步 的调用/响应模式,就是用后一个方法。但均需要通过方法参数传递一个 intent,由 操作系统负责决定哪个活动最适合满足指定的 intent。 intent 是 google 在 android 体系结构中引入的一种新颖的设计元素,intent 是 一种构造,应用程序可以通过它发出相应的请求。应用程序可以按照相似或互补 的方式进行注册 intentfilter,表明他们有能力或有兴趣执行各种请求或 intent。 2. 视图(views) andriod 活动通过视图显示 ui 元素。视图采用以下布局设计之一: linearvertical,linearhorizontal,relative,table。选择一种布局之后,就可以用各个视 图显示 ui。视图元素由一些 ui 元素组成,包括 button,edittext,checkbox, radiobutton,list,grid,datepicker,timepicker 等。 视图是在一个 xml 文件中定义的。 每个元素有一个或多个属于 android 命名空间的属性。 3. 服务(service)和接收器(receiver) 与其他多任务计算环境一样,android 可以在后台运行着一些应用程序。 android 把这种应用程序称为服务。服务是没有 ui 的 android 应用程序。 接收器是一个应用程序组件,它接收请求并处理 intent。与服务一样,接收器 在一般情况下也没有 ui 元素。 服务和接收器通常都在 androidmanifest.xml 文件中 注册。 4. 通过 content provider 进行数据管理 content provider 是 android 的数据存储抽象机制。content provider 对数据存 基于 android 平台的手机桌面资讯系统的设计与实现 8 储的访问方法进行抽象,在许多方面起到数据库服务器的作用。对数据存储的数 据的读写操作应该通过适当的 content provider 传递,而不是直接访问文件或数据 库。 2.2 memcached 技术 memcached 是一个高性能的分布式内存对象缓存系统, 用于动态 web 应用以 减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从 而提供动态、数据库驱动网站的速度。memcached 基于一个存储键/值对的 hashmap。其守护进程(daemon )是用 c 语言写的,但是客户端可以用任何语言 来编写,并通过 memcached 协议与守护进程通信。但是它并不提供冗余(例如复 制其 hashmap 条目) ;当某个服务器 s 停止运行或崩溃了,所有存放在 s 上的键/ 值对都将丢失。 memcached 由 danga interactive 开发,用于提升 livej 访问速度的。 lj 每秒动态页面访问量几千次,用户 700 万。memcached 将数据库负载大幅度降 低,更好的分配资源,更快速访问。 分布式缓存系统的基本问题是:将 key-value 如何均匀的分散到集群中?最常 规的方式莫过于 hash 取模的方式。比如:集群中可用机器适量为 n,那么 key 值 为 k 的数据请求,很简单的应该路由到 hash(k) mod n 对应的机器。但是,在系 统压力高速发展的系统中,这样的解决方案仍有缺陷。随着系统访问压力的增长, 缓存系统不得不通过增加机器节点的方式提高集群的相应速度和数据承载量。增 加机器意味着按照 hash 取模的方式,在增加机器节点的这一时刻,大量的缓存不 命中,缓存数据需要重新建立,甚至是进行整体的缓存数据迁移,瞬间会给 db 带 来极高的系统负载,设置导致 db 服务器宕机。 分布式缓存系统采用一致性哈希(consistent hashing)算法(选择具体的机器 节点不再只依赖需要缓存数据的 key 的 hash 本身了,而是机器节点本身也进行了 hash 运算。 1. hash 机器节点 首先,求出机器节点的 hash 值,然后将其分布到 0232 的一个圆环上(顺 时针分布) 。如图 2.1 所示: 第二章 相关技术概述 9 e a b c d 0232 图 2.1 缓存服务器分布图 图 2.1 缓存服务器分布图中所示的集群中有:a ,b, c, d, e 五台机器,通过一 定的 hash 算法,我们将其分布到图 2.1 中所示的圆环上。 2. 访问方式 如果有一个写入缓存的请求,其中 key 值为 k,计算器的 hash 值为 hash(k), hash(k) 对应于图 2.1 所示圆环中的某一个点。如果该点的对应没有映射到具体 的某一个机器节点,那么顺时针查找,直到第一次找到有映射机器的节点,那么 该节点就是确定的目标节点;如果超过了 232 仍然找不到节点,则命中第一个机 器节点。例如,图 2.1 中 hash(k) 的值介于 ab 之间,那么命中的机器节点则应 该是 b 节点。 3. 增加节点的处理 若在图 2.1 中所示的集群基础上,欲增加一台机器 f,增加过程如下: 计算机器节点的 hash 值,将机器映射到圆环中的某个节点,如图 2.2 所示: e a b c d 0232 f 图 2.2 缓存服务器增加节点 f 基于 android 平台的手机桌面资讯系统的设计与实现 10 图 2.2 中,增加机器节点 f 之后,访问策略不改变,依然按照(2)中的方式 访问。此时,缓存不命中的情况依然不可避免。不能命中的数据是 hash(k)在增加 节点以前,落在 cf 之间的数据。尽管依然存在节点增加带来的命中问题,但是 比较传统的 hash 取模的方式,一致性 hash 已经将不命中的数据比例降到了最低。 consistent hashing 最大限度地抑制了 hash 键的重新分布。另外,要取得比较 好的负载均衡效果,往往在服务器数量比较少的时候,需要增加虚拟节点来保证 服务器能均匀的分布在圆环上。因为,使用一般的 hash 方法,服务器的映射地点 的分布非常不均匀。使用虚拟节点的思想,为每个物理节点(服务器)在圆环上 均分配了 100200 个点。这样就能抑制服务器映射地点的分布不均匀,并且最大 限度地减少由于服务器增减所带来的缓存重新分布问题。用户数据映射在虚拟节 点上,就表示用户数据真正的存储位置是在该虚拟节点所代表的实际物理服务器 上。 图 2.3 描述了增加物理服务器相应增加虚拟节点倍数的趋势,如图 2.3 所示。 图 2.3 服务器增加虚拟节点数坐标图 x 轴表示需要为每台物理服务器扩展的虚拟节点倍数(scale),y 轴表示实际物 理服务器数。从图 2.3 中可以看出,当物理服务器的数量很少时,就需要更多的虚 拟节点;反之,则需要更少的虚拟节点。如果物理服务器有 10 台,那么就需要为 每台服务器都增加 100200 个虚拟节点,才能达到真正的负载均衡。 第二章 相关技术概述 11 2.3 nginx 技术 nginx (“engine x“)7 是一个高性能的 http 和反向代理服务器,也是一个 imap/pop3/ smtp 代理服务器。nginx 是由 igor sysoev 是俄罗斯访问量第二的 rambler.ru 站点开发设计的。 它已经在该站点运行了超过两年半的时间。 igor 将源 代码以类 bsd 许可证的形式发布。尽管还是测试版本,但是,nginx 已经因为它 的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。 nginx 可以在大多数 unix like os 上编译运行,并有 windows 移植版。目前, nginx 的开发版为 0.7.x,稳定版为 0.6.x,历史稳定版为 0.5.x。本系统建议采用 nginx 0.6 系列作为生产版本,源代码采用 2-clause bsd-like license。 2.3.1 nginx 优点 nginx 是一个高性能 web 和反向代理服务器, 它具有很多的优越特性: 在高连接并发的情况下,nginx 是 apache 服务器不错的替代品。 nginx 在美 国是虚拟主机厂商们经常选择的软件平台之一, 能够支持高达 50,000 个并发连接 数的响应。并且,nginx 还为我们选择了 epoll and kqueue 作为开发模型。 作为负载均衡服务器,nginx 既可以在内部直接支持 rails 和 php 程序对外 进行服务,也可以支持作为 http 代理服务器对外进行服务。nginx 采用 c 语言 进行编写,不论是系统资源开销还是 cpu 使用效率都比 perlbal 要好很多。 作为邮件代理服务器,nginx 同时也是一个非常优秀的邮件代理服务器(最 早开发这个产品的目的之一也是作为邮件代理服务器), last.fm 描述了成功并且 美妙的使用经验。 nginx 是一个安装简单,配置文件简洁(还能够支持 perl 语法) ,bugs 非常少 的服务器。nginx 启动相当容易, 并且几乎可以做到 7*24 不间断运行。即使运行 数个月也不需要重新启动,还可以在不间断服务的情况下进行软件版本的升级。 2.3.2 nginx 性能描述 1. http 基础功能 (1) 处理静态文件,索引文件以及自动索引; (2) 反向代理加速(无缓存),简单的负载均衡和容错; (3) fastcgi,简单的负载均衡和容错; (4) 模块化的结构。 过滤器包括 gzipping, byte ranges, chunked responses, 以 及 ssi-filter 。在 ssi 过滤器中,到同一个 proxy 或者 fastcgi 的多 基于 android 平台的手机桌面资讯系统的设计与实现 12 个子请求并发处理; (5) ssl 和 tls sni 支持; 2. imap/pop3 代理服务功能 (1) 使用外部 http 认证服务器重定向用户到 imap/pop3 后端; (2) 使用外部 http 认证服务器认证用户后连接重定向到内部的 smtp 后端; 3. 认证方法 (1) pop3: pop3 user/pass, apop, auth login plain cram-md5; (2) imap:imap login; (3) smtp:auth login plain cram-md5; (4) ssl 支持; (5) 在 imap 和 pop3 模式下的 starttls 和 stls 支持; 4. 支持的操作系统 (1) freebsd 3.x, 4.x, 5.x, 6.x i386; freebsd 5.x, 6.x amd64; (2) linux 2.2,2.4,2.6 i386; linux 2.6 amd64; (3) solaris 8 i386; solaris 9 i386 and sun4u; solaris 10 i386; (4) macos x (10.4) ppc; 5. 结构与扩展 (1) 一个主进程和多个工作进程。工作进程是单线程的,且不需要特殊授 权即可运行; (2) kqueue (freebsd 4.1+), epoll (linux 2.6+), rt signals (linux 2.2.19+), /dev/poll (solaris 7 11/99+), select, 以及 poll 支持; (3) kqueue 支持的不同功能包括 ev_clear, ev_disable (临时禁止 事件) , note_lowat, ev_eof, 有效数据的数目,错误代码; (4) sendfile (freebsd 3.1+), sendfile (linux 2.2+), sendfile64 (linux 2.4.21+), 和 sendfilev (solaris 8 7/01+) 支持; (5) 输入过滤 (freebsd 4.1+) 以及 tcp_defer_accept (linux 2.4+) 支持; (6) 10,000 非活动的 http keep-alive 连接仅需要 2.5m 内存; (7) 最小化的数据拷贝操作; (8) 其他 http 功能: (9) 基于 ip 和名称的虚拟主机服务; (10) memcached 的 get 接口; (11) 支持 keep-alive 和管道连接; 第二章 相关技术概述 13 (12) 灵活简单的配置; (13) 重新配置和在线升级而无须中断客户的工作进程; (14) 可定制的访问日志,日志写入缓存,以及快捷的日志回卷; (15) 4xx-5xx 错误代码重定向; (16) 基于 pcre 的 rewrite 重写模块; (17) 基于客户端 ip 地址和 http 基本认证的访问控制; (18) put, delete, 和 mkcol 方法; (19) 支持 flv (flash 视频) ; (20) 带宽限制。 2.4 客户端业务无关性 客户端业务无关性,顾名思义是指客户端与具体业务之间具有无关性。客户 端的所有功能实现与所处理的业务类型尽可能保持松耦合。具有业务无关性客户 端的系统增加新的功能时,只需在服务端配置对应的功能入口,客户端无需改动 即可。使用该功能时,可以将客户端理解为加强版的浏览器。 2.5 android widget 技术 google 从 android 1.5 sdk 版本开始提供 app widget 组件。它可以自由添加/ 删除,随意拖放;可以被嵌入到其它应用程序中并接收周期性的更新;还可以通 过一个 app widget provider 来发布一个 widget。因而,容纳其它 app widget 的应 用程序组件被称为 app widget 宿主(例如桌面) 。 app widget 组件可以作为实时性较强的资讯展示界面,如新闻、天气、短信 等,也可以作为主程序的快捷入口。 widget 具有的特征如下。 1体积小:widget 在终端上嵌入非常方便,运行快速。 2表现形式多样:widget 可以以多种形式呈现出来,幻灯秀、视频、地图、 新闻、小游戏等等。 3功能强大:可实现新闻展示、购物、天气等个性化选择信息,各种信息可 实现自动更新。 4用户界面绚丽:widget 可以实现丰富多彩的用户界面。 5个性化:可以根据自己喜好,将多个 widget、单个 widget 上的多种信息 随心所欲的去组装。通过 widget,可以把一切在互联网中的内容打乱重来,并按 照用户希望看到的样子重新排列,组合一个属于自己的互联网。 基于 android 平台的手机桌面资讯系统的设计与实现 14 6易制作:制作 widget 并不复杂,只需要熟悉三方面的知识:图像处理、 html/xml、java。 widget 能够流行的一个要点在于开放制作,ugc 应用带来 爆炸式地增长。 第三章 手机桌面资讯系统需求分析 15 第三章第三章 手机手机桌面资讯系统桌面资讯系统需求分析需求分析 手机桌面资讯系统的开发按照软件工程8-9的指导思想进行,将整个开发过程 分为:需求分析、结构设计和功能实现三个阶段。需求分析是本系统开发的第一 个阶段,是理解用户需求,就软件功能与用户达成一致,最终形成开发计划的一 个复杂过程。 3.1 系统整体架构 本文在学习系统相关技术的理论与方法的基础上,设计并实现了基于 android 平台的手机桌面资讯系统。系统包括手机桌面资讯客户端(以下简称客户端)和 手机桌面资讯服务端(以下简称服务端)两部分。其中,服务端为系统提供各种 功能接口,完成用户界面显示数据功能。客户端将通用浏览器与个性化客户端融 合,完成了数据的解析展示功能。 3.1.1 系统逻辑结构 本文旨在为手机用户设计一款功能强大的生活资讯类软件, 实现服务端支持高 并发请求的性能要求,并且保证客户端可正常运行,以满足用户的体验要求。 手机桌面资讯系统的逻辑结构,如图 3.1 所示。 无线网络无线网络 客户端客户端 客户端客户端 桌面资讯客户端接口系统桌面资讯客户端接口系统 桌面资讯服务端桌面资讯服务端 管理系统管理系统 运营运营 人员人员 系统系统 维护维护 系统系统 管理管理 第三方 内容api1 第三方 内容api2 第三方 内容api3 图 3.1 系统逻辑结构图 从图 3.1 所示的系统逻辑结构可以看出:系统客户端软件安装在手机系统中, 直接面对手机用户,实现系统所承载的各项功能。其主要功能包括新闻资讯、天 气预报、各种生活服务等。 基于 android 平台的手机桌面资讯系统的设计与实现 16 服务端是由桌面资讯客户端接口系统和桌面资讯服务端管理系统等两个子系 统组成。其中,桌面资讯客户端接口系统,为客户端提供各种功能数据接口,具 有高效性、稳定性、支持大并发访问等特点。桌面资讯服务端管理系统,直接面 向系统运营管理人员,用于完成系统的各项配置工作,主要包括功能接口管理、 内容制作/审核/发布、统计分析、系统管理等。 它与桌面资讯客户端接口系统连接, 实现了对客户端接口系统的管理配置。同时,与第三方 api 接口连接,实现了对 各种第三方内容 api 的功能调用。其中,第三方内容 api,是由第三方通过内容 接口的方式提供,与桌面资讯服务端管理系统相连接,为其提供内容源。 3.1.2 系统软件体系结构 手机桌面资讯系统遵循稳定、高可用、支持高并发量的设计原则。其中,系 统客户端具有业务无关性、功能易扩展的特点。系统服务端采用分层设计,功能 松散耦合。 1. 客户端体系结构 客户端是基于 android 平台的 androidframework 框架上搭建的体系。系统客 户端的体系结构如图 3.2 所示。 客户端体系结构客户端体系结构 viewviewactivityactivityserviceservice application frameworkapplication framework activity activity managermanager window window managermanager content content providersproviders view view systemsystem notificatinotificati on manageron manager package package managermanager telephony telephony managermanager resource resource managermanager location location managermanager xmpp xmpp serviceservice surface surface managermanager media media frameworkframework sqlitesqlite opengljesopengljesfreetypefreetypewebkitwebkit librarieslibraries sgl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论