枕上从妨一夜睡,灯前读尽十年诗。这篇文章主要讲述Android:内存优化的一些总结相关的知识,希望能为你提供帮助。
______________________摘录于:http://www.cnblogs.com/yezhennan/p/5442557.html____________________
1.大图片的处理
Bitmap
bmp
=
BitmapFactory.decodeFile(sourceBitmap,
options);
2.图片使用完毕之后记得回收内存
!bitmap.isRecycled()
--->
bitmap.recycle();
bitmap
=
null;
3.图片缓存 LruCache
4.线程池 Excutors
/** 每次只执行一个任务的线程池 */ ExecutorService singleTaskExecutor =Executors.newSingleThreadExecutor(); /** 每次执行限定个数个任务的线程池 */ ExecutorService limitedTaskExecutor = Executors.newFixedThreadPool(3); /** 所有任务都一次性开始的线程池 */ ExecutorService allTaskExecutor = Executors.newCachedThreadPool(); /** 创建一个可在指定时间里执行任务的线程池,亦可重复执行 */ ExecutorService scheduledTaskExecutor = Executors.newScheduledThreadPool(3);
5.convertView的缓存处理
6.curosr i/o 注册广播 bindservice 注册一些监听器记得注销掉.
--------------------------------------------------------------------------------------------------------------------------------------------------
其他小tips:
1. 分辨率适配-ldpi,-mdpi, -hdpi配置不同精度资源,系统会根据设备自适应,包括drawable, layout,style等不同资源。
2.尽量使用dp(density independent pixel)开发,不用px(pixel)。
3.多用wrap_content, match_parent
4.永远不要使用AbsoluteLayout
5.使用9patch(通过~/tools/draw9patch.bat启动应用程序),png格式
6.将Acitivity中的Window的背景图设置为空。getWindow().setBackgroundDrawable(null); android的默认背景是不是为空。
7.View中设置缓存属性.setDrawingCache为true。
Desgin Review(设计检查):
Desgin Review主要侧重检查一下程序的设计是否合理,包括框架的设计,界面的设计,逻辑的设计(其实这些东西开发之前就应该想好了)。
【Android:内存优化的一些总结】
框架设计:
是否定义了自己的Activity和fragment等常用控件的基类去避免进行重复的工作
是否有完善的异常处理机制,即使真的出现OOM也不会直接崩溃导致直接退出程序
界面设计:
1.在视图中加载你所需要的,而不是你所拥有。因为用户不可能同时看到所有东西。最典型的例子就是ListView中的滑动加载。
2.如果数据特别大,此时应该暗示用户去点击加载,而不是直接加载。
3.合理运用分屏,转屏等,它是个双刃剑,因为它即可以使程序更加美观功能更加完善,但也相应增加了资源开销。
逻辑设计:
避免子类直接去控制父类中内容,可以使用监听等方式去解决
推荐阅读
- Android中LaunchMode详解
- Android Activity简介和自定义视图
- Android使用Application的好处
- android ProgressBar 进度条的进度两端是圆角的方法
- Android之文件数据存储
- android 和h5互调步骤
- Android中实现多彩的霓虹灯
- 微课程--Android--Android概述
- 各大安卓应用市场APP上传提交与收录