网站开发费用结算,合肥公司网站搭建服务商,站内seo内容优化包括,网站开发大牛对于 Java 端使用 Binder 服务,主要就是注册服务和获取服务,入口都是通过 ServiceManager.java 中的对应方法实现。这里我们就先介绍一下 Java 注册 Binder 服务的流程。
一、ServiceManager代理 无论是 ServiceManager.addService() 还是 ServiceManager.getService() 最终… 对于 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