2.21 ResourceManager源码解析
2.13.1 Drawable加载流程
Context#getResource().getDrawable(R.xxx.xxx)ComtextImpl#getResource- >ResourcesManager#getResource->ResourcesManager#getOrCreateResources-
- 通过
ResourceKey从map缓存获取资源对象
- 通过
-
- 没有缓存则从
ResourcesImpl#createResourceImpl()加载资源
- 没有缓存则从
-
ResourcesImpl#createResourceImpl()加载资源, 通过创建AssetManager获取系统路径解析resources.arsc映射表, 获取资源的索引Resource#loadDrawable->mAssets#openAsset()->Drawable#createFromResourceStream, 加载资源文件