-
图片部分加载:以图片中心截取一个矩形区域查看全部
-
图片压缩方法查看全部
-
OOM问题优化 1、OOM问题分析 2、强引用、软引用的意义 3、优化OOM问题的方法 4、代码演示 1、OOM问题分析 OOM的必然性与可解决性 OOM绝大多数发生在图片 2、强引用、软引用的意义 1) 如果强引用,必须主动去回收,否则容易出现OOM 若是软引用,系统在不用时自动清理掉 private String strongref; private SoftReference<String> softref; strongref = String.valueOf(Math.radom()); //强引用 softref = new SoftReference(String.valueOf(Math.random())); //弱引用 变量的生命周期和其声明的地方有关,全局和局部,全局的生命周期就是Activity的生命周期,局部就是方法 2)强引用与软引用的使用场景 强引用只能在生命周期结束才能被回收,除非.recycle() 3、优化OOM问题的方法 1)注意临时Bitmap对象的及时回收 2)避免Bitmap的浪费 3)Try catch某些大内存分配操作 4)加载Bitmap:缩放比例、解码格式、局部加载、LRU加载方式 实例: 1)选择图片 2)抽样加载 3)对每个像素的RGB换一下,原来一个像素4个字节,换成2个字节 4)显示部分,可以手指移动 可以参考 之前的例子 http://www.imooc.com/u/1147490/course/489/notes?page=1查看全部
-
笔记五 2、对象复用 1)复用系统自带的资源 2)ListView/GridView的contentView复用 3) 避免在onDraw方法里面执行对象的创建 3、避免内存泄露 内存泄露:由于代码瑕疵,导致这块内存,虽然是停止不用了,但依然被其他东西引用着,使得GC没法对它进行回收。 1)内存泄露会导致剩余可用Heap越来越少,频繁出发GC 实例: private class TestThread extends Thread{ @Override public void run(){ super.run(); while(true){ try{ Thread.sleep(1000*60*5); }catch(InterruptedException e){ e.printStackTrace(); } } } } 以上thread是mainActivity的内部类,会导致thread所在的activity无法被GC回收,因为thread实际上引用了activity的资源 优化 private class TestThread extends Thread{ @Override public void run(){ super.run(); try{ Thread.sleep(1000*60*5); }catch(InterruptedException e){ e.printStackTrace(); } } } 2)尤其Activity的泄露 3)用Application Context而不是Activity Context 4)注意Cursor对象是否及时关闭查看全部
-
SoftReference软引用变量,优先回收查看全部
-
强引用—正常的变量声明,在其生命周期中内存不会被回收 软引用soft references<泛型>可能会被回收查看全部
-
变量的生命周期和其声明的地方有关,全局和局部,全局的生命周期就是Activity的生命周期,局部就是方法查看全部
-
根据屏幕分辨率计算图片的缩放比例查看全部
-
多张图片优化处理:将多张图片放在软引用里,让JVM进行处理,更好的是使用LRU算法将最近最少使用的图片进行回收查看全部
-
部分加载图片,对图片的部分进行显示查看全部
-
图片的ARGB处理,可以节约一半的内存查看全部
-
图片处理的经典代码查看全部
-
根据Uri获得File的文件路径查看全部
-
优化OOM 的方法查看全部
-
OOM优化查看全部
举报
0/150
提交
取消