0

在过去的两周里,我一直在阅读有关本地和远程 Android 服务、IPC、AIDL 的大量内容……当我认为我理解了某些事情时,我又搞砸了。

我的目的是发送一些数据供另一台设备接收。例如共享一个字符串数组或任何其他对象。

我仍然不明白一些基本的架构概念:我是否必须实现应用程序必须监听的 Web 服务?否则其他设备中的应用程序怎么会知道有“消息”在等待呢?

任何人都可以为这样的典型任务起草一个基本架构吗?

Messenger 服务、本地服务、AIDL、Parcelable、Web 服务?

对不起,无知。我真的混淆了非常基本的概念。

谢谢你。

4

1 回答 1

2
  • 服务

那是在 Android 上运行在后台处理任务的东西。类似于 Thread 的东西,但更像是一种无形的 Acitivity。

它可以是本地服务(在与其通信的 Activity 的进程中)或远程服务。如果它是远程服务,那么您需要序列化进程之间的所有通信。该机制称为 IPC。

对于 Android 上的 IPC,您有 AIDL 来定义服务的远程接口(因为您不能在其他进程中调用方法)并且您有 Parcellable 的东西来序列化对象。

Messanger Service 是一种使用 android 的 Message 类在 Process 之间传输数据的 Service。

以上所有内容仅用于在您的设备内进行操作。不适用于其他设备。

  • 网络服务

是涉及网络服务器和互联网的东西,它并不是真正的 Android 特定的。你最好是维基百科:)


  • 如何从设备 A 向设备 B 发送数据:

有几种方法可以做到这一点,创建一个类似于聊天服务器并允许为已注册设备发送/轮询消息的 Web 服务将是一种方法。另一个通过 TCP 直接通信(在本地 WiFi 中)。取决于你需要什么。

  • 应用程序内部架构。

处理网络通信并让您的活动发送/接收消息的服务可能是一个好主意。但是也没有通用模式可以做到这一点,这取决于您的应用程序需要什么。

于 2012-04-18T12:36:28.137 回答