我应该如何为我的 Android 应用存储约 400 个键值对?

How should I store ~400 key-value pairs for my Android app?

为 Android 应用程序存储约 400 个键值对的最佳方法是什么?这些值将在应用程序的初始设置时设置,此后极少更改。但是,每个应用程序使用一次它们作为模板来创建一组其他对象,然后对其进行操作。

在应用程序的前一次迭代中,我将这些值存储在单独的 sql table 中。我现在正在过渡到使用房间模型并重新编写大量代码,其中一部分是评估以前的决定。

前面的代码是如何工作的,我将 ID 和布尔值对导入到对象列表中。用户然后向这些对象添加其他信息,然后我会将这些对象数据重新存储回单独但相关的 sql table。

我应该保留 table 中的值吗?使用 SharedPreferences 会不会太多或效率低下?有没有我不知道的更好的方法?

这是两个table的格式。第一个是跟踪当前轮换的购物车,而第二个 table 是每个购物车的每日历史记录。

(cartID int NOT NULL PRIMARY KEY, 
in_rotation boolean NOT NULL) ");

database.execSQL("create table " + cartlistTable + " 
(checksheetID string NOT NULL, 
cartID int NOT NULL, 
in_rotation boolean NOT NULL, 
checked boolean default 0, 
overdue boolean default 0, 
maintenance boolean default 0, 
FOREIGN KEY(checksheetID) REFERENCES checksheet(checksheetID), 
FOREIGN KEY(cartID) REFERENCES carts(cartID))");

如果您正在处理大量数据,我建议您远离共享偏好,因为共享偏好中可以存储的最大数据量为 1428.51 kb。

共享首选项也存储在 xml 文件中,它缺乏来自 SQlite 或 Room 的强大事务支持。共享首选项加载所有数据,将整个 XML 文件的内容读取到内存中。

比较room和shared preferences,400条之类的信息,可以和room一起去。