当前位置: 首页 > 工具软件 > mRemote > 使用案例 >

ServiceManagerProxy中mRemote变量指的什么?

柯星华
2023-12-01

首先标红的代码Binder.allowBlocking(BinderInternal.getContextObject()),实际上返回的是BinderProxy对象实例

 sServiceManager = ServiceManagerNative
                .asInterface(Binder.allowBlocking(BinderInternal.getContextObject()));

  static public IServiceManager asInterface(IBinder obj)
    {
        if (obj == null) {
            return null;
        }
        IServiceManager in =
            (IServiceManager)obj.queryLocalInterface(descriptor);
        if (in != null) {
            return in;
        }
        
        return new ServiceManagerProxy(obj);
    }

然后继续ServiceManagerProxy,从下面来看,很显然了。

class ServiceManagerProxy implements IServiceManager {
     public ServiceManagerProxy(IBinder remote) {
        
mRemote = remote;

    }

    。。。

    。。。

}

}

 类似资料: