1

我的结构Activity很复杂View,因为我有很多数据要显示。我有很多RelativeLayouts很多TextViews。我四处搜索,但没有发现有关复杂Layouts和 RAM 使用情况的明确信息。

所以问题是:从 RAM 使用的角度来看,如果我使用RelativeLayoutLinearLayout或 RAM 消耗与Layout类型无关,这有关系吗?

4

1 回答 1

2

两件事(1)我不认为在这种情况下使用内存是衡量性能的正确方法。XML 非常轻量级。仅在 XML 上使用大量 ram,我什至无法对复杂的 XML 布局进行成像。相反,布局的组件(例如位图)将使用内存。

(2) 我不知道布局的类型与布局的复杂性一样重要。

虽然我也没有支持这种观点的文档,但我在逻辑上思考系统如何解析 XML。一个简单的RelativeLayoutLinearLayout应该执行的差不多。然而,一旦你开始嵌套布局元素——就像经常发生的那样LinearLayouts——事情可能会有所不同。由于系统需要解析 XML 以了解正在发生的事情,因此您添加的每一层解析都可能会降低性能。例如,一个LinearLayout设置为垂直方向并带有多个子布局来处理每个“行”的渲染将比RelativeLayout将元素彼此相邻放置的渲染时间更长。

在大多数情况下,我认为您不会注意到有那么大的不同。例如,对于单个活动来说,一次渲染复杂的布局不会那么困难。但是考虑一下列表或网格视图,即使使用视图回收,XML 结构也必须被解析多次以填满屏幕。这就是您将开始看到事情变慢的地方。

希望有帮助。

于 2013-07-26T14:36:12.837 回答