2011-09-21 50 views
6

第一次發佈和第一次在Android上工作,所以容易,如果我打破任何規則:)爲Android應用本地或在線存儲大量數據?

無論如何,我剛剛開始製作一個Android應用程序,我試圖創建一個簡單的瑣事遊戲。我打算提出許多問題(希望大約有5000多個問題)。沒有數據操作,直接讀取問題並將其呈現給用戶。我現在面臨着如何存儲問題的困境。

我有兩個選擇:

1)捆綁與應用程序的問題:可能存儲在SQLite的信息。最初,爲了演示目的,我將問題放在一個XML文件中,但我很快意識到一旦問題開始堆積如何,效率將會很低。首先,我擔心如果打開如此龐大的XML文件會佔用Android的內存。其次,如果它包含5000多個問題,我擔心應用程序有多大。關於XML vs SQLite的專業人士,我在read here。在那個例子中,用戶有70,000個條目,所以我的5000個問題就足夠了?

OR

2)主機服務器上的問題:我相信上面爲應用就需要用的問題了大量被捆綁並且不需要擔心開題和彙編問題的邏輯。它只會打到一個PHP頁面,根據發送的參數,PHP頁面將以XML格式返回問題。缺點是用戶需要在線(以檢索問題)才能玩遊戲,我的服務器需要全天候運行。

有沒有人遇到過這樣的設計問題:如何以及在哪裏存儲海量數據的Android應用程序?

謝謝,任何幫助將不勝感激!

+4

我認爲也應該提到相反的一面:不要違反任何規則(特別是在你的第一個問題上)。 +1表示清晰,寫得很好並且格式化的問題,顯示研究工作和想法。歡迎來到StackOverflow。 :) – 2011-09-21 02:59:59

回答

7

從營銷的角度來看,我認爲正確的做法是#1。只要查看頂級應用程序列表,它就會充滿離線工作的應用程序。我不知道爲什麼大多數人在談論市場營銷應用程序時都沒有提及這一重要標準......特別是在很多人沒有數據計劃的Android中。此外,瑣事應用程序聽起來像某人可能會在列車上下班時使用,而不是Facebook Chat等他們在線時使用的東西。

從技術角度來看,存儲5000多個問題真的不會佔用大量空間。有這個名爲「MyFitnessPal」的應用程序。它可以在SQlite數據庫中存儲超過30,000種食物,並提供營養信息。所以不要高估它需要多少空間。

與#2一起工作的好處是,如果問題或答案經常變化,您可能需要採用這種方法。

+0

是的,這正是我想到的 - 關於用戶無法在線玩遊戲。 所以我用一千個問題來檢查XML的大小,你是對的,它非常小。我實際上正在考慮拋棄整個數據庫方法,因爲Android似乎在打開XML文件(至少有一千個條目)方面做得很好,並且在沒有抱怨的情況下解析這些信息 - 這是我之前害怕的。 – RaKku

2

我認爲最好的選擇是將問題存儲在SQLite中。這樣用戶就可以訪問您的遊戲,即使它們處於脫機狀態,這也是Hisoka提到的重要事情之一。所以我認爲你應該嘗試使用SQLite.