2011-11-04 54 views
2

我有以下情形:我解析來自服務器的JSON響應到SQLite數據庫,然後我使用的數據庫和查詢,過濾datamodels,...Android的 - 數據庫與文件系統和對象

我的一位同事,一位iOS開發人員說,他不會將JSON解析爲數據模型,並且不再將數據保存到數據庫中。他只需要字典,使它們可用於應用程序,並持久保存到二進制文件中。

現在我想知道,有沒有人在Android上以同樣的方式做到這一點?在應用程序中有1000個HashMap對象(每個對象具有大約10個其他對象(字符串))會有問題嗎?看起來對我來說很重要,它會降低我的應用性能嗎?但爲什麼它在iOS上運行良好?

回答

2

我們都在不同的項目。我們將數據保存在json中的一個項目有很多不同的字段和一些樹結構,因此將其存儲到數據庫中將是一項繁忙的工作。但是,由於尺寸的限制,我們遇到了內存問題。

爲了讓您的數據生活更輕鬆,並且與CoreData大致平行,請參閱http://ormlite.com/。它是一款適用於Android/Sqlite的orm工具。我做了最初的Android端口,並在幾乎每個項目中都使用它。如果你有很多數據並且只能訪問小部分,那麼數據庫可能會更好。

1000個對象不會真的殺死你,但它的項目具體而且很難說。然而,我不認爲讓Json留在內存中會更好。至少不是數量級。

+0

非常感謝。我現在正在嘗試,但也許在我的下一個項目中,我會看看ormlite。 – Tobi

0

是否要保留數據?如果你希望它可以從一個應用程序運行到下一個應用程序,那麼你必須通過將它存儲到一個文件中來實現它。我發現數據庫是最簡單的,但我想如果你真的想要你可以把它放在某種二進制文件中。但是,您必須擔心如何從該序列化數據中來回移動。

如果您想您的應用程序的生命週期內保持在內存中的一切,這很好。你可能會注意到速度的增加。一個1000對象的HashMap應該適合你的內存。

0

我無法從你的同事的描述中得知,但他的實現可能使用的是CoreData,這是一款在Android中沒有並行功能的iOS工具。您提供的描述與其高水平相匹配。在Android have been addressed here上處理該功能的其他方法。

+0

看來他並沒有使用CoreData,因爲他聲稱他只是使用普通的字典。 – Tobi