内存调优第一步:
查找有没有对Activity上下文的全局引用,导致活动所占资源没法释放的问题,找到后尽量使用application来替换,否则用完之后主动释放。改种问题导致的安卓内存泄露通常是
开发人员比较容易忽略的,而且经常会出现。此外需要注意第三方安卓jar包或lib项目也有这种问题,当协调处理。
内存调优第二步:
对Handler和Thread的使用,避免在handler或thread中引用外部activity的成员,特别是存在handler或thread的循环迭代时在活动或者上下文生命周期结束时一定要释放线程或handler所占有的资源
,通常的做法是结束掉handler或线程,或者在编写handler或thread的时候使用静态内部类,任何时候只占有一份外部实例引用,但这种情况下依然存在一份内存遗留,不过没有太大关系。
内存调优第三步:
图片缓存延迟加载,启用弱引用或软引用,此外还有一件重要的事情,在内存中需要尽最大可能缓存需要尺寸的图片,而不是缓存原图,原图只缓存在磁盘中,而且查看原图是一般情况就是一个页面
只查询一张图,查看完毕需要释放图片recycle
查找有没有对Activity上下文的全局引用,导致活动所占资源没法释放的问题,找到后尽量使用application来替换,否则用完之后主动释放。改种问题导致的安卓内存泄露通常是
开发人员比较容易忽略的,而且经常会出现。此外需要注意第三方安卓jar包或lib项目也有这种问题,当协调处理。
内存调优第二步:
对Handler和Thread的使用,避免在handler或thread中引用外部activity的成员,特别是存在handler或thread的循环迭代时在活动或者上下文生命周期结束时一定要释放线程或handler所占有的资源
,通常的做法是结束掉handler或线程,或者在编写handler或thread的时候使用静态内部类,任何时候只占有一份外部实例引用,但这种情况下依然存在一份内存遗留,不过没有太大关系。
内存调优第三步:
图片缓存延迟加载,启用弱引用或软引用,此外还有一件重要的事情,在内存中需要尽最大可能缓存需要尺寸的图片,而不是缓存原图,原图只缓存在磁盘中,而且查看原图是一般情况就是一个页面
只查询一张图,查看完毕需要释放图片recycle