2013-03-13 32 views
0

將構建一個將從Web服務中拉下JSON對象的應用程序,數量較少,數量較少,每個數據表示20kb。存儲JSON對象:SQLite vs序列化到磁盤

除了顯示這些POJO,下載新的和更新的應用程序並刪除過時的應用程序時,該應用程序不會做其他事情。什麼是持久存儲這些對象的首選方法?我猜這兩個主要競爭者是將它們存儲在SQLite數據庫中,可能使用ORMLite來減少開銷,或者只是將對象序列化到磁盤,可能在一個大文件中並使用非常快速的JSON解析器。

任何想法什麼是首選的方法?

回答

1

你可以考慮使用CouchDB作爲移動客戶端和web服務之間的緩存。

CouchDB將不得不在Internet上的服務上運行,從web服務緩存對象。在客戶端你可以使用TouchDB-Android:https://github.com/couchbaselabs/TouchDB-iOS/wiki/Why-TouchDB%3F。 TouchDB-Android可以自動與Internet上運行的CouchDB無縫同步。應用程序本身只能訪問TouchDB。 TouchDB會自動檢測到潮溼或者沒有互聯網連接,因此即使沒有互聯網,您的應用程序也能繼續運行。

優點: - 緩存JSON調用 - 客戶端仍在使用互聯網連接,在internet連接重新啓動時自動同步。 - 加載您的網絡服務,您可以擴展。

我們之前使用過此設置以允許Android軟件無縫工作,即使互聯網連接頻繁掉線,我們訪問數據的服務也相當緩慢且容量有限。

1

像SQLLite這樣的dbms應該帶有查詢,索引和排序功能(以及其他標準SQL DBMS功能),您應該考慮是否需要這些功能。您計劃在生產環境中有多少個物體?如果說一百萬個磁盤序列化方法可能無法擴展。

+0

對象將顯示在不同的視圖中,即通過類別,按日期顯示,因此需要進行某種類型的查詢和排序。我相信這對任何一個實現都不是問題。對於設計類型的應用程序,可能不會超過幾百個對象 – KingFu 2013-03-13 22:05:27