本文共 625 字,大约阅读时间需要 2 分钟。
原文地址:
现在已经完成了一个拥有良好设计的View,它即可以响应手势,又可以在状态之间过渡。为了避免View有卡顿的感觉,需要确保动画始终是按照每秒60帧的频率执行的。
为了使View更加流畅,需要从频繁调用的方法中剔除不必要的代码。
首先从方法开始,在该方法中动刀会有明显的流畅感。尤其是应该移除方法中的内存分配代码,因为内存分配会导致垃圾回收,这可能会使程序暂停。应该在程序初始化时或在动画开始执行之前申请内存,绝不要在动画运行的过程中申请内存。
除了精简方法之外,还应该确保降低这些方法的调用频率。方法的大部分调用是由方法引起的,所以要移除不必要的执行代码。
另一项代价非常高昂的操作就是布局的测量。每次调用时,Android的UI系统都会测量整个View层级来确定每个View都需要多大尺寸。如果找到尺寸有冲突的,还需要进行多次测量。UI设计者有时候需要创建内嵌的深层级布局来使UI布局正确。这些深层级的布局层级会引起性能问题。要使View层级尽可能的潜。
如果你有一个稍微复杂一点的UI,考虑写一个自定义执行这样的布局。与内置的View不同,你的自定义View可以对它的子View的尺寸与形状作个假设,这样就可以不用去测量子View的尺寸了。饼图示例展示了如何将ViewGroup作为自定义View的一部分。饼图含有一些子View,但是绝对不会去测量它们。相反的,它通过独有的自定义布局算法直接为这些View设置了尺寸。
转载地址:http://depmx.baihongyu.com/