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