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