我希望以结构化的方式存储数据,例如关于多个呼叫的所有信息(如通话记录)。 我应该选择什么?并且我不想与其他应用程序共享我的数据。
- SQLiteDatabase
- ContentProvider
- SharedPreference
- 文件存储
- 或者我不知道的其他适合我的需求的方法。
SharedPreferences
显然是以XML文件的形式实现,并在更新时完全序列化和反序列化。它是一个键值存储,没有索引,因此只适合用于与您的应用程序相关的简单数据。如果超过50个键,则可能已经过度使用。
ContentProvider
旨在用于跨应用程序共享数据。您已明确表示不想这样做。
SQLiteDatabase
旨在让各个应用程序存储数据,并提供了很多灵活性,可以以不同的方式存储和索引数据。我个人在我的一个应用程序中使用它来存储日志。我建议采用这种方法。
另一个选项是将日志记录到存储在文件存储中的普通文本文件中。
我最近发现了db4o [http://www.db4o.com/android/]。虽然它不是存储日志的最佳选择,但如果您想将数据存储在对象中,这绝对是SQLite的一个很好的替代品。
你也可以将数据保存在应用程序创建的XML文件中。在我做过的许多应用程序中,我都是这样做的。使用任何SAX或DOM解析器,您都可以顺利地检索数据。没有其他应用程序可以访问该XML。
希望这可以帮助到您。