android中XML文件是如何解析成View

简要概述
关于视图的解析过程。大概原理就是通过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之间的转换

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容