Android 性能优化的一些方法

  1. 采用硬件加速,在androidmanifest.xml中application添加 android:hardwareAccelerated="true"。不过这个需要在android 3.0才可以使用。

  2. View中设置缓存属性.setDrawingCache为true.

  3. 优化你的布局。通过Android sdk中tools目录下的layoutopt 命令查看你的布局是否需要优化。

  4. 动态加载View. 采用ViewStub 避免一些不经常的视图长期握住引用.

  5. 将Acitivity 中的Window 的背景图设置为空。getWindow().setBackgroundDrawable(null);android的默认背景是不是为空。

  6. 采用 优化布局层数。 采用来共享布局。

  7. 查看Heap 的大小

  8. 利用TraceView查看跟踪函数调用。有的放矢的优化。



布局优化

(原文参考:ImprovingLayout Performance

  • 尽量减少Android程序布局中View的层次,View层次越多,效率就越低

其它优化点

  • 合理使用异步操作
  • 懒加载:当前不需要的数据,不要加载,即按需加载。懒加载的范围是广泛的,可以是数据,可以是View,或者其它
  • 使用缓存
    • 图片缓存:包括MemoryCacheDiskCache,推荐使用官方DEMO中的Cache

参考:DisplayingBitmaps Efficiently

  • 单例数据缓存:建立一个管理数据的类,管理所有数据,当主界面消失后,由于Application本身没有实际退出,因此,数据本身也没有释放掉,下次启动时,省去了加载数据的时间,当然,这并不是一个好的行为。
  • 使用ListViewGridViewView缓存
  • 使用Message自身的缓存,避免重复创建Message实例
  • 线程池
  • 数据池(可参考Message Pool的实现方式)
  • ……
  • 数据库优化
    • SQL优化
    • 建立索引
    • 使用事务
    • …...
  • 算法优化
    • 用快速排序代替冒泡排序
    • 用二分查找代替线性查找
    • ……
  • 数据结构使用
    • 不要全部使用ArrayList,合理使用LinkedList等易于插入和删除的集合
    • 合理使用HashMapHashSet来提高查找性能
    • 使用SparseArray、SparseIntArraySparseBooleanArray来替代某些特定的HashMap
    • ……
  • 其它策略
    • 可以考虑延迟处理,避免在同一时间干过多的事情

应用程序内部的性能优化

该部分的优化应该是依据程序的不同而不同,没有万般皆准的法则,目前从我做过的程序来看,实际上,上述的性能优化点基本上已经能够解决很多性能问题了。

在我所做的程序中,主要的优化手段是:

  • 程序逻辑简化:分析代码,去掉冗余逻辑
  • 数据结构的优化:对集合类的灵活使用,特别是HashMap的使用,极大的提高查找性能。
  • 批量处理原则:对于需要循环调用地方,采用批量处理


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值