Anroid App内存优化

2019-12-17  本文已影响0人  北疆小兵

背景

在移动开发过程中,由于app内存和存储空间有限,而系统分配给每个app的内存是有一定限制的,当app申请的内存超过限制后,就有可能出现内存溢出而导致app崩溃,影响用户体验甚至导致用户卸载app,因此性能优化是非常值得投入的一个事情。一般来说,所有的优化都可以分为以下两种情况:

*   以空间换时间(数据预加载)
*   以时间换时间(1.串行改并行 2.懒加载:先初始化优先级高的,优先级低的延迟加载)

定义

优化处理 应用程序的内存使用、空间占

作用

避免因内存使用/管理不当,导致内存泄漏、 内存溢出、内存占用过大,导致app卡顿甚至崩溃

常见的内存问题 & 解决方案

内存泄漏

图片资源Bitmap相关

内存抖动

简介

优化方案

尽量避免频繁创建大量、临时的小对象

常用性能优化tips

1.线程可重复利用,节省线程的创建和回收开销
2.控制线程的并发数,减少并发问题
3.控制线程状态

1.使用BitmapFactory.options 对图片压缩读取, inSampleSize:缩放比例,把图片载入内存之前,先计算合适的缩放比例。

  1. 对像素要求不高的情况下,Config由ARGB_8888改为 ARGB_565。
  2. 及时将bitmap置为null。
  3. 显示本地图片时,用tinypng压缩之后再使用
  4. 许多地方不需要存内存缓存,比如闪屏广告图,app启动之后就不会再使用了,可以加载的时候 memoryCache(false)
  5. 许多地方不需要磁盘缓存,比如发布动态,从图库中选图,不需要再存一份磁盘缓存了,本身那些图片都是本地图片。直接 diskCache(false)

启动优化

避免内存泄漏

定位性能问题

上一篇下一篇

猜你喜欢

热点阅读