Android IPC 和 service_manager

Posted

技术标签:

【中文标题】Android IPC 和 service_manager【英文标题】:Android IPC and service_manager 【发布时间】:2013-12-25 06:59:44 【问题描述】:

所有的android IPC 都通过service_manager 吗? 应用程序如何与服务和意图交互?

是否所有消息都通过 service_manager 作为代理传递? 还是应用程序可以直接“对话”?

【问题讨论】:

嗨,我喜欢这个问题,我还有一些其他问题。我不想创建一个新问题,而是想在这里添加我的问题。 1.我认为所有服务都需要注册到服务管理器,然后客户端可以向它请求引用。因此,我假设在我启动服务时可以在 adb shell 服务列表中找到该服务。它是否正确 ?只有列表中的那些能够做 IPC 的事情。 【参考方案1】:

一旦建立连接,应用程序就会直接对话(嗯,实际上是通过内核)。

【讨论】:

@omri-c service_manager 是什么意思?有一些机制可以在进程之间交换绑定器引用。一旦你拥有其中一个,你就可以绑定到另一个进程。您可能需要查看 BinderIBinder 文档。 有service_manager.c,也有ServiceManager.cpp,它们有什么区别?它们是如何连接的? 其实最后到了内核层的binder驱动,通过共享内存的方式做IPC。

以上是关于Android IPC 和 service_manager的主要内容,如果未能解决你的问题,请参考以下文章

Android面试Android跨进程通信IPC

Android IPC 之 AIDL

Android开发艺术探索——第二章:IPC机制(上)

Android 进阶——Binder IPC详解之学习Binder IPC前应该掌握的相关常识

Android 进阶——Binder IPC详解之学习Binder IPC前应该掌握的相关常识

android IPC 机制 (开发艺术探索)