前言:想要写出一篇引人入胜的文章?我们特意为您整理了Android方案设计论文范文,希望能给你带来灵感和参考,敬请阅读。
一、android网络负载请求优化方案
1.1Android网络优化分析
一般造成APP卡顿不流畅,数据请求缓慢的网络相关原因有:多网络请求同时异步并发;网络请求的生命周期没有和Activity和生命周期的联动,Activity关闭后也可能某个网络请求还在后台进行;网络请求的优先级处理不合理;重复网络请求;网络数据接口设计不合理;没有设置网络数据缓存;网络请求的图片没有做缓存处理;创建过多的不必要对象,造成频繁GC等。
1.2APP架构设计
采用MVC设计模式,逻辑业务,数据和视图层分离。这样在后期改进和个性化定制时不需要重新编写业务逻辑。网络请求框架采用谷歌自己的框架Volley。Volley是FicusKirpatrick在GooogleI/O2013的一个处理和缓存网络请求的库,能使网络通信更快,更简单,更健壮。Volley提供JSON,图像等的异步下载;网络请求的排序(scheduling);网络请求的优先级处理;缓存,多级别取消请求,和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)。
1.3Android优化方案设计
目前Android平台的应用越来越多,基于Android平台的开发者也越来越多。对于手机平台来说,如何在这么小的平台上流畅的运行一个程序变得越来越重要。其中网络负载请求这块是APP性能优化的一个重要的部分。高性能的APP一般网络数据请求效率也都非常的高,体验自然会得到提升。本文从Android平台移动APP的网络负载请求优化入手,分析和设计一个基于APP网络数据请求模块的架构和优化设计方案。在APP的程序中Application里创建一个全局网络负载请求线程池,用于管理整个APP的网络请求,并进行优先级排序处理。单例模式,保证APP全局只有一个网络请求实例,避免创建过多对象,无法管理,耗费系统资源。网络线程池开辟一块内存空间,里面存放了众多(未死亡)的线程,池中线程执行调度由池管理器来处理。当有线程任务时,从池中取一个,执行完成后线程对象归池,这样可以避免反复创建线程对象所带来的性能开销,节省了系统的资源。优先级请求排序策略。设置线程池的核心线程数和最大线程数。所有BlockingQueue都可用于传输和保持提交的任务。可以使用此队列与池大小进行交互:如果运行的线程少于corePoolSize,则Executor始终首选添加新的线程,而不进行排队;如果运行的线程等于或多于corePoolSize,则Executor始终首选将请求加入队列,而不添加新的线程;如果无法将请求加入队列,则创建新的线程,除非创建此线程超出maximumPoolSize,在这种情况下,任务将被拒绝。网络请求及时回收,与Activity同生命周期控制。在APP的全局Application里暴露一个添加和关闭回收网络请求的List,用来及时的维护和销毁网络负载请求。这样如果一个Activity停止的时候,同时取消所有或部分未完成的网络请求。这样就做到了多级别取消请求和Activity和生命周期的联动。合理的数据库接口对接设计。在不影响数据库请求效率和负载的前提下,用尽可能的少的接口去为APP提供数据。例如一个APP的界面Activity,尽量用最少的请求获取网络数据。这样少量的网络请求会提升APP稳定性和流畅性。设置网络超时时间和网络请求缓存。对于网络请求如果不设置合理的超时时间,会导致某个请求在服务器没有返回数据的情况下,不停地一直在后台运行,耗费内存,所以设置超时时间会避免这一问题的出现。同时可以根据需要适当设置下网络请求缓存,当重复请求某个接口时在规定的缓存有效时间内,读取网络缓存,可以减少耗费流量和优化速度。设立数据库缓存机制。可以使用内置SQlite进行相应的网络返回的数据进行缓存。优先存储一些固定的信息到数据库,例如用户的永远不会变得信息,如id,性别,出生日期类似的。笼统的说,不变文件的缓存时间是永久,变化文件的缓存时间是最大忍受不变时间。采用缓存,可以进一步大大缓解数据交互的压力,又能提供一定的离线浏览。当然缓存的数据需要更新的也要及时更新缓存。设置图片缓存,并且针对列表ListView或GridView等进行优化。图片处理加载在Android开发中经常会用到,图片加载是一个非常耗费内存的,过大和过多就会造成内存溢出。简单的缓存逻辑就是缓存网络图片到本地文件夹,下次重复加载时判断本地缓存是否有,有的话读取本地缓存,没有就重新获取,加载网络图片也是异步处理。图片处理要考虑多线程,缓存,内存溢出等很多方面。对于一些缩略图和原图显示要处理得当,缩略图显示的地方要讲图片压缩处理合适尺寸。像ListView和GridView这种列表在滚动和停止时要对图片加载进行处理,滚动时停止图片加载工作,停止滚动列表后再进行加载图片数据。这样可以避免滑动中列表卡顿和内存溢出情况。
二、总结
对于APP性能方面的优化有很多方面,其中网络方面是一个重要的方向,大部分的APP的数据都是要和网络打交道,所以很好的使用网络请求、根据不同的情况和需求进行变更算法和优化策略尤为重要。良好的优化网络策略会让APP变得更加的快速,体验更加的优秀。
作者:谭东 杨德刚 单位:重庆师范大学