android - 所有布局都需要相同的RAM量吗?

时间:2013-07-26 14:20:39

标签: android performance android-layout

在我的Activity我有一个复杂的View结构,因为我有很多数据需要显示。我有很多RelativeLayouts有很多TextViews。我已经google了一下,但没有发现有关复杂Layouts和RAM使用情况的明确信息。

所以问题是:从RAM使用的角度来看,如果我使用RelativeLayoutLinearLayout等,或者RAM消耗是否独立于Layout类型,这是否重要?< / p>

1 个答案:

答案 0 :(得分:2)

两件事(1)在这种情况下,我不认为使用ram是衡量性能的正确方法。 XML非常轻量级。我无法使用XML上的大量ram来构建复杂的XML布局。而是布局的组成部分,例如,位图,将使用内存。

(2)我不知道布局的类型与布局的复杂性有关。

虽然我也没有支持此视图的文档,但我正在逻辑思考系统如何解析XML。一个简单的RelativeLayoutLinearLayout应该执行相同的操作。但是,一旦你开始嵌套布局元素 - 就像在LinearLayouts中经常发生的那样 - 事情可能会有所不同。由于需要为系统解析XML以了解正在发生的事情,因此您添加的每个解析层都可能会降低性能。例如,LinearLayout设置为垂直方向,其中有几个子布局来处理每个“行”,渲染时间要长于一个RelativeLayout,它们将元素放在彼此旁边。

在大多数情况下,我认为你并没有注意到这种差异。对于单个活动,例如,复制一次复杂布局并不困难。但是考虑一个列表或网格视图,即使在回放XML结构的视图中,也必须解析填充屏幕所需的次数。这就是你开始看到事情变慢的地方。

希望有所帮助。