SQLite + Serializable、SQLite + GSON,还是我的 Android 应用程序的普通 SQLite?

SQLite + Serializable, SQLite + GSON, or just plain SQLite for my Android app?

我正在尝试找出为我的 Android 应用程序持久保存数据的最佳方法。目前的情况是在一个 activity (UserItem) 中创建了对象,在另一个 activity (SuggestionItem) 中创建了对象。目前我仍在考虑结构,但这些可能是同一父项 class(项目)的子项 class,具有一些共同属性,例如 namelocation .

SuggestionItem 当前与保存​​其大部分数据的对象具有组合关系。该对象的类型为 Suggestion,它有几个子classes,如 RestaurantSuggestion 和 HotelSuggestion。

我想要做的是让第三个 activity 显示创建的所有 SuggestionItems 和 UserItems 的视图。我正在考虑将它们存储在 SQLite 数据库中,因为它们应该在应用程序 closes/restarts 之间保存。将来可能还会有某种形式的 exporting/importing,但我可以只考虑暂时保存这些对象,稍后再重新设计数据库。

我的问题是,我应该为我的 classes 和与其字段匹配的列创建一个包含表的模式,还是应该序列化这些对象并将序列化版本存储在数据库中?它们相当简单;每个 class(例如 urlpricePerNightimageUrl)可能有大约 10 个原始字段和字符串字段。唯一的非原始字段是 LatLng 字段,它可以变成几个纬度和经度的双字段。我知道 Android 的两种序列化方法:gson 和实现 Serializable。我不确定哪个更合适。

哪位有经验的可以给我点建议吗?对不起,文字墙。

如果您从不需要检索符合特定条件的项目,序列化是好的,但我建议将各个字段编码到数据库中,以便您可以轻松地搜索它们。

根据一般经验,对数据库中的各个字段进行编码总是更好,因为您现在无法知道将来您是否需要按照某些标准检索数据。

注意:这是我对问题的评论