10

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

我想我可以像这里描述的那样创建套接字,但我不知道如何在 Java 中与之通信。

任何帮助将非常感激。

还有,一开始我写了一个native library,用JNI从Java中与之通信,但很快意识到它显然是在app的上下文中运行的,所以不能以root身份运行,这是我的一个要求,还有一些东西本机守护程序可以做得很好。在这里使用套接字是最好的选择,还是 Binder 也可以工作?

万分感谢!

4

1 回答 1

7

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

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

于 2013-10-07T11:18:07.107 回答