2012-04-18 29 views
0

私はローカルとリモートのAndroidサービス、IPC、AIDLで多くの読書をしています。そして、私が何かを理解していると思ったら、私はすべてうんざりします。いつWebServiceまたはAndroidサービスが必要ですか?

私は他のデバイスが受信するためにいくつかのデータを送信することを意図しています。例えば、文字列やその他のオブジェクトの配列を共有します。

私はまだ得ることはありませんarquitectureのいくつかの基本的な概念があります:私はアプリがに耳を傾けるしなければならないWebサービスを実装する必要がすべき?そうでなければ、別のデバイスのアプリが "メッセージ"が待っていることをどのように知ることができますか?

誰もこのような典型的なタスクのための基本アーキテクチャを草案することはできますか?

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

ご迷惑をおかけして申し訳ありません。私は非常に基本的なコンセプトとはまったく異なる。

ありがとうございます。 Android上でタスクを処理し、バックグラウンドで実行されているものです

答えて

2
  • サービス

。スレッドのようなものだが、目に見えない活力のようなもの。

これは、(それと通信活動の過程で)ローカルサービスまたはリモートサービスとすることができます。リモートサービスの場合は、プロセス間のすべての通信をシリアル化する必要があります。このメカニズムはIPCと呼ばれています。 Android上でIPCについては

あなたは、サービスのリモート・インタフェースを定義するAIDLを持っている(あなたが他のプロセスでメソッドを呼び出すことはできませんので)、あなたは、オブジェクトをシリアル化するParcellableものを持っています。

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

上記のすべてのものは、お使いのデバイス内のものを行うためのものです。他のデバイスでは使用できません。

  • Webサービス

それは本当にAndroidの特定ではなく、Webサーバとインターネットのを必要とするものです。デバイスAからデバイスBへデータを送信するためにどのように


  • を:)あなたより良いウィキペディア:

はchatserverのように機能し、可能にするWebサービスを作成することを行うには、いくつかの方法があります登録されたデバイスのためにメッセージを送信/ポーリングすることは片道になります。 TCP(ローカルWi-Fi)を介した別の直接通信。あなたが必要とするものによって異なります。

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

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

+0

"上記のすべてのものは、お使いのデバイス内のものを行うためだけです。他のデバイスではありません。 Thx @zapl、それは私が知る必要があったものです。 AからBへのデータ送信に関する文書はありますか?それは私が推測するAndroid SKDの範囲外だろう...? – eskalera

+2

多分[that](http://stackoverflow.com/questions/903322/implementing-a-chat-server-as-a-webservice)またはgoogleの "java socket programming"または "java webservices"などがあります。それを行う無限の可能性。または[Android Cloud to Device Messaging](http://code.google.com/android/c2dm/)ですが、これはWebサービスからデバイスへのメッセージングの機能です。 – zapl

関連する問題