Android-Performance-Patterns-s4ep11-Culling

去芜存菁,avoid donig unnecessary work.
link

过度绘制(Overdraw)是指对不可见的部分也进行绘制的情况,如下图左侧,在开发者设置里可以打开查看开关。一般解决过度绘制的方法是减少布局深度,去除无用背景。

Overdraw


Draw with care

在编写自定义控件时,可以使用canvas.cliprect(..)方法来使不显示的View不进行绘制。

链接:https://www.youtube.com/watch?annotation_id=annotation_104709861&feature=iv&index=38&list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE&src_vid=KFklLqiEG6w&v=vkTn3Ule4Ps


多重条件搜索

比如要搜索同时满足 A & B & C 三个条件下的结果,有两种方法

  1. 把ABC三个条件同时传入,一步搜索出结果
  2. 先搜A,得到结果集后,在结果集中搜索B,最后在B的结果集中搜索C

不要想当然地以为一定是1更高效,实际操作时要根据搜索服务的特征来选择两者中的一种进行。2也是一种Culling的思想,逐层深入,抽丝剥茧。

(视频里是用的Mc Collins大叔的照片来举例的,很搞笑)


提升用户体验

在使用地理定位等实时服务时,消减那些用户不需关心的信息,比如用户居住在A地,那就无需把B地的实时状况推送给用户,使用地图软件中的实时路况查看就是这样,只需要请求并展示当前屏幕范围内的区域路况,而不是全市乃至全省、全国。


====Ending====