ANR
应用程序无响应的弹窗,主要原因是在主线程做了耗时操作
OOM
什么时候OOM
当前占用的内存加上我们申请的内存资源超过了虚拟机分配的最大内存就会抛出Out of Memory
容易混淆的概念
内存溢出:即OOM
内存抖动: 短时间内大量的对象被创建回收,造成堆内存压力,触发更多的GC.
内存泄漏: 进程中的某些对象,已经未被其他对象所引用,但是他们却可以直接或间接引用到GC Root,引用到其他我被回收的对象
进程中无用对象(不再使用的对象)持续占有内存或无用对象内存得不到释放,从而造成内存空间的浪费叫内存泄漏
解决办法
bitmap
图片显示,及时释放内存(释放Native内存),图片压缩,inBitmap,捕获异常
listview
convertview/lru
避免在ondrow中创建对象
了解内存回收机制
UI卡顿
卡顿原理
内存泄漏
内存管理
冷启动优化
其他优化
一.android 不用静态变量存储数据
1.静态变量等数据由于进程已经被杀死而被初始化(由于进程回收后,系统会重新创建application,启动上次用户离开时的activity,造成app从未杀掉系统的假象)
2.使用文件/SP等方式
二.有关SP问题
1.不能跨进程(每个进程维护一份SP副本,进程结束后同步数据)
2.不能存储大数据
1)阻塞主进程
2)大量临时对象
3)常驻内存