background image

5.尽量避免 static 成员变量引用资源耗费过多的实例,比如 Context
6.使用 WeakReference 代替强引用
弱引用可以让您保持对对象的引用,同时允许 GC 在必要时释放对象,回收内存。对于那
些创建便宜但耗费大量内存的对象,即希望保持该对象,又要在应用程序需要时使用,
同时希望 GC 必要时回收时,可以考虑使用弱引用。
7.超级大胖子 Bitmap
及时的销毁(Activity 的 onDestroy 时,将 bitmap 回收)
设置一定的采样率
巧妙的运用软引用
drawable 对应 resid 的资源,bitmap 对应其他资源
8.保证 Cursor 占用的内存被及时的释放掉,而不是等待 GC 来处理

 

并且 Android 明显是倾向于编程者手动的将 Cursor close 掉。
9.线程也是造成内存泄露的一个重要的源头
线程产生内存泄露的主要原因在于线程生命周期的不可控,合理使用多线程。
10.如果 ImageView 的图片是来自网络,进行异步加载
11.自定义 View
应用开发中自定义 View 的时候,交互部分,千万不要写成线程不断刷新界面显示,而是
根据 TouchListener 事件主动触发界面的更新

提升 Android 应用开发性能的十大要点
第一个要点:首先要有良好的编程习惯
要成为一名优秀的资源管理员;既要运用常识,还要使用公认的算法和标准的设计模式。
在资源使用方面,如果你打开了资源,要记得关闭资源。要尽量晚地获取,尽量早地释放。
这些由来已久的编程准则同样适用于你的 Android 应用程序,如果它们使用底层的设备
服务,更是如此。
比如说,假设你编写的一个应用程序依赖基于位置的服务。除非你绝对有必要,否则不要
开始注册、获取位置最新信息;而且要确保,一旦你不再需要这些信息,就要取消获取最
新信息的注册。这将帮助你避免不必要地耗费设备电池电量或占用系统资源。
第二个要点:让阻塞操作远离主用户界面线程
想确保你的应用程序运行起来很灵活,就要使用 AsyncTask、线程、IntentService 或自定义
后台服务来处理脏活。应使用装入器来简化装入时间长的数据(如游标)的状态管理。你无
法容忍你的应用程序在某个操作正在处理的时候出现滞后或停顿。
如果某个操作很费时间和资源,就要卸载这部分操作、对它进行异步处理,那样你的应用
程序仍保持响应迅即,用户可以处理他们的事务。这个原则适用于下列操作:磁盘读写,
访问内容提供方、数据库和互联网,以及解析和其他长时间的任务。
第三个要点:使用最新的 Android 软件开发工具包(SDK)版本、应用编程接口(API)和最佳
实践
确保你开发的应用程序是最新的,因而要使用 Android 平台提供的最新工具。随着 Android

 

平台不断发展,它也在不断改进。一些功能 可能已被弃用,或者换成了更好的功能。核心
API 得到了修正版(bug fix)和性能改进。已经引入了装入器等新的 API,帮助开发者编写出
运行更稳定、响应更迅即的应用程序。

                     找软件资料,就到一览软件文库

http://wk.yl1001.com/rj/