如果AttributeSet是接口,那么外部(具体)从xml读取/存储值在哪里?即具有AttributeSet委派给它的存储/检索值的具体类是什么?我正在寻找源代码,但我仍然找不到魔术发生的地方。谢谢大家的帮助!
最佳答案
这里跳过一些细节,但是您使用的AttributeSet
通常是从XmlResourceParser
获得的AssetManager
,该类负责管理Android应用程序资源,包括AAPT编译的XML。资产管理器使用XmlBlock.Parser
创建一个XmlBlock.newParser()
来解析表示XML文件的特定资源块。XmlBlock.Parser
实现XmlResourceParser
并调用本机代码来解析AAPT编译的XML。XmlResourceParser
扩展了XmlPullParser
和AttributeSet
。