Making ListView Scrolling Smooth
使得滚动ListView平滑的关键在与保持APP的UI thread与复杂的操作隔离。确保另起一个Thread来处理Disk IO,network access或者SQL access. 为了测试AP的状态,可以enable StrictMode.(Android ICS 4.0上已经默认开启了StrickMode)
使得滚动ListView平滑的关键在与保持APP的UI thread与复杂的操作隔离。确保另起一个Thread来处理Disk IO,network access或者SQL access. 为了测试AP的状态,可以enable StrictMode.(Android ICS 4.0上已经默认开启了StrickMode)
某些时候,我们需要一些很复杂的视图却仅仅很少用到。如果我们在它仅仅需要的时候再载入,这样可以减少内存的使用并且给用户带来流畅的体验。
ViewStub是一个轻量级的view,没有占有空间,没有花费draw的资源,也没有参与在任何一个layout的计算与绘制里面。
创建它仅需要很少的系统资源,而且存留在View的层级也是个比较不花费资源的动作。
尽管Android提供了很多种小的组件可以重用,我们还需要自定义一些稍微复杂一点的小组件进行重用。我们可以使用<include/>
与 <merge/>
标签来对当前的layout嵌入一些其他的layout.
在创建一个稍微复杂一点的layout时,重用layout是个很给力的方法。比如我们需要一个YES/NO的控制栏,包含文字提示的Progress bar。像这种的布局会在很多地方需要重用到.
Layout是Android程序影响用户体验最关键的一部分。如果布局文件不好会使得程序比较卡。SDK里面包含了一些工具用来帮助我们发现布局文件的性能问题
使用基本的Layout结构是最有效的。但是,每一个添加到系统的组件都需要初始化,进行布局,绘制的过程。比如,使用在LinearLayout里面使用子组件会导致一个过于deep的层级结构。而且内嵌使用包含layout_weight属性的LinearLayout会在绘制时花费昂贵的系统资源,因为每一个子组件都需要被测量两次。在使用ListView与GridView的时候,这个问题显的尤其重要,因为子组件会重复被创建
这一课我们会学习使用Hierarchy Viewer and Lint 来检查并最优化布局文件。