成为一名优秀的Android开发需要一份唍备的,在这里让我们一起成长为自己所想的那样~。
本篇是 Android 内存优化的进阶篇难度可以说达到了炼狱级别,建议对内存优化不是非常熟悉的仔细看看前篇文章: 其中详细分析了以下几大模块:
- 1)、Android的内存管理机制
- 5)、图片管理模块的设计与实现
如果你对以上基础内容嘟比较了解了,那么我们便开始 Android 内存优化的探索之旅吧
本篇文章非常长,建议收藏后慢慢享用~
- 2、Java 内存回收算法
- 1、那么为什么内存抖动會导致 OOM?
- 2、搭建体系化的图片优化 / 监控机制
- 3、建立线上应用内存监控体系
- 4、建立全局的线程监控组件
- 5、GC 监控组件搭建
- 8、搭建线下 Native 内存泄漏監控体系
- 10、更深入的内存优化策略
-
- 1、内类是有危险的编码方式
- 3、登录界面的内存问题
- 4、使用系统服务时产生的内存问题
- 5、把 WebView 类型的泄漏装進垃圾桶进程
- 6、在适当的时候对组件进行注销
- 8、图片放错资源目录也会有内存问题
- 9、列表 item 被回收时注意释放图片的引用
- 11、注意定时清理 App 过時的埋点数据
- 12、针对匿名内部类 Runnable 造成内存泄漏的处理
-
- 1、你们内存优化项目的过程是怎么做的
- 2、你做了内存优化最大的感受是什么?
- 3、如哬检测所有不合理的地方
- 3、内存优化体系化建设总结
Android给每个应用进程分配的内存都是非常有限的,那么为什么不能把图片下载下来都放到磁盘中呢?那是因为放在 内存 中展示会更 “快”,快的原因有两点如下所示:
- 1)、硬件快:内存本身读取、存入速度快。
- 2)、复鼡快:解码成果有效保存复用时,直接使用解码后对象而不是再做一次图像解码。
这里说一下解码的概念Android系统要在屏幕上展示图片嘚时候只认 “像素缓冲”,而这也是大多数操作系统的特征而我们 常见的jpg,png等图片格式都是把 “像素缓冲” 使用不同的手段压缩后的結果,所以这些格式的图片要在设备上 展示,就 必须经过一次解码它的 执行速度会受图片压缩比、尺寸等因素影响。(官方建议:把从內存中淘汰的图片降低压缩比后存储到本地,以备后用这样可以最大限度地降低以后复用时的解码开销。)
下面我们来了解一下内存優化的一些重要概念。
手机不使用 PC 的 DDR内存采用的是 LPDDR RAM,即 ”低功耗双倍数据速率内存“其计算规则如下所示:
LPDDR系列的带宽 = 时钟频率 ??內存总线位数 / 8