做了Android开发那么久,总结一下平时可能用到的内存优化的点:
1、load bitmap时,若是图片大于屏幕分辨率,要缩小,若小于就按原size load,同时注意2.3及以下系统bitmap是分配在native memory 而3.0后是在虚拟机的heap里
2、在onTrimMemory() level为TRIM_MEMORY_HIDDEN时 release和UI相关的资源,如bitmap,数组等
3、后台任务能够使用IntentService完成的就使用IntentService,因为其自带线程 done后service自动stop,不会对系统的process cached的数量有影响
4、能够使用系统share memory就使用 如cursor buffer Zygote进程加载的resources
5、Use optimized data containers 如SparseArray, SparseBooleanArray, and LongSparseArray.
6、Be aware of memory overhead 如枚举类型内存使用量是static field的两倍on Android.
原文:http://blog.csdn.net/eddylei/article/details/45154207