Android 与后台服务进行快速、持续的通信

Android 与后台服务进行快速、持续的通信,android,android-service,Android,Android Service,背景: 我有几个应用程序必须连接到android手机上的同一个usb设备。为了抑制不断的权限请求和重复的拔出/插入,我构建了一个后台服务来连接usb设备。从那里,应用程序可以与服务进行通信 问题: 这些应用程序需要将每次触摸事件传递到usb设备。所有这些通信似乎都产生了一些延迟(我已经测量了传输数据的延迟为10毫秒和100毫秒)。我现在使用绑定服务和messenger/handler来传递数据 有谁知道更快的服务或更好的方法来实现这一点吗?如果您的分销方案仅限于您自己的公司,而不是普通公众,您可

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

问题:
这些应用程序需要将每次触摸事件传递到usb设备。所有这些通信似乎都产生了一些延迟(我已经测量了传输数据的延迟为10毫秒和100毫秒)。我现在使用绑定服务和messenger/handler来传递数据


有谁知道更快的服务或更好的方法来实现这一点吗?

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

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

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

取决于设备的性质,您仍然会遇到延迟,这仅仅是因为设备在具有C核的CPU上运行M个进程,总共有N个线程,而N通常远远大于C。在可用核上的线程之间切换上下文需要时间。当然,这在单核CPU上要严重得多


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

您是否正在寻找只在一台设备上工作的设备?或者这是为了更广泛的传播?现在我只是想把它放在一部手机上。然而,我们的目标是,它将能够在未来推广到更多的设备(全部由我的团队采购和管理)。你在寻找某种类型的根吗?很好的建议,我已经使用套接字构建了它,并且似乎已经将延迟从几秒钟减少到了几毫秒。正如你提到的,仍然有一些延迟,但肯定是一个进步。我可能会查看域套接字。