您好!欢迎来到爱源码

爱源码

热门搜索: 抖音快手短视频下载   

粘合剂机理介绍 [导航网站源码]

  • 时间:2022-07-15 00:42 编辑: 来源: 阅读:283
  • 扫一扫,手机访问
摘要:粘合剂机理介绍 [导航网站源码]
粘合剂机理模型。jpg黑线流程:是作为服务器的注册服务流程。 蓝色流程:是作为客户端获取服务的流程。 红线进程:客户端使用服务器服务的进程。 这里有几个概念需要理解。 据我所知,Binder驱动和ServiceManager是系统中的两个模块。“绑定器驱动”是用来实现内存映射相关的东西。这里,它被认为是一个转换器。 这是活页夹机制的一部分。如果你觉得在名字中包含Binder不舒服,你可以叫它“converter”或者类似的名字。 “ServiceManager”用于管理服务。比如注册服务时,会存储新注册的服务,方便客户端访问。 接口系统提供的一种接口。如果服务器要对外提供服务,就需要定义接口,并将这个接口集成为绑定器机制的一部分。 否则,你设置的接口只是一个普通的接口,不能用于进程间通信。 IBinder系统提供的一个接口描述了一个远程通信的通用协议,也就是说它定义了跨进程通信是如何进行的,比如数据是如何传输的,支持什么类型,等等类似的东西。 它是Binder机制的核心部分,不能直接继承或实现,所以我们必须使用Binder。 Binder,Binder,是一个真正的Binder类,实现了IBinder接口。 了解可以交互的媒体对象(客户端、绑定器驱动、服务器)也是远程通信协议的具体实现。 但一般不会直接使用,因为涉及到具体业务相关的数据传输,会通过子类继承绑定器来实现。 服务器端注册可以结合上述概念完成黑线过程。 1.定义服务器要提供的服务功能接口。 2.定义服务器的Binder实体,用于存储在ServiceManager中,用于以下进程之间的通信。 可以定义一个通用类,从Binder继承,实现步骤1中的接口;也可以先定义一个继承自Binder的泛型类,再定义一个继承自刚才泛型类的类,实现接口。 3.定义一个服务,也就是定义一个从服务继承的类。这用于公开步骤1中提供的服务功能。客户端通过bindService访问。 通过对客户端绑定服务启动过程的了解,我们可以从Binder通信机制的角度来谈bindService的启动过程。我们知道,服务的onBind方法应该返回到服务器的Binder实体,而在此之前,服务器应该已经向ServiceManager注册了功能服务,也就是attachInterface方法完成了。 只有调用这个方法,才能通过queryLocalInterface方法查询对应的函数服务。 参考文章中的代码完成了Binder实体类的构造方法中的attach,并在服务的onBind方法中创建了Binder实体对象。暂时就这样吧。 在用户端建立ServiceConnection主要是在适当的位置调用bindService方法,实现方法参与。重点是在回调onServiceConnected的方法后,实例化ServiceConnection,在服务器端获取Binder实体对象的引用(这里有个概念要区分,就是如果客户端和服务器在同一个进程中,那么IBinder对象确实是服务器的Binder实体。如果不在同一个进程中,那么IBinder对象就是BinderProxy实体,与服务器的通信实际上需要代理的帮助。) 无论如何,客户端最终都能得到指定的功能服务,也就是接口形式的引用。 这个过程可以称为上图中的蓝线过程。 至于黑线流程,就是客户端以接口的形式持有服务引用后,根据业务调用相应方法的过程。 和BinderProxy有关的东西需要再整理一下。我还不知道怎么变成BinderProxy。绑定器类型显然是在服务的onBind方法中创建的。这里暂时记住,如果是两个进程之间的通信,在Service的onServiceConnected方法中获取的IBinder类型实际上是BinderProxy对象,我们需要将其转换为agent类对象进行后续操作。如果是同样的流程,就不需要转换了。当然,这个IBinder类型还是一个BinderProxy对象。 参考文章Android跨进程通信:详细说明Binder机制原理;分析Android系统的绑定机制;分析应用框架层中Binder机制的Java接口源代码。


  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【技术支持|常见问题】1556原创ng8文章搜索页面不齐(2024-05-01 14:43)
【技术支持|常见问题】1502企业站群-多域名跳转-多模板切换(2024-04-09 12:19)
【技术支持|常见问题】1126完美滑屏版视频只能显示10个(2024-03-29 13:37)
【技术支持|常见问题】响应式自适应代码(2024-03-24 14:23)
【技术支持|常见问题】1126完美滑屏版百度未授权使用地图api怎么办(2024-03-15 07:21)
【技术支持|常见问题】如何集成阿里通信短信接口(2024-02-19 21:48)
【技术支持|常见问题】算命网微信支付宝产品名称年份在哪修改?风水姻缘合婚配对_公司起名占卜八字算命算财运查吉凶源码(2024-01-07 12:27)
【域名/主机/服务器|】帝国CMS安装(2023-08-20 11:31)
【技术支持|常见问题】通过HTTPs测试Mozilla DNS {免费源码}(2022-11-04 10:37)
【技术支持|常见问题】别告诉我你没看过邰方这两则有思想的创意广告! (2022-11-04 10:37)

联系我们
Q Q:375457086
Q Q:526665408
电话:0755-84666665
微信:15999668636
联系客服
企业客服1 企业客服2 联系客服
86-755-84666665
手机版
手机版
扫一扫进手机版
返回顶部