与后台服务快速,持续的沟通

时间:2014-08-21 23:49:29

标签: android android-service

背景:
我有几个应用程序必须连接到我的Android手机上相同的USB设备。为了抑制持续的权限请求和重复的拔出/插件,我已经构建了一个后台服务来连接到usb设备。从那里,应用程序可以与服务进行通信。

问题:
应用程序需要将每个触摸事件传递给USB设备。所有这些流量似乎都会产生一些延迟(我已经测量了10s和100s毫秒的数据传递的延迟)。我使用带有messenger / handler的绑定服务来立即传递数据。

有没有人知道更快的服务或更好的方法来实现这一目标?

1 个答案:

答案 0 :(得分:1)

如果您的分发方案仅限于您自己的公司,而不是公众,则可以使用标准的基于套接字的服务器方法。不要使用绑定服务和Messenger,而是让您的服务在知名端口上打开ServerSocket,并让客户端应用程序连接到它。

可以想象有一种方法可以使用Unix风格的域套接字而不是TCP / IP套接字,但我不清楚是否可以通过Android SDK实现这一点,只能通过NDK,或者不是选项。

IOW,就像在桌面或服务器上一样。

根据设备的性质,您仍会遇到延迟,原因很简单,因为设备运行M个进程,在具有C核的CPU上有N个总线程,并且N通常远大于C.线程之间的上下文切换在可用的核心上需要时间。当然,这在单核CPU上要差得多。

出于安全原因,这种方法对于广泛分发来说是可怕的。锁定套接字只能由所需的应用程序使用将是您的责任,可能并不简单。但是,如果您只是在自己的办公室中使用这些设备,那就不是问题了。