2011-12-09 85 views
20

因此,我一直在編寫小型Android應用程序,並希望開始編寫能夠允許用戶創建帳戶的大型應用程序,允許我以某種形式在線存儲其帳戶數據數據庫,真的只是添加一些需要某種後端的功能。將數據庫/後端添加到Android應用程序

我是新手編程,並從Java/Android開始。我應該從哪裏開始瞭解這個東西?這會成爲我需要的數據庫嗎?什麼類型的流行或好學習/使用?

我讀了關於https://www.parse.com,它看起來很有趣並且易於使用,但是我不想學習那些不是標準的東西,或者我只能使用它們的客戶端。

+0

也許你想看看一些更多的選擇,這是在這個問題中解釋:http://stackoverflow.com/questions/7912570/ready-to-use-backend-for-mobile-applications/10235975# 10235975 – Andreas

回答

28

我以前從來沒有使用過Parse,但它似乎是一個簡單的方法,讓您不用擔心編寫所有服務器端代碼,缺點是:它需要更多的資金才能使用它,而您也與他們的API和做事方式聯繫在一起。如果你使用Parse,你只需要擔心爲你的Android應用程序編寫代碼來與Parse進行交互。你可以看到他們的文件的細節。

便宜的路線需要更多的工作。你需要一個

  • 服務器來承載後端

  • 服務器端語言(即Java,PHP和Python的...不勝枚舉),以控制從Android應用程序/處理請求。

  • 數據庫(MySQL和PostgreSQL,Oracle等)設置你想要的模式(即用戶表)

的一般流程是:你的Droid的應用程序將作出http://yourserver.com/BackendFunction請求具有該功能的參數。您的服務器端腳本語言將完成後端工作(即將用戶添加到數據庫)。服務器通過一些信息(通常是JSON或XML,無論您選擇什麼)和相關信息來回應您的應用程序,並且您的應用程序會顯示該信息的良好視圖。

您需要研究如何使用任何服務器端語言&數據庫來查詢數據庫以及如何發送/處理HTTP請求&響應。

+0

謝謝!那基本上是我想知道的,關於教程的任何建議還是真的有什麼開始學習這個的?我猜想使用Java服務器端將是我最好的選擇,因爲我已經知道了一些,但我正在考慮學習python。 – Peter

+2

下面是一個[Python web框架列表](http://wiki.python.org/moin/WebFrameworks)和[Java框架](http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#Java)。你需要學習很多東西,這是一個很深的課題。一些Web框架遵循模型 - 視圖 - 控制器設計。您可以忽略在您的服務器上爲您的應用創建視圖,並對模型(數據庫對象)和控制器(將這些數據庫對象處理到您的應用)進行編碼。閱讀框架的文檔 - 查看您是否可以創建url,向其提交一些數據並讓它返回數據。 – JMoy

+0

即使我在尋找相同的答案。有沒有任何在線資源,可以從頭到尾引導我?我認爲你是唯一正確理解問題的人! –

5

你說得對,你需要服務器端的某種數據存儲來存儲數據。它可能是一個傳統的RDBMS數據庫(mysql或postgresql),或者像noSQL解決方案(mongodb,riak,couchdb)之類的新東西。解析看起來很酷,但我從來沒有嘗試過。

對於我最近的Android項目,我一直在使用Couchbase的Android庫(http://www.couchbase.org)和ektorp(http://www.ektorp.org),這些庫允許我複製到服務器端的CouchDB實例。它是有很多原因有了很大:

  • 使用HTTP默認發送數據
  • 發送數據的JSON格式(無轉換 - 綁定/序列化)
  • 簡單的EKTORP「複製」命令拉客戶端和服務器之間/推數據

此外,根據您選擇的數據存儲,你仍然需要幾件事情決定:

  • 你將數據發送到服務器的格式是什麼?我會推薦JSON。其他選項是XML或YML。
  • 如何將客戶端上的數據轉換爲傳輸?如果您選擇JSON,jackson-json庫非常棒。
  • 您是否需要一箇中間層來保護和/或翻譯您選擇的數據格式?如果你需要一箇中間層的話,你可能希望看看Spring MVC構建基於restful的web服務。

這似乎令人望而生畏(服務器端的東西有時會感覺這種方式),但保持在它,你會得到它!

相關問題