性能优化

性能优化

代码优化原则:

  • 时间换时间:
    如禁用电脑的一些开机启动项,通过减少这些没必要的启动项的时间从而节省开机时间
    如网站界面上数据的分批获取,AJAX技术
  • 时间换空间:
    如拷贝文件时new一个字节数组当缓冲器,即byte[] buffer = new byte[1024]。
    为什么只new一个1024个字节的数组呢,new一个更大的字节数组不是一下就把文件拷贝完了么?这么做就是为了牺牲时间节省有限的内存空间
  • 空间换时间:
    如用Windows系统自带的搜索文件的功能搜索文件时会很慢,但是我们牺牲电脑硬盘空间安装一个everything软件来搜索文件就特别快
  • 空间换空间:
    如虚拟内存

Android开发中的体现

  • 采用硬件加速,在清单文件中application节点添加android:hardwareAccelerated=”true”。不过这个需要在android 3.0才可以使用。android4.0这个选项是默认开启的。
  • View中设置缓存属性setDrawingCachetrue.
  • 优化你的布局.
  • 动态加载View. 采用ViewStub避免一些不经常的视图长期握住引用.
  • Acitivity中的Window的背景图设置为空。getWindow().setBackgroundDrawable(null);``android的默认背景是不是为空。
  • 采用<merge>优化布局层数。 采用<include>来共享布局。
  • 利用TraceView查看跟踪函数调用。有的放矢的优化。
  • cursor的使用。不过要注意管理好cursor,不要每次打开关闭cursor.因为打开关闭Cursor非常耗时。 Cursor.require用于刷cursor.
  • 采用SurfaceView在子线程刷新UI, 避免手势的处理和绘制在同一UI线程(普通View都这样做)。
  • 采用JNI,将耗时间的处理放到c/c++层来处理。
  • 有些能用文件操作的,尽量采用文件操作,文件操作的速度比数据库的操作要快10倍左右。
  • 避免创建不必要的对象
  • 如果方法用不到成员变量,可以把方法申明为static,性能会提高到15%到20%
  • 避免使用getter/setter存取field,可以把field申明为public,直接访问
  • static的变量如果不需要修改,应该使用static final修饰符定义为常量
  • 使用增强for循环,比普通for循环效率高,但是也有缺点就是在遍历 集合过程中,不能对集合本身进行操作
  • 合理利用浮点数,浮点数比整型慢两倍;
  • 针对ListView的性能优化

  • 邮箱 :charon.chui@gmail.com
  • Good Luck!
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值