0

私はこの2週間、ローカルおよびリモートのAndroidサービス、IPC、AIDLについて多くのことを読んでいます...そして、何かを理解したと思うと、すべてが再び台無しになります。

私の意図は、別のデバイスが受信できるようにデータを送信することです。たとえば、文字列の配列やその他のオブジェクトを共有します。

まだ得られていないアーキテクチャの基本的な概念がいくつかあります。アプリがリッスンする必要のあるWebサービスを実装する必要がありますか?それ以外の場合、別のデバイスのアプリは、待機中の「メッセージ」があることをどのように知ることができますか?

誰かがこのような典型的なタスクの基本的なアーキテクチャをドラフトできますか?

メッセンジャーサービス、ローカルサービス、AIDL、パーセル可能、Webサービス??

無知でごめんなさい。私は非常に基本的な概念と本当に混同しています。

ありがとうございました。

4

1 に答える 1

2
  • サービス

これは、Androidでは、タスクを処理するバックグラウンドで実行されているものです。スレッドのようなものですが、目に見えない活動のようなものです。

これは、ローカルサービス(それと通信するアクティビティのプロセス内)またはリモートサービスのいずれかです。リモートサービスの場合は、プロセス間のすべての通信をシリアル化する必要があります。そのメカニズムはIPCと呼ばれます。

Android上のIPCの場合、サービスのリモートインターフェイスを定義するAIDLがあり(他のプロセスでメソッドを呼び出すことができないため)、オブジェクトをシリアル化するためのパーセル可能なものがあります。

メッセンジャーサービスは、Androidのメッセージクラスを使用してプロセス間でデータを転送するサービスの一種です。

上記のすべてのものは、デバイス内で何かを行うためだけのものです。他のデバイスではありません。

  • ウェブサービス

これはWebサーバーとインターネットが関係するものであり、実際にはAndroid固有のものではありません。ウィキペディアの方がいいです:)


  • デバイスAからデバイスBにデータを送信する方法:

これを行うにはいくつかの方法があります。チャットサーバーのように機能し、登録済みのデバイスにメッセージを送信/ポーリングできるWebサービスを作成するのが1つの方法です。別のTCP(ローカルWiFi内)を介した直接通信。必要なものによって異なります。

  • アプリの内部アーキテクチャ。

ネットワーク通信を処理し、アクティビティがメッセージを送受信できるようにするサービスは、おそらく良いアイデアです。しかし、それを正確に行うためのユニバーサルスキーマもありません。それは、アプリが何を必要としているかによって異なります。

于 2012-04-18T12:36:28.137 に答える