1、context使用地方:凡是与UI相关的都只能使用Activity,其他的地方基本使用application
2、使用for循环的时候尽量使用foreach循环,如果必须使用一般for循环,那么int i=0;i < list.size();
的时候要把list.size()作为一个变量,这样对性能有好处
3、什么时候使用merge布局来优化性能,a、布局顶节点时FragmeLayout且不需要设置
background或者padding等属性,可以用mearge代替。b、某布局作为子布局
被其他布局include时,使用merge当做该布局的顶节点,这样在被引入时
顶节点自动被忽略,而将子节点全部合并到主布局中。
4、Drawable和Bitmap的内存占用,Drawable占用的内存要比Bitmap占用的内存少得多
BitmapFactory.decodeStream的方法要比decodeReource和decodeFile方法占用内存少
5、使用lrucache比软引用和弱引用效率高,因为android2.3之后的垃圾回收机制改善了
对软引用的回收
6、优化Dalvik虚拟机的堆内存分配
private final static floatTARGET_HEAP_UTILIZATION = 0.75f;
02.在程序onCreate时就可以调用
03.VMRuntime.getRuntime().setTargetHeapUtilization(TARGET_HEAP_UTILIZATION);
04.即可
自定义我们的应用需要多大的内存,这个好暴力哇,强行设置最小内存大小,代码如下
private final static int CWJ_HEAP_SIZE = 6* 1024* 1024 ;
02. //设置最小heap内存为6MB大小
03.VMRuntime.getRuntime().setMinimumHeapSize(CWJ_HEAP_SIZE);