attach 函数
localProvider.attachInfo(c, info);
这里分析 attachInfo 中的 c 参数 , 也就是 Context 上下文的获取过程 :
声明空的 Context...getPackageName() 获取包名的方法返回空 , 此时肯定无法命中前两个分支 , 只能命中第三分支 ;
相关代码示例 :
public final class ActivityThread {..., 在 ContentProvider 组件中调用 getContext 获取上下文对象 , 获取的就是该对象 ;
// ★ 注意此处进行了上下文赋值 , 就是代理 Application , ProxyApplication...// ★ 在 ContentProvider 组件中调用 getContext 获取上下文对象
// ★ 获取的就是该对象
mContext = context;
ContentProvider...Application , 不再是代理的 Application , 因此从 Service 组件中获取的 Application 是已经替换后的用户自定义的 Application , 不是代理 Application