Handler遇到OOM

Android app应用性能优化

久未见 提交于 2019-12-01 19:48:16
一、名词解释 内存溢出 实质应用程序不能及时释放内存或者加载到内存上的数据太大而导致的OOM问题 内存泄漏 目标类被其他类持有、导致无法销毁、从而导致目标类无法被调用也无法销毁。 窗体(内存)泄露 是指Activity或者Fragment在Destory的情况下、自身引用被其他对象或者线程持有,无法销毁。 栈内存溢出 ‍StackOverflowError:应用程序调用中,导致栈空间无限延长,超过了虚拟机的承载能力‍ 二、App内存回收机制 app使用内存超过3/4并且不是当前的app,那么系统会回收内存(android.app.ActivityThread) Android系统内存不足时,组建回收顺序问题 http://www.2cto.com/kf/201512/453248.html (空进程,死亡进程,后台进程) 省电方面 Android 应用开发的耗电量控制 使用StrictMode严格模式检测不良代码 三、代码优化 1>Handler的使方式和内存优化 消息队列遵循先进先出(First in First out)的原则来讲某些信息或者任务进行排队等待。android中有自己的消息队列,如Handler和Broadcastreceiver。 andriod提供了 Handler 和 Looper 来满足线程间的通信。Handler 先进先出原则