我的Android应用程序如何与本机守护程序通信?

时间:2013-09-19 15:51:13

标签: java android linux sockets

所以,我有一个以System身份运行的自定义Android应用程序(在我的ROM中构建为系统应用程序)。我编写了一个本机守护进程也可以正常运行并以root身份运行。但是,我想知道两人如何沟通?我知道我可以让本机守护进程创建一个网络套接字并让应用程序连接到它,但使用IPC的本地套接字似乎更好,但我很难找到它的示例代码。

我认为我可以像描述here那样创建套接字,但我不知道如何在Java中与它进行通信。

非常感谢任何帮助。

另外,起初我写了一个本地库,并使用JNI从Java与它进行通信,但很快意识到它显然是在应用程序的上下文中运行,所以它不能以root身份运行,这是我的要求,本机守护进程可以做得很好。在这里使用套接字是最好的替代方案还是Binder也可以使用它?

非常感谢!

1 个答案:

答案 0 :(得分:3)

这里的解决方案是查看AOSP,看看installd如何与Installer java app进行通信。在init.rc中,您可以看到如何创建命名本地套接字,在installd.c中,您可以看到本机代码如何与套接字通信。在Installer.java中,您可以看到它是如何从Java中完成的。

不要认为Binder是我的特定用例的正确方法。