android 内存优化

OOM

内存泄漏引起很多问题:

1:节目卡顿。反应慢(高内存使用情况JVM 虚拟机的频繁离职GC)

2:消失

3:直接崩溃

ANDROID 内存面临的问题

1: 有限的堆内存,原始仅仅有16M

2:内存大小消耗等依据设备。操作系统等级。尺寸的不同而不同

3:程序不能直接控制

4:支持后台多任务处理

5:执行在虚拟机之上

5R

1.Reckon(计算)

首先须要知道你的app所消耗内存的情况,知己知彼才干百战不殆

2.Reduce(降低)

消耗更少的资源

3.Reuse(重用)

当第一次使用完以后,尽量给其它的使用

5.Recycle(回收)

回收资源

4.Review(检查)

回想检查你的程序。看看设计或代码有什么不合理的地方。

1.Reckon(计算)

首先须要知道你的app所消耗内存的情况,知己知彼才干百战不殆

2.Reduce(降低)

消耗更少的资源

3.Reuse(重用)

当第一次使用完以后。尽量给其它的使用

5.Recycle(回收)

回收资源

4.Review(检查)

回想检查你的程序,看看设计或代码有什么不合理的地方。

Reduce :

reduce 意思就是降低。直接降低内存的使用。是最有效的优化方法

Bitmap:

Bitmap 是内存消耗大户,绝大多数的OOM崩溃都是在操作Bitmap 时产生的以下看看几个处理图片的方法

图片显示:

我们须要依据需求去载入图片大小

比如在列表中仅用于预览时载入缩略图

仅仅有当用户点击具体条目想看具体信息的时候。这时另启动一个fragement /activity 对话框等等。去显示整个图片

1.Reckon(计算)

首先须要知道你的app所消耗内存的情况,知己知彼才干百战不殆

2.Reduce(降低)

消耗更少的资源

3.Reuse(重用)

当第一次使用完以后,尽量给其它的使用

5.Recycle(回收)

回收资源

4.Review(检查)

回想检查你的程序,看看设计或代码有什么不合理的地方。

图片大小:

直接使用ImageView显示bitmap会占用较多资源,特别是图片较大的时候,可能导致崩溃。

使用BitmapFactory.Options设置inSampleSize, 这样做能够降低对系统资源的要求。

属性值inSampleSize表示缩略图大小为原始图片大小的几分之中的一个,即假设这个值为2。则取出的缩略图的宽和高都是原始图片的1/2,图片大小就为原始大小的1/4。

1.Reckon(计算)

首先须要知道你的app所消耗内存的情况,知己知彼才干百战不殆

2.Reduce(降低)

消耗更少的资源

3.Reuse(重用)

当第一次使用完以后,尽量给其它的使用

5.Recycle(回收)

回收资源

4.Review(检查)

回想检查你的程序。看看设计或代码有什么不合理的地方。

图片像素:

Android中图片有四种属性。各自是:

ALPHA_8:每一个像素占用1byte内存

ARGB_4444:每一个像素占用2byte内存

ARGB_8888:每一个像素占用4byte内存 (默认)

RGB_565:每一个像素占用2byte内存

1.Reckon(计算)

首先须要知道你的app所消耗内存的情况,知己知彼才干百战不殆

2.Reduce(降低)

消耗更少的资源

3.Reuse(重用)

当第一次使用完以后,尽量给其它的使用

5.Recycle(回收)

回收资源

4.Review(检查)

回想检查你的程序,看看设计或代码有什么不合理的地方。

图片回收:

使用Bitmap过后,就须要及时的调用Bitmap.recycle()方法来释放Bitmap占用的内存空间,而不要等Android系统来进行释放。

以下是释放Bitmap的演示样例代码片段。

[java] view
plain
copyprint?

  1. // 先推断是否已经回收
  2. if(bitmap != null && !bitmap.isRecycled()){
  3. // 回收而且置为null
  4. bitmap.recycle();
  5. bitmap = null;
  6. }
  7. System.gc()

1.Reckon(计算)

首先须要知道你的app所消耗内存的情况,知己知彼才干百战不殆

2.Reduce(降低)

消耗更少的资源

3.Reuse(重用)

当第一次使用完以后,尽量给其它的使用

5.Recycle(回收)

回收资源

4.Review(检查)

回想检查你的程序,看看设计或代码有什么不合理的地方。

究竟什么时候使用软引用,什么时候使用弱引用呢?

个人觉得。假设仅仅是想避免OutOfMemory异常的发生。则能够使用软引用。假设对于应用的性能更在意,想尽快回收一些占用内存比較大的对象,则能够使用弱引用。

还有就是能够依据对象是否常常使用来推断。假设该对象可能会常常使用的,就尽量用软引用。假设该对象不被使用的可能性更大些,就能够用弱引用。

另外,和弱引用功能类似的是WeakHashMap。WeakHashMap对于一个给定的键。其映射的存在并不阻止垃圾回收器对该键的回收。回收以后,其条目从映射中有效地移除。

WeakHashMap使用ReferenceQueue实现的这样的机制。

1.Reckon(计算)

首先须要知道你的app所消耗内存的情况。知己知彼才干百战不殆

2.Reduce(降低)

消耗更少的资源

3.Reuse(重用)

