android性能优化

  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,之后及时关闭掉

你可能感兴趣的:(android性能优化)