文献综述(或调研报告):
随着社会的进步和移动互联网、智能设备的快速发展,现在手机几乎成为了人们上网和了解世界、娱乐的一个主要渠道。而手机应用在这样的背景下,更是占据了人们生活的方方面面,包罗了世界万象。比如各种杀毒软件、手机游戏、打车软件、订餐软件、社交软件、办公应用等。在这样的环境中,快速、高效的开发出一款高质量的应用成为了IT公司能否在这样的严酷竞争中获胜的关键。目前,手机应用可大致分为3类,分别是Web App(网络应用)、Native App(原生应用)、Hybrid App(混合应用)。
其中Web App是基于网页技术实现的APP,只需要通过HTML、CSS、JavaScript等就可以在任意手机浏览器中执行。这样的应用比如:Google Voice、Google Gmail,就是经典的Web App。Web App充分利用了移动设备对浏览器的良好支持和web的标准规范。通过这样的框架,开发者可以比较轻松的开发出具有所需功能的手机应用。并且通过相关的插件支持,还可以将显示优化,使其适合使用在任何手机平台。但是由于HTML5标准尚未完成定制,不是所有的浏览器都完全支持HTML5的标准,不同浏览器对HTML5的支持各有不同,所以要真正做到跨平台的硬件调用还有很长的路要走。另外虽然通过一定的技术可以降低web app的不协调感,可以做的更像是原生应用,但也只是像。很多时候web app的界面还是存在网页风格,导致了较低的用户体验。
Native App则是处于手机平台上方,向下访问和兼容的能力较好一些,可以支持在线和离线(虽然Web App通过html5/css3/javascript也可以表现得像原生的)、消息推送和本地资源访问、调用摄像头、拨号、GPS、重力感应器等,同时界面看上去也更人性化,更美观。但是由于设备碎片化,技术要求高,开发成本高昂,维持多个版本更新不是一件容易的事。对于不同类型的手机,就可能需要用到不同的开发语言,不同的技术,而这悄悄的增加了开发者的培训支出。比如IOS需要使用Objecttive-C语言,谷歌android需要使用java语言,而Windows Phone使用C#语言。同时正是因为使用了不同的语言、不同的工具针对不同的平台,所以也是耗费了更多的资源和时间。
而Hybrid App 综合了Web App和Native App的特性,使得Hybrid App兼具了web App的跨平台优势和Native App能充分调用底层API的优势,同时因为Web技术的引入,使得开发过程更为简单,容易维护,开发成本降低,开发周期缩短。另外Hybrid App还可以进入应用市场,实现真正的商业化。
其三者之间的对比如下:
所以经过这么多的考虑之后,育儿网APP最终决定采用Hybrid App的模式开发。
育儿网APP有一个最新的上传视频功能,是自行开发的基于文件切片的文件传输功能,支持断点续传、切片上传、多线程上传。目前,视频等多媒体文件断点上传的技术都是基于FTP、HTTP的,但是基于FTP协议的断点上传有一个最大的缺点---较低的安全性,而且网络上一些通用的防火墙还会对FTP造成限制,从而造成基于FTP协议的断点上传工具应用不广。而基于HTTP协议的断点下载却有相关的标准文案的支持,众多浏览器都支持基于HTTP的断点下载,然而HTTP协议却不直接支持断点上传,所以在这方面仍然还有很多需要我们思考和扩展的地方。
2006年,陈增强在分析了断点续传实现的基础上,自行扩展了HTTP协议,开发了支持断点上传的文件传输模型。同年,鲁孙林在《基于HTTP协议的断点续传》一文中开发了基于HTTP协议的支持断点续传的小软件。2010年,程哲,蔡一凡在《科技创业月刊》提出了基于单线程的文件复制断点续传的设计与实现。2011年,谢华成,张昆朋,范黎林,刘道华等人研究了基于文件分割的二进制文件存取算法,在《基于文件分割的二进制大对象存取算法》中提出了与数据库结合时候的文件分块大小在4~5MB时将会是最高效的。2012年,黎苑文、程智明等人对断点续传和多线程机制在远程传版中做出学术研究,提出了对大文件进行断点上传的合理解决方案。而多线程技术方面,其实是应用得比较广的,比如多线程下载技术的应用有迅雷、旋风、网际快车等,但是多线程上传技术却只有较少的研究,金禹能有一篇文章《利用多线程提高自助站上传速度》,但是里面说到的上传是基于FTP的。黎苑文、程智明等人结合多线程上传和断点续传,使用socket形式代替web上传实现了多线程的文件上传。另外还有些小应用中的多线程上传都是基于web service实现的,传输内容比较臃肿。不过有一点可以确信,随着人们对多线程上传技术的研究越来越深入,相信支持断点续传的多线程上传将会更加的成熟,更能满足人们的生活需要。
参考文献:
以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。