1.listview性能优化
2.http用gzip压缩,设置连接超时时间和响应超时时间
1).复用convertView
2).异步加载图片
3).快速滑动时不显示图片
4).list中异步加载的图片
5).BaseAdapter避免内存溢出
3.异步任务,分为核心任务和普通任务,只有核心任务中出现的系统级错误才会报错,异步任务的ui操作需要判断原activity是否处于激活状态
1).主线程不要进行网络处理;
2).主线程不要进行数据库处理;
3).主线程不要进行文件处理;
4.超级大胖子Bitmap
5.使用线程池,分为核心线程池和普通线程池,下载图片等耗时任务放置在普通线程池,避免耗时任务阻塞线程池后,导致所有异步任务都必须等待
6.尽量避免static成员变量引用资源耗费过多的实例,比如Context
7.使用WeakReference代替强引用,弱引用可以让您保持对对象的引用,同时允许GC在必要时释放对象,回收内存。对于那些创建便宜但耗费大量内存的对象,即希望保持该对象,又要在应用程序需要时使用,同时希望GC必要时回收时,可以考虑使用弱引用。
8.保证Cursor占用的内存被及时的释放掉,而不是等待GC来处理。并且Android明显是倾向于编程者手动的将Cursor close掉
9.应用开发中自定义View的时候,交互部分,千万不要写成线程不断刷新界面显示,而是根据TouchListener事件主动触发界面的更新
10.线程也是造成内存泄露的一个重要的源头。线程产生内存泄露的主要原因在于线程生命周期的不可控
11.复用、回收Activity对象临时的activity及时finish主界面设置为singleTask一般界面设置为singleTop
12.如果ImageView的图片是来自网络,进行异步加载
13.Drawable ui组件需要用到的图片是apk包自带的,那么一律用setImageResource或者setBackgroundResource,而不要根据resourceid
14.在onResume时设置该界面的电源管理,在onPause时取消设置
15.位置信息获取用户的地理位置信息时,在需要获取数据的时候打开GPS,之后及时关闭掉
2.http用gzip压缩,设置连接超时时间和响应超时时间
1).复用convertView
2).异步加载图片
3).快速滑动时不显示图片
4).list中异步加载的图片
5).BaseAdapter避免内存溢出
3.异步任务,分为核心任务和普通任务,只有核心任务中出现的系统级错误才会报错,异步任务的ui操作需要判断原activity是否处于激活状态
1).主线程不要进行网络处理;
2).主线程不要进行数据库处理;
3).主线程不要进行文件处理;
4.超级大胖子Bitmap
5.使用线程池,分为核心线程池和普通线程池,下载图片等耗时任务放置在普通线程池,避免耗时任务阻塞线程池后,导致所有异步任务都必须等待
6.尽量避免static成员变量引用资源耗费过多的实例,比如Context
7.使用WeakReference代替强引用,弱引用可以让您保持对对象的引用,同时允许GC在必要时释放对象,回收内存。对于那些创建便宜但耗费大量内存的对象,即希望保持该对象,又要在应用程序需要时使用,同时希望GC必要时回收时,可以考虑使用弱引用。
8.保证Cursor占用的内存被及时的释放掉,而不是等待GC来处理。并且Android明显是倾向于编程者手动的将Cursor close掉
9.应用开发中自定义View的时候,交互部分,千万不要写成线程不断刷新界面显示,而是根据TouchListener事件主动触发界面的更新
10.线程也是造成内存泄露的一个重要的源头。线程产生内存泄露的主要原因在于线程生命周期的不可控
11.复用、回收Activity对象临时的activity及时finish主界面设置为singleTask一般界面设置为singleTop
12.如果ImageView的图片是来自网络,进行异步加载
13.Drawable ui组件需要用到的图片是apk包自带的,那么一律用setImageResource或者setBackgroundResource,而不要根据resourceid
14.在onResume时设置该界面的电源管理,在onPause时取消设置
15.位置信息获取用户的地理位置信息时,在需要获取数据的时候打开GPS,之后及时关闭掉