【发布时间】:2013-12-03 17:43:10
【问题描述】:
Android中XML资源文件的解析是否发生在运行时? 如果有任何解析开销,编写视图是否会以编程方式消除它? 如果在单独的 .java 文件中创建资源然后加载,它们会比在 XML 中定义它们消耗更多的内存吗?
【问题讨论】:
-
这里的内存绝对可以忽略不计。解析 xml 时使用的内存也应该在完成后变得可用。
Android中XML资源文件的解析是否发生在运行时? 如果有任何解析开销,编写视图是否会以编程方式消除它? 如果在单独的 .java 文件中创建资源然后加载,它们会比在 XML 中定义它们消耗更多的内存吗?
【问题讨论】:
是的,XML 资源文件(布局、Drawable 等)在运行时被解析。但是,这产生的开销非常小。就所消耗的内存量而言,由于 XML 文件被解析为源(您将编写的内容的优化版本),它们将占用与单独的 .java 文件大致相同的 RAM 量。
【讨论】:
是和不是。
At compile time,XML 资源被编译成二进制 XML 格式。然后在设备上运行时解析(解码)这些二进制 XML 文件,但这比解析原始文本 XML 更快。
理论上,在代码中生成视图层次结构比扩展二进制 XML 更快。在实践中,这种差异通常可以忽略不计。 维护代码而不是 XML 视图层次结构在开发人员时间方面要昂贵得多。
内存消耗差异可能也不显着。
【讨论】: