android - 存储动态数据的最佳方式?

标签 android sqlite local-storage android-database

我正在为 Android 开发一个启动器,需要一些关于设计我的持久存储系统的建议。

我希望人们能够为他们的应用程序创建不同的类别(例如媒体、实用程序、社交)。用户必须能够选择他们的应用程序的顺序,并且应用程序可以出现在多个类别中。用户可以更新应用程序的顺序,并且顺序应在重新启动时保持不变。我还想跟踪应用程序的启动频率,以便我可以有一个自动的“最常用”类别。

我有两种方法,但都不理想:

  1. 将应用程序列表保存到一个文件(JSON 或其他),记下程序包名称和在列表中的位置。需要时将此文件带入并按顺序排序

  2. 将列表保存在 SQLlite 数据库中,或者:

    • 为每个类别制作一个表格。列将是 package_name 和 list_position
    • 有一个表,每个类别都有一列,用于存储该应用在该类别中的位置(如果不存在则为 null)。创建新类别时,会添加一个新列(Room 不支持)。

选项 1 我觉得保持动态和不确定效率会很棘手,所以我更喜欢选项 2,因为它易于更新和自动排序,但是为此使用数据库可能有点矫枉过正。

任何建议或其他可能的解决方案都会很棒!谢谢

最佳答案

我会选择数据库方法。我认为将数据存储在文件中对于数据不会增长并且在应用程序被销毁之前最多刷新一次的小型应用程序来说可能是一个不错的选择。

如果你想避免 SQLite 的样板代码,那么考虑 Room .或者,您可能想看看 Realm这是 SQLite 的替代品。

关于android - 存储动态数据的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51149717/

相关文章:

mysql - 如何在 Syslog-ng csv-parser 中创建动态列 (MACROS)

javascript - 用 JSON 覆盖 localStorage

javascript - 本地存储 : Change value for a specific array using Stringify

java - Android服务读取localStorage?

java - 为什么我的方法会改变原始变量的值?

java - 将依赖项写入主日志文件

java - 手机上不存在表,但模拟器上一切正常

android - 将 Android Studio 与 Vuforia 结合使用

android - 添加/注入(inject)/强制 <meta-data> 行到每个已安装应用程序的 list 中

sql - CoffeeScript,寻找类似 SQL 的模块