2011-05-22 100 views
12

Android中的SQLite有沒有其他替代方案來保存手機中的數據?我看起來像iOS的coredata或像鍵值存儲更簡單的東西。如果我們需要將它嵌入到應用程序中,那麼尺寸相對較小的東西也很棒。Android持久化替代SQLite

感謝您的協助。

回答

6

如果您只需要一對簡單的商店購買幾個鍵/值對,SharedPreferences即可。如果您正在尋找更強大的功能,與Core Data相比,您應該嘗試使用greenDAO。與核心數據一樣,greenDAO是對象與數據存儲之間的一層(iOS上的Core Data通常也使用SQLite)。

+0

你知道'greenDAO'支持分離/合併內存映射嗎? http://stackoverflow.com/questions/40399878/detach-merge-with-ormlight-greendao – 2016-11-03 11:12:25

2

我不知道iOS的任何東西,但看看SharedPreferences

+0

是不是隻有用戶的喜好? – 2011-05-22 04:34:01

+1

您可以隨意使用它 - 使用它來存儲少量持久數據是相當普遍的做法。 – Haphazard 2011-05-22 04:37:24

+0

SharedPreferences在存儲大量數據時不是首選項。 – tGilani 2013-02-21 05:39:38

2

你可以看看http://jdbm.sourceforge.net/:78kb jar,transactions,會保存到一個文件中。

+1

謝謝。這很有趣。 – 2011-05-22 05:14:37

1

有三種推薦的方法來存儲您的Android應用程序的數據(根據Android文檔)。

  1. 如果需要保存設置,配置,用戶憑據 你可以使用SharedPreferences。優點:保存在SharedPreferences中的數據比靜態全局變量更好。 因爲它是線程安全的,即使在殺死應用程序後數據也不會消失。

  2. 如果您需要保存頻繁的大數據(例如加速度計數據,gps數據),您可以使用SQLite數據庫。

  3. 但是,如果你只是存儲大數據,但很少處理它們,最好保存到一個文件中。但一定要緩存數據並一次保存/追加到文件中(因爲I/O操作是CPU密集型的並且消耗更多功率)。

0

存在替代呼叫REALM是管理(Ruby on Rails中)狀物體,類似於ActiveRecord的數據庫一個完整的圖書館。他的優勢之一就是交易的速度。但要小心,因爲是一個新的圖書館,或許是一個好主意,首先閱讀所有文檔。