在理解代码编译的细节方面,我远非专家。但我正在学习一些android开发,我注意到布局和其他东西基本上都是从xml中解析出来的。我想知道这种解析是在编译时还是在运行时发生的?如果它在运行时,似乎可能会有一些与解析非常复杂的布局相关的开销。
希望这个问题不是太模糊或没有意义。
答案 0 :(得分:2)
解析XML以创建布局发生在编译时。您会注意到,如果XML中的任何内容格式错误,编译器将抛出错误。
布局的某些方面(例如计算相对位置)发生在运行时,但没有任何方法可以避免这种情况。
答案 1 :(得分:0)
为了不同的目的,在运行时和编译时都会进行解析。首先,在编译时,通常是布局和可绘制的,它们被布局编辑器解析以便为代码添加ID引用。样式,主题和属性也在此步骤中编译,允许一些非常强大的XML资源捆绑。
运行时解析适用于每个资源,即时和需要。这是通过几个inflater类和其他支持类来完成的。