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

ard*_*evd 9 java sockets linux android

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

我想我可以像这里描述的那样创建套接字,但我不知道如何用Java进行通信.

任何帮助将非常感激.

此外,起初我写了一个本地库,并使用JNI从Java与它进行通信,但很快意识到它显然是在应用程序的上下文中运行,所以它不能以root身份运行,这是我的要求,以及某些东西本机守护进程可以做得很好.在这里使用套接字是最好的选择还是Binder的工作呢?

万分感谢!

ard*_*evd 5

此处的解决方案是查看AOSP,并查看installd如何与Installer java应用程序通信。在init.rc中,您将看到如何创建命名的本地套接字;在installd.c中,您将看到本机代码如何与套接字通信。在Installer.java中,您可以看到它是如何从Java平台完成的。

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