【问题标题】:More efficient in Android app? Database or ObjectsAndroid 应用程序更高效?数据库或对象
【发布时间】:2013-03-29 19:31:54
【问题描述】:

我有 30 个对象,每个实例由 7 个字符串字段和一个小位图组成。 这些对象将被销毁并每天重新创建。 在我的 android 应用程序中,从数据库中写入和读取这些数据会更有效吗?还是简单地创建一个新类并创建 30 个实例并将它们存储在一个数组中? 内存效率/性能/等。

感谢您的宝贵时间。

【问题讨论】:

    标签: android database performance pojo memory-efficient


    【解决方案1】:

    如果您不想为数据库编写样板代码,您可以将您的对象以JSONXML 格式保存为文件。

    你有两种方法:

    1. 在文件系统中存储使用序列化存储和反序列化读取
    2. 本机存储在JSONXML 中,并在您的类和所需数据格式之间编写转换器

    数据库是很好的解决方案,因为 Android 中的SQLite 非常快等等。但是如果你想改变表的结构,你将不得不在SQLiteOpenHelperonUpdate()方法中编写ALTER TABLE查询和其他麻烦。

    所以我建议使用XMLJSON 来存储数据。

    更新

    另外,您可以将您的自定义数据类标记为可序列化,将值存储在 ArrayList 或其他结构中并将其序列化以存储,然后反序列化以读取。

    【讨论】:

    • 谢谢阿特姆。存储在 XML 中
    【解决方案2】:

    将项目写入数据库,因为它们需要持久化,即使只保留 24 小时。

    您应该将图像文件存储在 Internal Storage 沙箱中,并在数据库中按文件名引用它们,因为在数据库中存储最小的 Bitmap blob 通常效率低下。

    【讨论】:

      【解决方案3】:

      对于有限数量的对象,我认为您是具有Object 表示并将它们存储在ArrayList 中的击球手。大量条目的数据库设计。

      但是,如果数据需要保存一整天,如果您将其留在内存中,您可能会因GC 而丢失它,在这种情况下,您别无选择,只能将其存储在数据库中。

      你从哪里得到这些数据?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-16
        • 1970-01-01
        • 2019-10-21
        相关资源
        最近更新 更多