【Android 异常与性能优化】内存管理

本文介绍了Android系统的内存管理机制,包括内存的分配与回收过程。此外还提供了多种内存优化的方法,比如合理使用Bitmap和选择合适的数据容器等。同时区分了内存溢出与内存泄漏的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

###内存管理机制概述 1. 分配机制 操作系统会**为每一个进程合理地分配内存资源**,从而保证每一个进程都能正常运行,而不至于内存不够使用或内存占用过多。 2. 回收机制 操作系统会在内存不足时**合理地回收内存**并再分配内存,从而保证新的进程能够正常进行。 ###Android内存管理机制 1. 分配机制 Android在为每个进程分配内存的时候采用了弹性的分配方式,就是说,一开始系统不会为app分配太多内存,而是为每一个app分配一个小额量。随着app的运行当前内存已经不够使用时,系统会为app**分配额外内存**。
  1. 回收机制
    Android系统中会为app保持尽可能多的数据,有些进程可能已经不再使用了,但是它的数据仍保存在内存当中。
    当安卓系统发现内存不足时,就会杀死其他进程,回收其内存。进程优先级分为:前台进程、可见进程、服务进程、后台进程、空进程。优先级越低的进程被系统杀死的概率就越大。
    这里,注意回收效益的概念:系统会优先杀掉占用内存更大的进程。

###内存优化方法

  1. 当Service完成任务后,尽量停止它。尽量用IntentService替代Service。Service是在主线程中工作,而IntentService是在工作线程工作。IntentService在工作完成时自动退出,而Service停止需要调用其Stop方法。
  2. 在UI不可见时,释放一些只有UI使用的资源。onTrimMemery
  3. 避免滥用Bitmap导致的内存浪费。
  4. 使用针对内存优化过的数据容器。如SparseArray替代HashMap,少用枚举常量
  5. 使用ZIP对齐的APK
  6. 使用多进程。

###内存溢出vs内存泄漏
内存泄漏过多导致内存溢出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值