Java 你能推荐一些在android中节省内存和快速加载的解决方案吗?

Java 你能推荐一些在android中节省内存和快速加载的解决方案吗?,java,android,realm,Java,Android,Realm,我有非常大的布尔数组数据 如何在android中节省内存并快速加载此数据?以下是4种可能的解决方案: 1.)可以序列化对象并将其保存到文件中。 2.)您可以使用Gson库,将对象转换为JSON,并将其保存到文件或首选项中。 3.)您可以使用快速的领域库。他们甚至声称在某些操作上他们比SQLite更快。 有关解决方案1,请参阅 有关解决方案2,请参见以下4种可能的解决方案: 1.)可以序列化对象并将其保存到文件中。 2.)您可以使用Gson库,将对象转换为JSON,并将其保存到文件或

我有非常大的布尔数组数据


如何在android中节省内存并快速加载此数据?

以下是4种可能的解决方案:
1.)可以序列化对象并将其保存到文件中。
2.)您可以使用Gson库,将对象转换为JSON,并将其保存到文件或首选项中。
3.)您可以使用快速的领域库。他们甚至声称在某些操作上他们比SQLite更快。
有关解决方案1,请参阅

有关解决方案2,请参见以下4种可能的解决方案:
1.)可以序列化对象并将其保存到文件中。
2.)您可以使用Gson库,将对象转换为JSON,并将其保存到文件或首选项中。
3.)您可以使用快速的领域库。他们甚至声称在某些操作上他们比SQLite更快。
有关解决方案1,请参阅

有关解决方案2,请参见

150项布尔值是传统移动设备的少量数据。您可以在1秒内一次保存1000多个项目

方法1

字节[]
作为数据类型。您可以通过将布尔数组转换为字节数组来使用它

方法2

正如您所知,
布尔值
只是1位(二进制)数据。有很多事情需要处理,但对我来说,我喜欢用天真的方式来处理

  • 假设您有160项布尔值

    • true
      false
      ,…,
      true
      false
    • 它可以转换为
      1
      0
      1010101…1010110
  • 1个十六进制字符串包含4位

    • 101011010 1100
      可以表示为
      AE6C
  • 同样,
    160
    位可以转换为
    160/4=40
    字符串

  • 只需将40个长度的字符串保存到Realm或
    SharedReference

  • 要加载吗?没问题。将40个长度的字符串转换为160个长度的布尔数组


  • 我认为它可以消耗不到100毫秒的时间,因为在现代移动CPU中,这些转换过程非常快。

    150项布尔值是传统移动设备的少量数据。您可以在1秒内一次保存1000多个项目

    方法1

    字节[]
    作为数据类型。您可以通过将布尔数组转换为字节数组来使用它

    方法2

    正如您所知,
    布尔值
    只是1位(二进制)数据。有很多事情需要处理,但对我来说,我喜欢用天真的方式来处理

  • 假设您有160项布尔值

    • true
      false
      ,…,
      true
      false
    • 它可以转换为
      1
      0
      1010101…1010110
  • 1个十六进制字符串包含4位

    • 101011010 1100
      可以表示为
      AE6C
  • 同样,
    160
    位可以转换为
    160/4=40
    字符串

  • 只需将40个长度的字符串保存到Realm或
    SharedReference

  • 要加载吗?没问题。将40个长度的字符串转换为160个长度的布尔数组


  • 我认为这可能需要不到100毫秒的时间,因为这些转换过程在现代移动CPU中相当快。

    还有大约300种解决方案。我认为他需要一个简单的解决方案,因为他没有太多的经验。这取决于你想保存的数据量。如果你没有太多的数据,这只需要不到一秒钟的时间。我在我的项目中使用了Realm,它使用起来非常快速和简单。但是如果你想要一个更具体的解决方案,那就告诉我们你需要的更多细节。还有大约300个解决方案。我认为他需要一个简单的解决方案,因为他没有太多的经验。这取决于你想要保存的数据量。如果你没有太多的数据,这只需要不到一秒钟的时间。我在我的项目中使用了Realm,它使用起来非常快速和简单。但是如果你想要一个更具体的解决方案,那么请告诉我们关于你的需求的更多细节。确定你可以使用realm(realm提供你想要的速度)确定你可以使用realm(realm提供你想要的速度)我更喜欢
    byte[]
    解决方案,它真的很聪明。我更喜欢
    byte[]
    解决方案,它真的很聪明。