
- 回收机制
Android系统中会为app保持尽可能多的数据,有些进程可能已经不再使用了,但是它的数据仍保存在内存当中。
当安卓系统发现内存不足时,就会杀死其他进程,回收其内存。进程优先级分为:前台进程、可见进程、服务进程、后台进程、空进程。优先级越低的进程被系统杀死的概率就越大。
这里,注意回收效益的概念:系统会优先杀掉占用内存更大的进程。
###内存优化方法
- 当Service完成任务后,尽量停止它。尽量用IntentService替代Service。Service是在主线程中工作,而IntentService是在工作线程工作。IntentService在工作完成时自动退出,而Service停止需要调用其Stop方法。
- 在UI不可见时,释放一些只有UI使用的资源。onTrimMemery。
- 避免滥用Bitmap导致的内存浪费。
- 使用针对内存优化过的数据容器。如SparseArray替代HashMap,少用枚举常量。
- 使用ZIP对齐的APK。
- 使用多进程。
###内存溢出vs内存泄漏
内存泄漏过多导致内存溢出