2011-06-28 228 views
1

我正在嘗試編寫一個Android應用程序,該應用程序將使用發佈者/訂閱者模型從將從某個遠程服務器上託管的數據庫獲取數據。這是一個原型應用程序,所以我只想在我的家用PC上託管服務器。我正在使用Ubuntu。我已經閱讀並研究了這個主題,但有很多分散的答案。我有很多問題處理這個,但對於初學者。從遠程數據庫獲取數據的Android應用程序

  • 託管一個服務器,包含數據庫,以用於Android的最佳方法是什麼?
  • 對我使用的數據庫類型有影響嗎?
  • 我可以使用Android的SQLite的API從數據庫

我在多個地方,它不是猶太從任何超過直接互聯網連接到數據庫,特別是在移動設備上讀取獲取數據。所以我認爲我需要使用某種HTTP,REST或類似的東西。

我不太熟悉這些,所以如果有任何相關的信息將不勝感激。

感謝

回答

1

What is the best method for hosting a server that contains a database?

從服務器與數據庫通信的角度來看,通常是沒有區別的無論是Android還是其他客戶端。重要的是你定義了服務器和客戶端之間的通信協議(在你的情況下是Android)。最好的可能會是一些基於http的協議(REST可能)。

does it matter what type of database I use?

對於客戶端也沒關係。 Android將只是另一個客戶端。所以這對你並不重要。選擇一個最容易進行並且被採納的方法。 MySql,Postgres是很好的候選人。

Can I use the android SQLite APIs for getting data from the database.

沒有

I read in multiple places that it is not kosher to connect to a database from anything over the internet directly

你肯定不希望這樣做。更重要的是,當你設計你的服務器時,你可能想要將與數據庫交談的代碼從與客戶交談的代碼中分離出來。這將是面向服務架構的基礎。

1

Android app to connect to backend database/website

How to communicate with server's database from android phone?

這兩個問題有一些好的想法。

我會做的是創建一個Restful Web應用程序。一個你的CRUD數據庫操作可以通過你的HTTP方法表達的地方。

  1. 創建 - POST/PUT
  2. 閱讀 - 讓
  3. 更新 - POST/PUT
  4. 刪除 - 刪除

從網絡方面,你可以簡單地使用JDBC來執行你的數據庫操作。

這是一個非常簡單的建議,但我認爲這是一個很好的起點。 (也許這是顯而易見的,但你肯定會想驗證請求進來,以防止對數據的惡意攻擊。)

相關問題