简要概述
关于视图的解析过程。大概原理就是通过Layout Inf later的inflate方法,将一个xml布局文档用pull递归解析。然后判断标签,如果是merge,include等特殊处理。如果是view或者view group,就通过xml的tag找到指定类,反射new出来,然后add到parent。这里值得一提的是,为了抑制反射造成的效率损失,对反射出来的constructor做了一个map静态缓存,下次遇到了同名tag就不用反射了另外,xml从文件中预编译获取xml parser的过程也很复杂,在AssetManager有大量缓存(比如相同id的layout只获取一次,缓存xml block)与native方法,都是为了保证效率。
Android中LayoutInflate解析xml布局文件生成View树的过程
Android XML布局与View之间的转换