2012-04-18 89 views
0

我已經在過去的兩週內對本地和遠程Android服務,IPC,AIDL進行了大量閱讀......並且當我認爲我理解了一些事情後,我再次陷入混亂。您何時需要WebService或Android服務?

我的意圖是發送一些數據,讓另一臺設備接收。例如共享一個字符串或任何其他對象的數組。

arquitecture有一些基本概念,我仍然沒有得到:我應該實現一個web服務,應用程序將不得不聽?否則,其他設備上的應用程序如何知道有「消息」在等待?

任何人都可以爲這樣的典型任務起草基本的建築作品嗎?信使服務,本地服務,AIDL,Parcelable,Web服務??????????????????????????

抱歉無知。我真的很混淆非常基本的概念。

謝謝。

回答

2
  • 服務

也就是說Android上在處理任務後臺運行的事情。像一個線程,但更像是一個看不見的靈活性。

它可以是本地服務(與活動進程通信)或遠程服務。如果它是遠程服務,則需要序列化進程之間的所有通信。這種機制被稱爲IPC。

對於Android上的IPC,您有AIDL來定義服務的遠程接口(因爲您無法在其他進程中調用方法),並且您有Parcellable東西來序列化對象。

Messanger服務是一種使用Android的Message類在進程之間傳輸數據的服務。

以上所有內容僅適用於您設備中的內容。不與其他設備。

  • Webservice的

的東西,涉及到網絡服務器和因特網和,它不是真正的Android特有的。你最好是維基百科:)


  • 如何從設備A發送數據到設備B:

有幾種方法可以做到這一點,創建就像一個的ChatServer,並允許一個WebService發送/輪詢註冊設備的消息將是一種方式。通過TCP(在本地WiFi)的另一個直接通信。取決於你需要什麼。

  • 應用程序內部架構。

處理網絡通信並讓您的活動發送/接收消息的服務可能是一個好主意。但是沒有一個通用的模式來完成這個任務,這取決於你的應用需要什麼。

+0

「以上所有內容僅用於在設備內部進行操作,而不能用於其他設備。」 Thx @zapl,這就是我需要知道的。有關從A發送數據到B的任何文檔?這將超出Android SKD的範圍我猜...? – eskalera 2012-04-18 14:26:58

+2

也許[that](http://stackoverflow.com/questions/903322/implementing-a-chat-server-as-a-webservice)或谷歌「Java套接字編程」或「Java Web服務」或如此:)有無盡的可能性做到這一點。或者[Android Cloud to Device Messaging](http://code.google.com/android/c2dm/),但這更像是一個Web服務到設備消息傳遞的東西。 – zapl 2012-04-18 14:42:43