一、文献综述
(一)国内外研究现状
随着互联网时代的发展,自2016年以来,我国智能手机出货量与近年峰值数量相近为5.22亿部,与往年同期相比增长14%。[1]其中,Android国内市场中占据90%的份额,已经在中国智能手机市场占据统治地位。面对众多Android用户,越来越多的软件开发公司在开发PC端的同时,也设计开发了移动端,其中,就有Android端。起初,软件开发公司把PC端的框架,模式等内容套用在Android端,但产生了许多问题。例如:在MVC模式下开发的Android应用的Activity过于臃肿,视图层与数据处理层可以直接交互,打破了原先的低耦合。Android应用该如何高效的使用Http......面对这样的问题,科研人员开发了一套套技术,例如:MVP、MVVP、okhttp等。此外,对于软件开发,大多数开发团队的软件开发成熟度依然停留在最基础的初始级,只有少部分开发团队达到可重复级甚至已定义级。在低等级的开发团队往往会导致工作效率低,工作无序,项目进行过程中常放弃当初的计划。管理无章法,缺乏健全的管理制度。开发项目成效不稳定,项目成功主要依靠项目负责人的经验和能力,他一但离去,工作秩序面目全非。因此,优秀的组织管理,良好的开发框架是高效开发Android应用有利因素。
(二)研究主要成果
(1)基于Android端的MVP模式
当PC端MVC模式应用于Android端时,开发人员发现:由于Activity/Fragment既有MVC模式中的view属性,又有Controller属性,导致Activity/Fragment文件过于庞大,难以维护。而且因此,view和model可以直接交互,导致Activity/Fragment的耦合性很高,不符合软件设计原则中的“高内聚,低耦合”。对于这种情况,MVP模式就诞生了。MVP模式是由数据处理(model)层、视图(view)层、逻辑(presenter)层构成。其中数据处理层,主要负责网络请求,本地数据加载等操作,进一步简化Activity的代码。显示层,把页面显示的逻辑通过xml和Activity显示。逻辑层,从Activity中抽离出功能逻辑,简化Activity的代码。从MVP的构成来看,Presenter和Model都是为了View层存在的,所以MVP的核心是View层。MVP模式将MVC中的Controller变为Presenter,同时改变了通讯方向,使Android端的代码耦合度降低。[2]
MVP模式可以让家装App在开发阶段有效避免数据一个模块的修改产生的涟漪效应,提高模块的可复用性,从而提高开发效率。此外,也可以避免一些因耦合度高导致数据泄露等安全事件发生,对用户隐私有更好的保护。
(2)基于Android端的MVVP模式
MVP模式随着业务逻辑的增加,UI的改变多的情况下,会有非常多的跟UI相关的case,这样就会造成View的接口会很庞大。而MVVM就解决了这个问题。它是由数据处理(model)层、视图(view)层以及视图模型(view model)层三层构成。MVVM模式通过双向绑定的机制,实现数据和UI内容,只要想改其中一方,另一方都能够及时更新的一种设计理念,这样就省去了很多在View层中写很多case的情况,只需要改变数据就行。看起来MVVM很好的解决了MVC和MVP的不足,但是由于数据和视图的双向绑定,导致出现问题时不太好定位来源,有可能数据问题导致,也有可能业务逻辑中对视图属性的修改导致。[3]
- OkHttp3 Retrofit RXJava 响应式网络框架
HTTP是现代应用常用的一种交换数据和媒体的网络方式,高效地使用HTTP能让资源加载更快,节省带宽。OkHttp是一个高效的HTTP客户端,它有以下默认特性:支持HTTP/2,允许所有同一个主机地址的请求共享同一个socket连接;连接池减少请求延时;透明的GZIP压缩减少响应数据的大小;缓存响应内容,避免一些完全重复的请求。当网络出现问题的时候OkHttp依然坚守自己的职责,它会自动恢复一般的连接问题,如果你的服务有多个IP地址,当第一个IP请求失败时,OkHttp会交替尝试你配置的其他IP,OkHttp使用现代TLS技术(SNI, ALPN)初始化新的连接,当握手失败时会回退到TLS1.0。
以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。