您的位置:首页 > 移动开发 > Android开发

Android 应用内存泄露的检查点

2015-04-19 23:36 309 查看

0. 检查StrictMode的Log输出

很多泄漏问题都会在StrictMode有输出打印,首先看一下StrictMode的Log中是否有有用信息。

大多数问题可以发现,比如service和cursor。

检查unbindService

注意:

即使bindService时返回false,也一定要调用unbindService。这一点比较奇怪。

检查关闭Cursor

如果没有头绪,检查以下几点。

1. 避免对Context保持长期的引用

不要使用static的资源对象,因为会保持对activity实例的引用。

http://android-developers.blogspot.co.il/2009/01/avoiding-memory-leaks.html

不要在Activity中使用非static的内部类(如Handler),改为使用static内部类,内部类中使用Activity的WeakReference:
http://www.androiddesignpatterns.com/2013/01/inner-class-handler-memory-leak.html

2. 检查AsyncTask

要及时cancel(尤其是在onStart或onCreate等方法中被动调用的情况)
避免异常情况导致doInBackground阻塞
尽量复用实例

3. 检查AssetsManager

若有加载字体等需要获取AssetsManager的操作,避免使用
context.getAssets()重复引用AssetsManager
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: