Android性能优化
来源:互联网 发布:淘宝乡村服务站加盟 编辑:程序博客网 时间:2024/05/21 00:49
1.http用gzip压缩,设置连接超时时间和响应超时时间
http请求按照业务需求,分为是否可以缓存和不可缓存,那么在无网络的环境中,仍然通过缓存的httpresponse浏览部分数据,实现离线阅读。
2.listview 性能优化
1).复用convertView
在getItemView中,判断convertView是否为空,如果不为空,可复用。如果couvertview中的view需要添加listerner,代码一定要在if(convertView==null){}之外。
2).异步加载图片
item中如果包含有webimage,那么最好异步加载
3).快速滑动时不显示图片
当快速滑动列表时(SCROLL_STATE_FLING),item中的图片或获取需要消耗资源的view,可以不显示出来;而处于其他两种状态(SCROLL_STATE_IDLE 和SCROLL_STATE_TOUCH_SCROLL),则将那些view显示出来
3.使用线程池,分为核心线程池和普通线程池,下载图片等耗时任务放置在普通线程池,避免耗时任务阻塞线程池后,导致所有异步任务都必须等待
4.异步任务,分为核心任务和普通任务,只有核心任务中出现的系统级错误才会报错,异步任务的ui操作需要判断原activity是否处于激活状态
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的时候,交互部分,千万不要写成线程不断刷新界面显示,而是根据TouchListener事件主动触发界面的更新
12.Drawable ui组件需要用到的图片是apk包自带的那么一律用setImageResource戒者setBackgroundResource而丌要根据resourceid 注意get(getResources(), R.drawable.btn_achievement_normal)该方法通过resid转换为drawable需要考虑回收的问题如果drawable是对象私有对象在对象销毁前是肯定丌会释放内存的。
13.复用、回收Activity对象 临时的activity及时finish 主界面设置为singleTask 一般界面设置为singleTop
14.位置信息 获取用户的地理位置信息时在需要获取数据的时候打开GPS乊后及时关闭掉 15.在onResume时设置该界面的电源管理在onPause时取消设置
- 【Android】android性能优化
- 【Android】Android性能优化
- 【Android】Android性能优化
- 【Android】【性能优化】 Android 性能优化
- Android性能优化---布局优化
- Android性能优化---布局优化
- android 内存优化 性能优化
- android 内存优化 性能优化 .
- Android 性能优化、内存优化
- Android 性能优化、内存优化
- android性能优化--overdraw优化
- android性能优化---数据库优化
- android性能优化--布局优化
- Android 性能优化、内存优化
- android性能优化--overdraw优化
- Android性能优化-布局优化
- Android性能优化-布局优化
- Android性能优化-数据优化
- 使用Thrift RPC编写程序
- 求1+2+…+n.要求不能使用乘除法、for、while、if、else、switch、case等关键字
- CSS3 2D 转换
- 2013新东方考研英语视频课程(33G)【全程无加密】
- eclipse中启动tomcat,在浏览器里面访问不了主页
- Android性能优化
- 2013新东方考研公共课数学视频课程(34G)【全程无加密】
- class IconEditor : public QWidget
- Unity3D学习:结合Kinect进行游戏开发
- testink converter tool in CSDN
- PowerDesigner 系列 小结
- sql server 判断是否存在数据库,表,列,视图。。。。(注:转载)
- [Python]第五课笔记 --多进程及守护进程编写
- CLOCK函数和C64p_getltime()