iOS在线商城客户端优化方案设计与实现

来源 :北京邮电大学 | 被引量 : 0次 | 上传用户:wangtao7897
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
本文以实际的在线商城工程项目实践为基础,研究分析了在线商城应用在业务迭代发展过程中遇到的一些问题。传统MVC(Model View Controller)模式将工程结构层次划分得较为清晰,但是随着功能的不断扩展,MVC模式当中的控制层变得十分臃肿且难以维护、复用。针对MVC模式存在的问题,目前有MVP(Model View Presenter)、VIPER、MVVM(Model View ViewModel)等较好的技术方案。MVVM模式在原有的MVC模式的基础上,演化为ViewModel层以及双向绑定机制,有效地解决了控制层结构混乱以及状态变量太多导致逻辑复杂的问题。而本文引入ReactiveCocoa编程框架,与MVVM模式相互配合,以函数响应式编程思想利用信号进行不同模块之间的绑定,最终解决了工程项目随着业务迭代发展而产生结构不合理的问题,而且引用MVVM模式能够复用不同页面之间的控制逻辑,更利于工程项目的维护和扩展。在线商城应用的特点之一是需要展示大量不同种类的商品,页面布局逻辑的复杂会导致上下滑动产生丢帧的问题。目前对于优化滑动性能成熟的解决方案是在Runloop空闲阶段计算高度,然后在滑动过程中使用缓存高度进行优化,该方案在一些布局较为复杂的场景下能够将FPS(Frames Per Second)提升到56Hz,但是要达到滑动过程中完全无丢帧的效果,提升FPS到60Hz,需要新的性能优化方案。本文从AutoLayout与Frame布局算法的原理出发,分析了性能损耗的具体差异,并总结了滑动性能优化需要考虑的几点关键因素,针对性的提出预缓存、异步绘制、异步渲染等解决方案,使得滑动过程中的FPS从37Hz上升到60Hz,基本达到滑动无丢帧,比业界使用Runloop技术方案具有更好的优化效果。之后本文对加载网络数据时机进行调整,相较于之前浏览完数据再进行加载的方式,本文使用的动态预加载方式能够提供更好的滑动优化体验。由于App Store审核周期原因,导致iOS应用不能及时修正线上问题或者推广运营活动。目前流行的热修复方案是脚本补丁进行升级,但是缺陷在于脚本语言与原生语言之间的转换过程性能消耗较大。本文根据苹果公司对于动态库的推广,使用动态库下发的方式使在线商城应用具备热更新及热修复功能,相较于脚本补丁进行升级修复,动态库热修复方案在程序的执行效率上有更好的表现。之后本文针对热修复会造成应用启动时延较高的问题研究总结了不同的修复策略,在修复问题的同时能够降低用户启动应用等待时间。同样由于在线商城应用页面逻辑较为复杂,传统指定静态页面跳转的方式会使得不同模块之间耦合较大,工程结构混乱,逻辑难以维护,而且大量静态文件会影响程序编译链接的效率。由于指定静态页面跳转是客户端编程默认的使用方式,目前业界针对页面跳转逻辑较为复杂的情况采用混合技术的方案解决,将前端页面嵌入到客户端工程中,使得应用有较好的动态属性,但是该方案劣势也非常明显,就是应用整体交互体验不如原生应用友好。本文以Objective-C的runtime框架为基础,分析了语言的消息传递以及消息转发机制,利用底层原理设计实现一套动态页面跳转的技术方案,该方案保持了原生应用良好的交互体验,并且使得应用具有动态特性,收敛跳转逻辑,统一管理,很好地解决了客户端静态页面跳转所存在的问题。
其他文献
二型模糊系统降型过程的计算精度、计算时间和系统信息的损失会对整个二型模糊系统的性能产生很大地影响.本文首先介绍了二型模糊集合的基本概念及二型模糊系统的计算过程,然
新《课程标准》提出的小学英语教学的任务,是通过基本训练的途径,培养学生掌握语言的能力,从而能灵活地运用英语。按照《新课程标准》的教学目标要求,在小学英语教学中如何