在我的Activity
我有一个复杂的View
结构,因为我有很多数据需要显示。我有很多RelativeLayouts
有很多TextViews
。我已经google了一下,但没有发现有关复杂Layouts
和RAM使用情况的明确信息。
所以问题是:从RAM使用的角度来看,如果我使用RelativeLayout
,LinearLayout
等,或者RAM消耗是否独立于Layout
类型,这是否重要?< / p>
答案 0 :(得分:2)
两件事(1)在这种情况下,我不认为使用ram是衡量性能的正确方法。 XML非常轻量级。我无法使用XML上的大量ram来构建复杂的XML布局。而是布局的组成部分,例如,位图,将使用内存。
(2)我不知道布局的类型与布局的复杂性有关。
虽然我也没有支持此视图的文档,但我正在逻辑思考系统如何解析XML。一个简单的RelativeLayout
或LinearLayout
应该执行相同的操作。但是,一旦你开始嵌套布局元素 - 就像在LinearLayouts
中经常发生的那样 - 事情可能会有所不同。由于需要为系统解析XML以了解正在发生的事情,因此您添加的每个解析层都可能会降低性能。例如,LinearLayout
设置为垂直方向,其中有几个子布局来处理每个“行”,渲染时间要长于一个RelativeLayout
,它们将元素放在彼此旁边。
在大多数情况下,我认为你并没有注意到这种差异。对于单个活动,例如,复制一次复杂布局并不困难。但是考虑一个列表或网格视图,即使在回放XML结构的视图中,也必须解析填充屏幕所需的次数。这就是你开始看到事情变慢的地方。
希望有所帮助。