我正在寫一個需要來自服務器的一些數據的android應用程序。我也用Java編寫服務器端。如何將數據從服務器傳遞到Android應用程序:REST vs Sockets
- 什麼是從服務器傳遞數據到Android設備的最佳方式:與REST或套接字(如Kryonet)?
- 以什麼格式:XML/JSON(用於REST)還是普通的Java對象?
在此先感謝。
我正在寫一個需要來自服務器的一些數據的android應用程序。我也用Java編寫服務器端。如何將數據從服務器傳遞到Android應用程序:REST vs Sockets
在此先感謝。
「最好」是很主觀的,我覺得有一個RESTful API是通過廣場的改造庫,它可以在這裏找到溝通的好方法: http://square.github.io/retrofit/
還有一個從谷歌凌空, http://developer.android.com/training/volley/index.html
同意nPn,「最佳」取決於很多應用程序和用戶的考慮因素。也就是說,
REST是首選,因爲它是最廣泛使用的,您可以訪問穩定和優化的客戶端庫。大多數這些庫支持各種用例和自定義。網絡套接字是well suited for real time or live content。如果你有不同的用例,強烈建議使用REST。
有了Android,JSON得到了很好的支持。 Android中包含core JSON API,您可以在沒有任何客戶端庫的情況下使用它。如果您計劃公開使用API(如JAVA,Windows具有強大的XML傳統),則XML可能很有用。
REST + JSON似乎是近來最常用的組合,很多客戶端庫通常啓用此用例。
JSON空間效率非常低,REST應該設計爲與GSON或Jackson內部協同工作,以便序列化數據流(緩衝讀取器)。數以千計的項目的安靜更新可以輕鬆關閉由於內存過載(也考慮使用async任務而不是服務,以免重載主線程「app not responding」)。 REST將提供一個JSON數組元素,JSON庫將一次加載它,即使它稍後可能以串行方式使用它。 GSON將分別從陣列中拉出每個元素。 – 2016-11-06 12:04:29
+1 for REST webservices! :D – zozelfelfo 2014-09-23 22:14:53
這取決於什麼樣的數據......如果它只是一個帶有資源的二進制文件,只需從web或ftp下載即可。 – eduyayo 2014-09-23 22:22:59
如果有一種對話,並且事情會回來,servlet套接字可能會做...如果是實時遊戲,則普通的舊套接字就是解決方案。但是絕對不要因爲某人喜歡這個或者因爲互聯網上有更多的色情內容而與其他人相處,好嗎? – eduyayo 2014-09-23 22:25:01