首页 > 编程语言 >Android Binder——Java服务注册(九)

Android Binder——Java服务注册(九)

时间:2024-04-07 10:58:58浏览次数:21  
标签:服务 java sServiceManager Binder ServiceManager Java Android

        对于 Java 端使用 Binder 服务,主要就是注册服务和获取服务,入口都是通过 ServiceManager.java 中的对应方法实现。这里我们就先介绍一下 Java 注册 Binder 服务的流程。

一、ServiceManager代理

        无论是 ServiceManager.addService() 还是 ServiceManager.getService() 最终都是需要与native 通信,那需要获取到 ServiceManager 的代理。即函数 getIServiceManager()。

1、ServiceManager

源码位置:/frameworks/base/core/java/android/os/ServiceManager.java

private static IServiceManager getIServiceManager() {
    // 采用单例形式返回 ServiceManagerProxy对象
    if (sServiceManager != null) {
        return sServiceManager;
    }

    // 找到服务管理器,相当于 new ServiceManagerProxy(new BinderProxy); 
    sServiceManager = ServiceManagerNative.asInterface(Binder.allowBlocking(BinderInternal.getContextObject()));
    return sServiceManager;
}

        这里主要关注两点: 

  • BidnerInternal.getcon

标签:服务,java,sServiceManager,Binder,ServiceManager,Java,Android
From: https://blog.csdn.net/c19344881x/article/details/137224839

相关文章