4

我正在尝试让一个 android 应用程序与本机服务(交叉编译的 ARM 二进制文件或 Linux 脚本)对话,我想知道我是否可以使用套接字来做到这一点?

基本上,本机服务将在初始化时运行,并在执行其他操作之前等待应用程序向其发送数据。

这可能吗,android应用程序是否需要root权限才能做到这一点?

谢谢。

4

1 回答 1

4

是的,这是可能的。不,该应用程序不需要任何特殊权限即可 - 对于 unix 域套接字,您甚至不需要互联网权限。

您需要特殊许可的唯一地方是启动服务的地方 - 本质上,您必须为其提供 oom 杀手值,这将告诉 android 不理会该进程,和/或将其设置为自动重启。否则,资源受限的安卓系统可能会杀死一个似乎与任何特定合法活动或服务无关的神秘进程。

更 android 风格的集成方式当然是实现你的服务更像现有的 android 服务,即使用在客户端进程中运行的存根 api,并通过 Binder IPC 将事物推送到在特殊进程中运行的服务(相当可能是系统进程)。这也可能更容易使用现有的包/清单权限方案来规范对您的服务的访问。但这最终是一种风格上的东西,虽然在某种程度上可能与让谷歌接受你的设备有关,但这并不是制作可行的东西的唯一方法。

于 2012-06-06T04:04:03.030 回答