這裏是你應該知道什麼來實現你的目標的簡要概述。我不會深入細節,特別是因爲我從來沒有親自使用過RoR。請注意,其中一些部分可能與RoR不完全相關,但其背後的一般理念仍然適用。我會留給你去研究和弄清楚如何實現每個單獨的組件。
一切的一般流程如下:
Android應用< ==>網絡< ==> Web服務< ==> MySQL的
注雙刃箭,因爲數據將雙向流動。
Android App
是客戶端,而Web Service
和MySQL
數據庫位於您的Web Server
上。爲了完整性,我只包含網絡部分,但一旦數據已發送到網絡上,您就不需要執行任何操作。
每個部分的簡要概述:
Android應用:
Android應用是發送和從Web服務器檢索數據的客戶端。我假設在你的應用程序中,你將允許用戶執行一些任務,這些任務本質上就是你想要在某個時刻發送給服務器的數據。
例如,用戶應該能夠輸入他的名字和最喜歡的動物。比方說,有一個實際的「提交」按鈕,用戶可以點擊。當點擊這個「提交」按鈕時,它應該將數據合併成適合通過網絡發送的格式。其中最常見的兩種是JSON
和XML
。數據格式正確後,您需要使用某種網絡協議(如HTTP
)將數據發送到服務器。爲了發送數據,您當然必須擁有一些URL
作爲目標。可以說目標是www.example.com/webservice.php
。這個目標是我們位於Web服務器上的Web服務。
一旦你發送了數據,服務器將回應一些數據,在這一點你可以隨心所欲地做任何事情。也許將其顯示給用戶,或者將其保存在SQLite
數據庫中,或者兩者兼而有之。
要記住的關鍵是沒有魔法發生。我剛剛描述的所有內容都將以Java代碼實現,您將在某些時候編寫Android應用程序。
核心理念,你應該研究更多,並找出如何在Java代碼來實現:
- JSON和XML
- HTTP在Java中
- REST和SOAP
- Here是有關設置Android應用程序結構的可能方式的優秀視頻。
- 確保您正在其他線程上執行Android應用程序中的所有網絡操作。一個易於使用的方法是Intent Service。
Web服務:
這往往是最令人困惑的部分。對於嘗試訪問Web Server
的客戶,A Web Service
只是一些入口點。在使用RoR
時,我的解釋可能略有不同,但適用相同的想法。請注意,目標URL
爲www.example.com/webservice.php
。 Web服務實際上是存在於Web服務器上的PHP
代碼,稱爲webservice.php
。在您的Android應用程序中,當您使用HTTP
將數據發送到目標URL
時,Web服務代碼將在服務器上執行(並且還可以訪問您發送給它的數據)。在您的Web服務代碼中,您將基本上提取數據(具有某種格式,如JSON),抓取必要的部分,然後對其進行處理。在這種情況下,你很可能會查詢數據庫。在PHP中,編寫連接和查詢也在服務器上運行的MySQL數據庫的代碼很容易。當Web服務器檢索到數據庫的響應時,可以將其發送回Android應用程序。 就像以前一樣,請記住,沒有魔法在發生。所有這些想法都是通過編寫一些代碼來實現的。
主要思想來研究:
- Ruby on Rails的Web服務
- 如何訪問使用Ruby的MySQL數據庫on Rails的
MySQL數據庫:
這是您將數據存儲在We的地方b服務器。我不打算在這裏深入討論,因爲這只是要求您閱讀大量關於如何在Web服務器上設置MySQL數據庫的內容。學習如何創建適當的查詢也很重要,例如SELECT
,INSERT
等等。
主要思想來研究:
如何在Web服務器
上設置一個MySQL數據庫如果你需要任何澄清,讓我知道!
非常感謝。這有很大幫助。我只是試着用一個小應用程序來實現所有這些,看看它是否有效。再次感謝您的一切。 – Gaurav
@Gaurav如果你不介意,你能接受/提出迴應嗎?如果出現任何問題,也請隨時問我。 – btse