[转载]Andriod中的Context理解与分析(3)-Android开发进阶&经验分享-eoe Android开发者社区_Android开发论坛 - Powered by Discuz!

[转载]Andriod中的Context理解与分析(3)-Android开发进阶&经验分享-eoe Android开发者社区_Android开发论坛 – Powered by Discuz!.

需要打开一个Service的时候,ActivityManagerService会经过ApplicationThread的代理类
远程调用真正的ApplicationThread的scheduleCreateService()方法(这个里把ActivityManagerService当成了Binder客户端,
在ActivityThread中的ApplicationThread对象才是真正的Binder服务端)。


代码片段1

CreateServiceData代表一个Service的数据类
和上一篇文章一样,代码片段中的499行,调用H这个Handler实现类发消息到主线程的消息队列,然后,调用到

代码片段2

继续调用

1921行和之前获得LoadedApk 是同一个对象
继续这个方法的代码

从上面的代码可以得出:ContextImpl在Service中也是单独的

总结
从上面的代码可以看出,创建ContextImpl的过程很像,只是他们的数据对象不同罢了。并且每个类对应一个单独的ContextImpl。

类名 远程数据类 本地数据类
Application ApplicationInfo AppBindData
Activity ActivityInfo ActivityClientRecord
Service ServiceInfo CreateServiceData

并且上面的三个类使用的是同一个pacageInfo(LoadedApk)对象。

Andriod中的Context理解与分析相关链接
(1)http://www.eoeandroid.com/thread-312457-1-1.html
(2)http://www.eoeandroid.com/thread-312978-1-1.html
(3)http://www.eoeandroid.com/thread-312979-1-1.html

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