基于Android的视频播放APP的设计与实现.docx
基于Android的视频播放APP的设计与实现摘要随着社会的进步,互联网行业的快速发展,移动智能手机已经与人们的日常生活密不可分。手机上的应用涉及面非常的广泛,可以看出传统行业和移动互联网的融合呈现新的特点,平台和模式都发生了变化。视频播放是智能手机十分重要的功能,视频播放平台整体的发展都显示出良好的前景。Android操作系统,由于其开源性及优秀的系统特性,受到了广大手机厂商的青睐。本课题根据项目的实际需求以及当前的移动视频发展背景,主要的目的是实现一款基于Android的视频播放APP,系统要实现的核心功能是Android智能手机上的视频点播,主要关注视频播放中的用户体验,其次,整体软件的各个功能模块是否符合用户操作习惯,设计并实现一款基于Android系统的视频点播APP,提供丰富多样的视频内容,具有重要的现实意义。本文首先根据当前时代背景和互联网的发展探讨了课题背景和意义,并了解了国内外当前研究现状,之后对课题实现过程中使用的相关技术进行了介绍,并充分研究了产品需求,提出了功能性需求和非功能性需求。在完成需求分析后,根据需求分析的结果进行概要设计,概要设计的主要内容有系统架构、功能结构、数据库结构等方面。通过开发实现需求,并对视频播放APP进行测试,测试结果基本符合预期。关键词:Android;视频播放APP;设计与实现ABSTRACTWiththeprogressofsocietyandtherapiddevelopmentoftheinternetindustry,mobilesmartphoneshavebecomeinseparablefrompeople'sdailylives.Theapplicationonmobilephonesisveryextensive,anditcanbeseenthattheintegrationoftraditionalindustriesandmobileintemethaspresentednewcharacteristics,Withchangesinplatformsandmodes.VideopIaybackisaveryimportantfeatureofsmartphones,andtheovera11developmentofvideoplaybackplatformsshowsgoodprospects.TheAndroidoperatingsystem,duetoitsopen-sourcenatureandexcellentsystemcharacteristics,hasbeenfavoredbyalargenumberofmobilephonemanufacturers.Basedontheactualneedsoftheprojectandthecurrentdevelopmentbackgroundofmobilevideo,themainpurposeofthisprojectistoimplementanAndroidbasedvideoplaybackapp.ThecorefunctionofthesystemisvideoondemandonAndroidsmartphones,mainlyfocusingonuserexperienceduringvideopIayback.Secondly,whetherthevariousfunctionalmodulesoftheoverallsoftwarecomplywithuseroperatinghabits,designandimplementanAndroidbasedvideoondemandapp,Providingrichanddiversevideocontenthasimportantpracticalsignificance.Thispaperfirstdiscussesthebackgroundandsignificanceofthesubjectaccordingtothecurrenterabackgroundandthedevelopmentofthelnternet,andunderstandsthecurrentresearchstatusathomeandabroad.Thenitintroducestherelevanttechnologiesusedintheimplementationofthesubject,andfullystudiestheproductrequirements,andputsforwardfunctionalrequirementsandnon-functionalrequirement.Aftercompletingtherequirementsanalysis,Conductasummarydesignbasedontheresultsoftherequirementsanalysis.Themaincontentofthesummarydesignincludessystemarchitecture,functionalstructure,databasestructure,andotheraspects.Bydevelopingandimplementingtherequirements,andtestingthevideoplaybackapp,Ihetestresultsbasicallymeettheexpectations.KeywordsiAndroidjvideoplaybackappiDesignandImplementation目录摘要ABSTRACTII目录III1绪论11.1 课题背景及意义11.2 国内外现状11.2.1 国内研究现状21.2.2 国外研究现状21.3 主要研究内容22相关理论与技术分析42.IAndroid操作系统42. 2开发相关技术及工具42. 2.!bootstrap框架43. 2»2MVCI工C54. 2.BHbuilderhtml工具65. 2.4HTML>CSS、JavaScript概述66. 2.5Mysq1数据库73视频播放APP需求分析87. 183. 2J彳1*,fc4)83. 3E.木斤93. 3.1视频播放功能需求分析94. 3.2登录注册功能需求分析95. 3.3设置界面需求分析106. 4非功能分析104视频播放APP的设计127. 1设计目标124. 2软件架构设计124. 3功能结构设计134. 4数据库总体设计144. 5数据库表设计141. 5.1用户信息数据库表164. 5.2用户登录日志175. 5.3视频信息表176. 5.4视频评论信息表175视频播放APP实现186.1 登陆注册模块实现206.1.1 登陆页207. 1.2注册页205. 2设置模块实现215. 3视频播放模块实现225. 3.1JaI.226. 3.2Il2r,J,237. 3.3视频展示页248. 3.4更多259. 3.5底端模块说明276视频播放APP系统测试286.11贝286.2测试方法286.3性能测试286.4测试结果及分析29总结30致谢31参考文献321绪论.课题背景及意义Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于LinUX平台的开源移动终端操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件。随着科技的不断发展,手机不再只是人们日常生活的移动通信工具,而是一个多媒体平台,可提供强大的多媒体功能,越来越多的人喜欢用手机听音乐、看电影。目前,作为AndrOiCl的手机用户而言,都有视频播放器的实体应用。但是,对于绝大多少而言,其界面单调,功能单一。比如,界面与其他非智能的手机没有大的区别,而功能上面,也就除了基本的播放控制流程之外,多上一个视频基本信息的显示,同时加上一个对预设定路径的播放列表的展示。因此,开发一款界面友好、炫丽、功能更多的视频播放器,更好的贴近用户,满足用户需求,其应用前景也是相当乐观的。市面上越来越多的android手机涌现而出,也渐渐将智能手机带入一个大屏的时代,拥有一款大屏幕分辨率的android手机也成为了时下手机用户的新追求。而当我们拿到一款屏幕尺寸大,显示效果好的手机时,就一定少不了用它来看电影,看MV0不过很多时候由于手机本身的硬件限制,有很多格式的视频默认情况下在手机中是无法播放的,此时各式各样的视频播放器就应运而生,它们通过软件解码来弥补了手机硬件本身的不足,达到让手机能够支持各种主流格式视频的效果。1.2 国内外现状近年来,随着智能手机和移动互联网的普及,视频观看已成为手机用户重要的使用行为之一。由于移动端设备小巧并且使用方便,越来越多的用户喜欢利用生活中碎片化的时间来观看各种在线短视频,短视频的兴起给生活添加了更多的乐趣,各种消息的传播也越发迅速了,人们也特别喜欢观看与兴趣爱好匹配的视频内容,并能无缝衔接智能的不停向用户推送播放下一个视频。目前,观看短视频已成为了一种潮流,在线短视频的兴起还带动了电商、旅游等行业的快速发展。因此,视频播放APP的需求也越来越高。以下是Android视频播放APP的国内外研究现状:1.2.1 国内研究现状腾讯视频、爱奇艺、优酷等大型视频网站的AndrOid客户端。这些APP拥有海量的视频资源和优良的用户体验,获得了广泛的用户认可。还有一些市面上主流的播放器,RockPlayer是一款嵌入式平台上的高性能全格式视频播放程序。凭借专为移动设备优化的播放核心以及高度优化的FFMPeg解码器,RockPlayer已经成为了Android平台上性能最高支持格式最广泛的视频播放程序;手机QQ影音是一款运行在Android智能手机上的全格式视频播放软件,支持播放avi.flv、mp4a3gp>mkv、mov等常见格式的视频文件。手机QQ影音独创智能选核技术,深入挖掘Android手机平台的播放潜力,针对AndrOid手机特点细致优化播放效果,让您在有限的资源和屏幕上,享受更流畅、更优质的播放体验;MoboPlayer是运行在移动设备上,为音频和视频提供高质量回放的播放软件。它可以让你在移动设备上播放几乎所有的多媒体格式,将你的数字生活体验提升到新的境界。还有面向特定领域的视频播放APP,例如法律学院视频课程、医学教育视频等,旨在满足特定领域的用户需求。1. 2.2国外研究现状(1) YouTube,是全球最大的视频分享平台,其拥有丰富的视频内容以及良好的个性化推荐算法,使得用户能够快速找到感兴趣的视频。(2) Netflix,是一款流媒体服务APP,其提供无广告的高品质影片和电视剧资源,进行了出色的视频播放体验。(3) Vimeo,是一种以高质量视频分享为主的社交媒体平台,其提供了用户上传、分享以及展示其作品的方式,透过Vinle。的组件,许多开发者已经推出了可以使用Vimeo来进行全屏幕视频播放的Android应用程序。综上所述,AndrOid视频播放APP在国内外都有着广泛的应用和研究,目前主流的APP已经提供了丰富的视频资源和优秀的用户体验。因此,在设计和开发基于Android的视频播放APP时,需要特别关注用户需要和体验。1.3 主要研究内容Android的视频播放APP是一种非常重要的应用一,它为用户提供了方便快捷的视频观看体验,并且在市场上具有很高的竞争力。在设计和实现Android的视频播放APP时,需要考虑以下主要研究内容:视频解码技术,要选择适合自己应用的解码器和优化算法,提高视频播放的效率;视频格式支持,需要研究各种视频格式的特点和支持程度,在APP中适当地支持各种常见视频格式,以符合用户的需求;视频播放控制及视频资源管理需要研究如何进行视频资源的管理和组织,以便用户能够方便地查找和观看各种视频资源。最后要注重Ul设计和用户体验,在设计Android的视频播放APP时,需要考虑Ul界面的设计和用户体验,使用户能够方便快捷地进行操作,并且能够在视觉上获得良好的体验。此外,还需要研究如何通过用户反馈和分析,进行持续的Ul优化和改进,以提高用户满意度。本论文要满足市场对视频播放器的需求,实现基于Android的视频播放APP的设计与实现,首先进行需求分析,包括总体需求、各模块需求以及非功能性需求,为系统开发做好准备;然后进行系统设计,从设计架构到数据库设计;实现功能,利用Android平台的开发技术,实现各个功能模块,并进一步对功能进行完善,具体来说,需要实现的功能模块主要有在线视频点播、评论、登录注册、设置、搜索等。最后要进行测试,对整个系统进行功能和非功能性测试,主要关注视频播放中的用户体验。2相关理论与技术分析1.1 AndrOid操作系统Android操作系统是目前世界上市场占有率最高的移动操作系统,2008年9月,Google公司正式发布Androidl.0系统,之后的几年内迅速发展,在2011年首次超越塞班系统,跃居全球第一。AndrOid操作系统本身是基于LinUX开发的,既可以应用在手机上,也可以应用在平板电脑上,其开源性和优秀的系统架构在移动设备上大放异彩。AndrOid操作系统架构可以分为四层:LinUX内核层(LinuxKernel)>系统运行库层(Libraries)、应用框架层(App1icatiOnFramework)和应用层(APPliCationS)OAndroid是基于LinUX内核的,该层不仅有操作系统所必须的内存和进程管理,还为设备提供底层核心驱动,如蓝牙驱动,音频驱动,照相机驱动,键盘驱动,WlFl驱动,电源管理等。系统运行库层包括Android运行时库和系统运行库,这一层主要是一些C/C+库为系统提供主要特性支持,如浏览器内核支持,数据库支持等,这些核心库能够允许开发人员使用Java来编写应用程序。应用框架层与程序开发人员最为相关,主要提供构建应用程序所需的各种API,开发人员可以在此基础上构建移动端应用程序即APP,另外Android自带的一些核心应用也是使用这些APl完成的。由于上层的应用程序是以JaVa构建的,因此本层次为其提供了资源管理,丰富的视图,通知管理,活动管理等服务。应用层面向用户,安装在设备上的应用程序都属于这一层,包括系统应用和开发的应用。主要的系统应用有短信、通讯录、电话、浏览器等,当然,开发者也可以自己开发这类应用程序。1.2 开发相关技术及工具2. 2.1bootstrap框架Bootstrap框架是一种常用的前端开发框架,它基于HTML>CSS和JavaScript,提供了丰富的组件和工具,能够快速地搭建出美观、响应式和易于维护的Web页面和应用。在基于Android的视频播放APP的设计与实现中,Bootstrap框架可以发挥以下的作用:(1)响应式设计Bootstrap框架提供了响应式的网格系统和响应式的CSS,能够自适应不同分辨率的设备,使得视频播放APP在手机、平板和电脑等不同设备上获得良好的显示效果。(2)Ul组件BOOtStraP框架提供了丰富的Ul组件,包括按钮、表格、面板、模态框、导航条等等,能够快速地创建漂亮的用户界面,增强用户交互体验。(3)插件和工具BOOtStraP框架提供了多种插件和工具,例如下拉菜单、轮播图、弹出框、滚动条等等,能够快速地实现各种功能和效果,提高开发效率和用户体验。(4)样式和主题Bootstrap框架提供了多种样式和主题,能够让开发者根据自己的需求和品牌风格来选择不同的样式和主题,从而使得APP具有独特的视觉外观。总之,Bootstrap框架在Android的视频播放APP的设计与实现中,可以帮助开发者快速地搭建出美观、响应式、易于维护和具有良好用户体验的Web页面和应用。2. 2.2MVC设计模式在Anroid开发APP中常采用MVe(MOdeI-View-ControIler)设计模式,这种模式在JaVa开发中也被广泛的使用。模型(MOdeD是整个应用的重要部分,存放应用的实体类对象,封装各种类型的数据,完成对用户发送请求后返回数据的处理,而不用去关心用户界面相关的逻辑,对于一些耗时的操作也可放在该部分里;视图(VieW)是将界面展示给用户看,主要通过Xrnl布局文件的设计来展现的,常见的布局有LinearLayoutRelativeLayout等,在布局文件中可设置各种类型的控件,如TextViewXButtonRecycIerView等控件,主要用于用户交互的作用,并通过AdaPter(适配器)将数据显示在用户界面上;控制器(ContrOIIer)充当调度的作用,由ACtiVity与Fragment来组成,管理着视图与模型两个层面的交互,完成数据交互间的业务逻辑,并将结果在界面供用户查看。MVC的设计模式提高了代码的复用,减少了代码之间的过度关联,开发与维护的成本变低。3. 2.3Hbuilderhtml工具Hbuilder是一款HTML开发工具,它集成了多种常用的HTML、CSS和JavaScript工具和编辑器,包括HTML编辑器、CSS编辑器、JavaScript编辑器、代码调试器、Web视图预览器等等。在基于Android的视频播放APP的设计与实现中,Hbuilder提供了完整的Web开发环境,能够提高开发效率和代码质量,同时也支持多种移动设备和平台;Hbuilder提供了智能代码提示、语法高亮、代码折叠等功能,能够让开发者更高效地编写代码,同时减少错误的出现;Hbuilder提供了实时页面预览,还可以同时查看不同设备和分辨率下的效果,可以快速查看和调试页面效果;调试功能。Hbuilder还提供了强大的调试功能,可以逐步跟踪和检查代码和错误信息,随时发现和修复问题;扩展插件:Hbuilder还支持扩展插件,可以自定义和增强其功能,满足不同开发者的需求。HbUilder是一款十分实用的HTML开发工具,在基于Android的视频播放APP的设计与实现中,Hbuilder可以极大地提高开发效率和代码质量,同时也能够帮助开发者更好地定位问题,从而加速项目的开发进度和提高应用的质量。4. 2.4HTMKCSSvJaVaSCriPt概述HTML>CSS和JavaScript,是Web开发的三大核心技术。在基于Android的视频播放APP的设计与实现中,这三种技术也是不可或缺的。HTML(HypertextMarkupLanguage)是用于创建Web页面的标准标记语言,它提供了一系列的标签(tag),用于描述页面的结构和内容。HTML标签可以定义不同的区域、标题、段落、图片、链接等,使得开发者可以通过简单的标记语言来创建网页。CSS(CascadingStyleSheets)则是用于描述Web页面的外观和样式的标准语言。CSS可以控制网页的颜色、字体、大小、布局等视觉特性,从而使得网页更加美观和易于阅读。CSS与HTML紧密配合,通过CSS样式文件来定义各种元素的外观。JavaScript则是用于创建交互式和动态页面的编程语言。通过JavaScript,开发者可以为网页添加事件、动画、交互效果等,从而使得网页更加生动和有趣。JavaScript可以与HTML和CSS结合使用,创建出更加丰富的用户界面和交互效果。在基于Android的视频播放APP的设计与实现中,HTML、CSS和JavaScript可以协作使用,通过HTML标记语言来定义UI界面,通过CSS样式来美化UI界面,通过JaVaSCriPt编程实现交互效果和数据处理。这些技术的综合使用,可以创建出更加便捷、美观、高效的APP应用程序。5. 2.5Mysql数据库MySQL数据库是一种广泛使用的关系型数据库管理系统,在Android应用程序开发中也可以应用。为了实现基于AndrOid的视频播放APP的设计与实现,需要创建一个MySQL数据库,以存储与视频播放相关的数据。先对MySQL数据库中关于视频播放方面的数据表设计,可根据具体需求进行调整,例如新增表单、调整字段类型等,以满足APP应用的需求和数据存储。3视频播放APP需求分析在移动互联网迅速发展的时代背景下,视频播放己经成为智能手机十分重要的一项应用。在设计并实现视频播放客户端系统之前,除了主要的功能性需求之外,还需要对一些非功能性需求如界面需求、性能需求等进行分析。6. 1总体需求根据项目的实际需求以及当前的移动视频发展背景,本课题的主要的目的是实现一款基于Android的视频播放APP0系统要实现的核心功能是Android智能手机上的视频点播,从总体需求来看,系统需要实现的功能主要包括以下几方面:用户可以注册账号并登录,以保存个人资料,进行个人信息管理等,登录成功后可以使用更多的功能模块。.在APP主页面自由选择想观看的视频进行播放,该部分为主要功能模块,直接关系到用户体验,需要进行视频分类以方便用户的选择,主要的视频分类有古风、校园、奇幻、唯美、穿越等各大类,还包括推荐频道。同时用户还能在视频点播页进行搜索,快速找到相应的视频和信息。用户可以在设置查看账号信息,隐私设置,进行通知等设置。用户可以对APP存在的问题进行反馈,提出自己的意见,后台可对信息进行搜集与反馈。6.2 可行性分析(1)技术可行性在开发基于AndrOid的视频播放APP之前,对相关技术进行评估和分析,可以确保该技术能够支持所需要的功能和要求。同时,需要考虑该技术能够与目标平台兼容,并且可以满足预期的性能和安全要求。(2)市场可行性在进行开发之前,评估了目标市场的需求和潜在客户,确认该应用程序符合市场需求。此外,也研究市场竞争情况,确定该应用程序在市场上的前景,包括潜在的用户群体、联盟合作等等。(3)经济可行性在开发该应用程序之前,评估了开发成本、市场开发费用和预期的收益等,计算投资回报率可行。此外,评估现有的资源和设备,也是可行的。(4)法律可行性在开发和发布应用程序之前,考虑法律规定和政策。此APP符合法律和版权方面的规定和限制,保护用户隐私,保证应用程序的安全性等。6.3 功能需求分析3. 3.1视频播放功能需求分析视频播放是该项目中最为核心的功能,该功能中无论是界面设计,播放控制,播放流畅度等都将直接影响到用户的APP使用体验,因此需要对该功能特别重视,下面将讲述其中主要的视频列表、播放视频、搜索视频等功能及操作流程。在进行视频播放之前,首先向用户展示视频列表页,页面中根据视频类型如古风、校园、奇幻、唯美、穿越等进行分类展示,为了方便用户在观看视频前了解大致内容,视频列表中需要包含以下信息:视频截图、类型、视频名称、简要介绍。考虑到视频相关信息需要从网络加载,而一次性加载过多的内容不仅会增加用户等待时间,还会浪费流量,需要对视频信息进行分类加载和显示。用户可以自由上下滑动浏览列表项,在视频列表中找到自己想看的内容后,可以点击相应的列表项进入视频播放页。视频播放器是该功能下最关键的部分,除了最基础的视频播放功能外,还应该提供更多的播放控制,提高系统的播放流畅性,设计友好的播放界面,支持更多的视频格式以满足用户需求。用户可以通过视频列表页进入竖屏顶部播放页面,点击全屏切换按钮进行全屏播放。在全屏播放页面下,用户可以进行播放和暂停、快进和快退、调节音量和亮度等播放控制操作,用户还可以进行开关灯设置,便于各种不同光线下的用户需求。每个视频下方进行观看时,可以同时查看全部热评,和在线网友一同分享。3. 3.2登录注册功能需求分析登录注册功能不仅能为不同的用户提供更多更准确的服务还能方便用户拥有自己的账号,对账号信息进行管理,是项目中一项最基本的功能,主要包含登录和注册这两个功能点。用户只有注册了账号并进行登录才能使用个性化推荐、个人信息更改等功能,现就对登录注册主要功能及流程进行分析。当用户首次启动APP后,会弹出提示框,提醒用户进行账号登录,点击提示框中的登录键可以进入登录页进行账号登录。为了方便用户,可以保存登录,下次免登录。用户注册需要输入用户名、手机号码、省份、邮箱地址等信息,在完成注册进行用户登录时,在账号信息上填写自己的用户名和密码,若账号和密码都正确,则正常完成登录,否则提示用户名错误或者密码错误,可以进行密码重置。3. 3.3设置界面需求分析设置界面包含账号管理、通用、关于和登录注册功能。账号管理模块可以进入账号与安全可以对账号进行查看与编辑修改,需要进行隐私设置与修改。在通用模块对系统进行设置修改,可以设置是否通知、通知方式,实现通用设置。在关于模块可以对APP进行反馈,与在线帮助请求,反馈信息输入提交,后台管理员可以进行搜集与反馈,在线帮助可以随时与客服进行对话,完成对客户的需求及时反馈。设置界面同时可以对账号登陆注册进行管理,可以退出登录与切换账号。3.4非功能分析作为需求分析中的一部分,非功能性需求虽然不直接与系统的具体功能相关,但同样不可忽视。非功能性需求体现了软件系统的质量和特性,主要有软件系统的性能、可靠性、可扩展性、界面需求等多个方面。在设计上需要考虑用户能有良好的使用体验,包括系统运行流畅、操作简单、界面简洁美观等。3. 4.1性能需求性能需求上要满足视频播放器的稳定性,在网络状况良好的情况下,能稳定的播放视频。用户在进行搜索、暂停等操作时,无明显卡顿现象;APP应具有良好的可扩展性,随着系统功能的拓展,新加入的功能不会对原有的其他功能模块造成影响;系统的响应时间要短,APP的启动时间,网络加载耗时,用户使用客户端进行具体操作的耗时。其中,在网络环境正常的情况下,网络信息加载耗时应不超过2s,用户的操作响应时间应小于200ms,APP启动时间不应超过行业平均值,需控制在3s以内;软件的资源占用率要低,APP运行内存应小于IoOM,软件安装包占用空间应尽可能小,大约在30M左右。3. 4.2界面需求界面需求也是系统至关重要的一项内容。良好的界面设计,不仅体现在软件的整体美观程度上,还能让用户的操作更加舒适自由。本课题中的视频点播客户端在界面设计上需要注重用户的使用体验,整个系统界面中的字体、背景颜色应该保持统一的风格,各个界面中的控件大小和类型需要符合人们的操作习惯,做到界面简洁美观。4视频播放APP的设计3.1 设计目标将繁琐的视频资源页面简化设计在手机端的APP上,减少各种复杂页面内容,提取出核心的资源进行业务开发,具有内容充实、界面简洁、播放功能全面,并同时具备以下原则:第一易使用,精选资源也是众多的,做好分类显示,对相应功能的一目了然,提升用户的交互使用感,没有复杂的操作,能方便使用。第二稳定性,APP完成后的性能是主要的,减少层级之间的过度依赖、提高代码的复用性,结合优秀的框架设计出高质量的APP,没有功能逻辑上的bug。第三视觉体验。充分结合用户操作体验,页面的滑动切换以及在滑动滚动图片时应具有平滑效果,在视觉上无卡顿现象。在视频详情页面显示的背景中设置一种比较大众化的背景色,增加本APP的识别度,并优化弹幕加载显示,提升观看体验。第四响应速度。应用打开的反应速度要快,不能出现太长时间无响应而导致的卡机情况,应用能在任何情况下都能经过后台来关闭当前进程,并能重新打开。在点击到页面,能快速的将网络返回的数据内容填充展示,避免过长时间的等待,在切换不同的页面时数据能迅速加载并显示3.2 软件架构设计软件架构描述了系统抽象组件构成,为软件系统提供了一个结构、行为和属性的高级抽象,可以为设计软件系统的提供相应的指导。从面向对象领域进行分析,各个组件之前实施的连接实现往往是接口。本课题中的整个视频点播系统由客户端和服务器两部分组成,整体上属于C/S模式,服务器端主要负责接收客户端的网络请求并处理相应的业务逻辑,返回处理结果给客户端,同时用户信息和系统关键数据也保存在服务器。客户端则负责与用户交互和视频的播放,在服务器返回数据时,解析数据并展示给用户,除了网络视频外,其他传输的数据通常为JSOn格式。视频点播客户端采用分层架构,共分为四层,自下而上依次为基础工具库、通用组件层、功能模块层和项目主工程,各层之间的依赖关系为上层可以向下依赖,反之则不行。项目采用分层架构既使得工程结构显得更加清晰,还能提高系统的可扩展性和可维护性。底层基础工具库中主要提供一些常用的工具类,如网络请求、格式解析、多线程、后台服务(SerVice)、数据模型(MOdel)等,而这些部分通常在整个项目中是通用的,这样就可以在不同的功能模块中通过建立依赖的方式来调用这些工具类库,避免大量重复代码的产生。通用组件层并不包含系统的业务逻辑,该层可以自由调用底层基础工具库中的内容,其主要功能是为业务逻辑层和项目主工程提供丰富多彩的控件(Widget)、自定义的界面元素(View)以及不同的组件等,不同的功能模块可以自由引用该层中的内容。功能模块层负责处理各个功能模块的业务逻辑,依赖于通用组件层和基础工具库层。各个功能模块是相互独立解耦的,绝大部分复杂的业务逻辑都在该层中,包括数据的接收和解析,视频的播放,数据存储等。项目主工程将各个功能模块组合在一起,包含少量的业务逻辑,系统的主页面也在该层中,直接面向用户,负责响应用户的操作以及展示接收到的数据。主工程是整个应用的入口,不应该被任何一层引用,各个功能模块的业务代码可以从主工程开始自上而下寻找。3.3 功能结构设计根据需求分析的结果,可以将视频点播客户端划分为视频播放、设置中心、登录注册、喜好推荐、搜索等功能模块。其中,设置中心下还包括通用设置、关于、登录注册等子模块。视频播放模块和个人中心模块是整个系统最主要的部分。其中,视频播放模块实现的播放器为用户提供最重要的观看视频的功能,同时还展示视频列表,并对视频进行分类以方便用户进行视频的观看选择,设置中心模块向用户提供一些最基础常用的功能,包括账号信息的显示和修改、对APP进行通知设置等。登录注册模块包括登录和注册两项功能,用户在进行登录后可以方便的使用更多的功能如推荐、意见反馈等,在用户忘记个人账号的密码时也可以在该模块下进行找回密码。喜好推荐模块负责对不同的用户进行分析,并根据分析结果为用户推荐他们可能感兴趣的内容,提高用户的使用体验。用户可以使用搜索模块查找自己想看的视频内容,搜索的结果以视频列表的形式,根据搜索匹配度排序展示给用户。点击搜索列表中的内容,则会跳转至视频播放页。视 频 分 类终端设置国 家 地 区视 频 处 理图4. 1系统功能图3.4 数据库总体设计任何一个软件系统的运行都离不开数据,因此需要数据库对大量的数据进行存储和管理。本系统的客户端使用Android移动设备自带的SQLite数据库,既方便又能满足需求.SQLite数据库是一种轻量级,运算速度较快的关系型数据库,在开发时对本地数据库的增删改查既可以使用SQL语法,也可以通过建立对象的方式访问。在创建数据库表之前,首先要进行表的设计,其中,用户信息表中包含用户名、密码、手机号、编号、省份等属性,用户在完成注册后数据库中就会存储这些信息,通过访问个人中心,可以使用设置功能修改语言、头像以及用户名和密码。3.5 E-R实体图通过对系统E-R图的分析,将数据概念转换成关系模型,对各种实体之间的关系通过图形化的方式表示出来,以便于理解和分析。下面通过主要功能模块的数据对项目基本数据做简单的介绍。用户E-R图,如图4.2所示:图4.2:用户E-R图视频E-R图,如图4.3所示:图4.3:视频E-R图3.6 数据库表设计各模块需要对大量的信息进行管理,如用户账号名、密码以及其他个人信息都需要后台服务器和数据库的支撑。下面对数据库表进行设计:4. 6.1用户信息数据库表表4.1:1user_info字段名类型允许空值主键说明UserJdintN0TNULL是用户编号(唯一)USejNamevarcharNOTNULL否用户名PasswordvarcharNOTNULL否用户密码Password_TempvarcharNOTNULL否用户确认密码sexintNOTNULL否性别1女2男telintNULL否电话areavarcharNULL否地区E_mailintNULL否邮箱IsAgreementintNOTNULL否是否同意协议4. 6.2用户登录日志表4.2:user_login_info字段名类型允许空值主键说明User_IdintNOTNULL是用户编号(唯一)PasswordvarcharNULL否用户密码is_save_loginintNULL否是否保存登录状态Is_AgreementintNULL否是否同意协议Login_timevarcharNULL否登录时间Log_out_infovarcharNULL否退出时间IsJockintNULL否账号是否锁定4.6.3视频信息表表4.3:Video_info4. 6.4视频评论信息表字段名类型允许空值主键说明ideo_IdintNOTNULL是视频编号(唯一)video_typeintNULL行视频类型video_infointNULL否视频简介namevarcharNULL否名称birthdayvarcharNULL否生日constellationintNULL否星座timevarcharNULL否年月areavarcharNULL价地区Video_durationvarcharNULL否视频时长表4.4:Comment_info4.6.5反馈信息表字段名类型允许空值主键说明comment_Id