当第一次使用完以后,尽量给其它的使用

5.Recycle(回收)

回收资源

4.Review(检查)

回想检查你的程序。看看设计或代码有什么不合理的地方。

http://blog.csdn.net/a396901990/article/details/38707007

1.Reckon(计算)

首先须要知道你的app所消耗内存的情况,知己知彼才干百战不殆

2.Reduce(降低)

消耗更少的资源

3.Reuse(重用)

当第一次使用完以后,尽量给其它的使用

5.Recycle(回收)

回收资源

4.Review(检查)

回想检查你的程序。看看设计或什么是不合理的代码。

版权声明:本文博主原创文章,博客,未经同意不得转载。

时间: 2024-10-06 15:48:54

android 内存优化的相关文章

android内存优化大全_上

转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总.挑选.简化后整理而成. 所以我将本文定义为一个工具类的文章,如果你在ANDROID开发中遇到关于内存问题,或者马上要参加面试,或者就是单纯的学习或复习一下内存相关知识,都欢迎阅读.(本文最后我会尽量列出所参考的文章). 内存简介: RAM(random acc

android内存优化大全_中

转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总.挑选.简化后整理而成. 所以我将本文定义为一个工具类的文章,如果你在ANDROID开发中遇到关于内存问题,或者马上要参加面试,或者就是单纯的学习或复习一下内存相关知识,都欢迎阅读.(本文最后我会尽量列出所参考的文章). OOM: 内存泄露可以引发很多的问题:

ANDROID内存优化(大汇总——全)

转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总.挑选.简化后整理而成. 所以我将本文定义为一个工具类的文章,如果你在ANDROID开发中遇到关于内存问题,或者马上要参加面试,或者就是单纯的学习或复习一下内存相关知识,都欢迎阅读.(本文最后我会尽量列出所参考的文章). OOM: 内存泄露可以引发很多的问题:

ANDROID内存优化(大汇总——中)

本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总.挑选.简化后整理而成. 所以我将本文定义为一个工具类的文章,如果你在ANDROID开发中遇到关于内存问题,或者马上要参加面试,或者就是单纯的学习或复习一下内存相关知识,都欢迎阅读.(本文最后我会尽量列出所参考的文章). OOM: 内存泄露可以引发很多的问题: 1.程序卡顿,响应速度慢(内存占用高时JVM虚拟机会频繁触发GC) 2.莫名消失(当你的程序所占内存越大,它在后台的时候就

ANDROID内存优化以及原理(大汇总——上)

写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总.挑选.简化后整理而成. 所以我将本文定义为一个工具类的文章,如果你在ANDROID开发中遇到关于内存问题,或者马上要参加面试,或者就是单纯的学习或复习一下内存相关知识,都欢迎阅读.(本文最后我会尽量列出所参考的文章). 内存简介: RAM(random access memory)随机存取存储器.说白了就是内存. 一般Java在内存分配时会涉及到以下区域: 寄存器(R

ANDROID内存优化——大汇总(转)

原文作者博客:转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! ANDROID内存优化(大汇总——上) 写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总.挑选.简化后整理而成. 所以我将本文定义为一个工具类的文章,如果你在ANDROID开发中遇到关于内存问题,或者马上要参加面试,或者就是单纯的学习或复习一下内存相关知识,都欢迎阅读.(本文最后我会尽量列出所参

Android内存优化大全(中)

转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总.挑选.简化后整理而成. 所以我将本文定义为一个工具类的文章,如果你在ANDROID开发中遇到关于内存问题,或者马上要参加面试,或者就是单纯的学习或复习一下内存相关知识,都欢迎阅读.(本文最后我会尽量列出所参考的文章). OOM: 内存泄露可以引发很多的问题:

ANDROID内存优化(大汇总——全)(转载)

转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总.挑选.简化后整理而成. 所以我将本文定义为一个工具类的文章,如果你在ANDROID开发中遇到关于内存问题,或者马上要参加面试,或者就是单纯的学习或复习一下内存相关知识,都欢迎阅读.(本文最后我会尽量列出所参考的文章). OOM: 内存泄露可以引发很多的问题:

Android内存优化解决 资料和总结的经验分享

在前公司做一个图片处理的应用时, 项目交付的时候,客户的手机在运行应用的时候,一直在崩溃,而这个异常就是OutOfMemory的错误,简称为OOM, 搞得我们也是极其的崩溃,最后 ,我们是通过网上搜集资料和代码走查的方式来优化解决的,这里,我就把我们收集到资料和总结的经验分享下吧. Android的虚拟机是基于寄存器的Dalvik,它的最大堆大小一般是16M,有的机器为24M.我们平常看到的OutOfMemory的错误,通常 是堆内存溢出.移动开发和web开发的最大的区别是设备资源受限,对一般手

android内存优化

写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总.挑选.简化后整理而成. 所以我将本文定义为一个工具类的文章,如果你在ANDROID开发中遇到关于内存问题,或者马上要参加面试,或者就是单纯的学习或复习一下内存相关知识,都欢迎阅读.(本文最后我会尽量列出所参考的文章). OOM: 内存泄露可以引发很多的问题: 1.程序卡顿,响应速度慢(内存占用高时JVM虚拟机会频繁触发GC) 2.莫名消失(当你的程序所占内存越大,它在