正在研究Android中的Binder机制,我想问的是在调用远程服务时,Service中onBind()返回的Binder类型对象,是在什么时候变成onServiceConnected()中的BinderProxy类型的对象呢?
看了《Android开发艺术探索》,在绑定服务的过程中,ActivityThread的handleBindService方法回调了Service的onBind()方法,并把onBind返回的IBinder类型对象(此时类型为Binder)交给了AMS的publishService方法,几经辗转后回调了Activity中ServiceConnection的onServiceConnected方法,并传入了这个上边说的那个IBinder对象,但是这个时候它的类型已经变成了BinderProxy类型了。
我觉得这个BinderProxy应该是Client向SM查询后得到的,但是这个过程具体发生在哪里呢?