Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android中哪种嵌套布局顺序最有效_Android_Performance_Android Layout_Nested - Fatal编程技术网

Android中哪种嵌套布局顺序最有效

Android中哪种嵌套布局顺序最有效,android,performance,android-layout,nested,Android,Performance,Android Layout,Nested,我认为我从来没有在Android中嵌套过超过三个级别的布局(RelativeLayout,LinearLayout,FrameLayout)。我想的不是同样使用自定义布局的列表项,而是活动的常规布局 说到这里,我与另一位开发人员讨论了我们正在讨论的某个布局的嵌套布局,他似乎认为即使是一些嵌套布局也会降低性能。我想这是真的,但不可能有那么多 有没有人对此有更专业的方法?有什么意见吗?意见 谢谢 在Google上找到的用户的更新: 下面的第一个答案是一个很好的资源。看起来很多,人们似乎跳过了这样的答

我认为我从来没有在Android中嵌套过超过三个级别的布局(
RelativeLayout
LinearLayout
FrameLayout
)。我想的不是同样使用自定义布局的列表项,而是活动的常规布局

说到这里,我与另一位开发人员讨论了我们正在讨论的某个布局的嵌套布局,他似乎认为即使是一些嵌套布局也会降低性能。我想这是真的,但不可能有那么多

有没有人对此有更专业的方法?有什么意见吗?意见

谢谢

在Google上找到的用户的更新:
下面的第一个答案是一个很好的资源。看起来很多,人们似乎跳过了这样的答案,但请检查一下。非常有价值。

我还没有做任何适当的测试来支持这一点,但是,我相信android设计使用嵌套布局是为了向用户提供足够的UI,这实际上是支持多个屏幕的唯一方法,所以我不会真的担心哪一个是最有效的,只是它看起来应该是这样的


任何其他类型的糟糕编程实践都可能比布局嵌套对效率产生更大的影响。

实际上,它们都基于同一类。。 但最好按照我的说法使用如下:

<RelativeLayout>
    <LinearLayout>
        <at> here we just create nested more as we wont></at>
    </LinearLayout>
</RelativeLayout>

在这里,我们只创建嵌套的更多内容,因为我们不会>

我想这方面没有灵丹妙药,但我会给你一些提示:

1) 尝试使用android sdk提供的工具。

我倾向于使用
hierarchyviewer
layoutopt
分析布局,试图减少使用的
View
数量和树的高度

2) 阅读Romain Guy关于
这些标签并不经常使用,但它们提供了高速的“黑客”

3) 使用
dmtracedump
并测量视图充气需要多长时间。


您可以检查充气视图所需的时间。拿一个充气器,测量为每个选项充气所需的时间。

例如,当您对ListView中的每个项目使用这样的布局时,差异将更加重要。希望向您展示了解您的布局是学习如何优化UI的最佳方式。

无法给出完整答案,但Romain Guy特别指出,嵌套的RelativeLayouts具有指数级的测量时间


+1(当我获得更多选票时)非常正确,但同时,如果图形是针对不同的屏幕尺寸设计的,那么为了支持多个屏幕尺寸,您不必对布局进行太多更改。我的意思是,通过适当的布局嵌套,您几乎可以始终只有一个布局用于所有屏幕尺寸,并让它自动适应。您可以将另一个Guy的布局添加到列表中建议:通常嵌套的
线性布局
可以转换为一个
相对布局
。(我现在无法提供参考)已将
layoutopt
工具替换为
lint
。看到了吧。我本以为会有更多的人引用这个问题和下面的精彩答案,以便生产出更高效的应用程序。也许3.1、ADK等的发布已经让人们不再担心这一点,因为他们试图赶上最近发生的一切。。。