首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

android_应用开发之(优化格局层次结构)

2012-07-02 
android_应用开发之(优化布局层次结构)hierarchyviewer?工具位于?sdk/tools/?目录。打开后 Hierarchy Vie

android_应用开发之(优化布局层次结构)

hierarchyviewer?工具位于?<sdk>/tools/?目录。打开后 Hierarchy Viewer 将显示一个可用设备的列表和正在运行的界面。点击?Load View Hierarchy?来查看选中的界面的布局分析结果。例如,下图显示了上面定义的ListView中每一项的布局结果。

查看渲染一个View的时间

上面左侧的图中,您可以看到有三层布局结构。在每个方块上面点击可以查看显示该控件所需要的时间。对于需要时间比较长的地方就是我们应该去重点优化的地方。

显示一个列表条目所需要的时间如下:

  • Measure: 0.977ms

  • Layout: 0.167ms

  • Draw: 2.717ms

    改进布局

    上面的布局被一个嵌套的?LinearLayout?占用了过多的解析时间,如果把布局的嵌套层次降低可能会提高性能.使用?RelativeLayout?可以实现这个功能。使用RelativeLayout后可以看到现在布局由3层变为了2层,分析图如下

    使用RelativeLayout后的层次结构

    Figure 4.?Layout hierarchy for the layout in figure 1,
    using?RelativeLayout.

    现在显示一个列表条目所需要的时间如下:

  • Measure: 0.598ms

  • Layout: 0.110ms

  • Draw: 2.146ms

    看起来是一个很微弱的提升,但是这个时间可以叠加多次,应为每个列表条目在显示的时候都有解析该布局。

    当在LinearLayout?中使用?layout_weight?就又不一样了,这样会增加计算控件大小的时间。在使用layout_weight的时候您应该多考虑考虑。

    使用 Layoutopt

    在您的最终布局文件中运行下?layoutopt?工具来看看还有没有可以优化的空间是个很好的习惯。 Layoutopt 工具也位于SDK的?tools/?目录下,您可以用该工具优化单个文件也可以优化一个目录中的所有文件。

    当您在单个文件中运行?layoutopt?后,该工具会打印出出现问题的行号和问题的描述,有些问题也会给出优化方案。例如

    $ layoutopt samples/samples/compound.xml   7:23 The root-level <FrameLayout/> can be replaced with <merge/>   11:21 This LinearLayout layout or its FrameLayout parent is uselesssamples/simple.xml   7:7 The root-level <FrameLayout/> can be replaced with <merge/>

    当你修改了布局文件以后,可以再次运行一下 Hierarchy Viewer 来看看具体提升了多少性能。

    ?

    ?

    ?

    ?

    其它说明:http://www.apkbus.com/android-20040-1-1.html

  • 热点排行