在XML中定义资源是否会导致分析开销



Android中XML资源文件的解析是否在运行时发生?如果有任何解析开销,编写视图是否可以通过程序消除它?如果资源是在一个单独的.java文件中创建并加载的,那么它们会比在XML中定义它们消耗更多的内存吗?

是的,XML资源文件(Layouts、Drawables等)在运行时进行解析。然而,这产生的开销非常小。就消耗的内存量而言,由于XML文件被解析为源文件(您将编写的文件的优化版本),因此它们将占用与单独的.java文件大致相同的RAM。

是和否

在编译时,XML资源被编译为二进制XML格式。然后,这些二进制XML文件在设备上的运行时被解析(解码),但这比解析原始文本XML更快。

从理论上讲,在代码中生成视图层次结构比膨胀二进制XML更快。在实践中,这种差异往往可以忽略不计就开发人员时间而言,在代码中而不是在XML中维护视图层次结构要昂贵得多。

内存消耗差异可能也不显著。

相关内容