我已经开始研究一些Android应用程序,并且有一个问题,关于人们通常如何处理静态数据集的情况,并有一个应用程序,在该应用程序中,内存中需要的数据是标准的Java集合或数组中的一个。
在我目前的具体问题,我有一个电子表格与一些预先计算的数据。它由大约100行和3列组成。1列是字符串,1列是浮点,1列是整数。我需要用Java中的数组访问这些数据。
看来我可以:
1)用XML编码-根据我的经验,这将是CPU密集型的解码。
2)构建到sqlite数据库中-对于静态访问数据来说,似乎有很多开销,我只需要在ram中访问数组类型的数据。
3)生成二进制blob并读入。(从来没有在Java中这样做过,我想念Vaul*)
4)构建一个Python脚本,以获取我的数据的CSV版本,并吐出一个Java函数,将这些值添加到具有硬编码值的我想要的结构中。
5)通过Androids资源机制存储一个字符串数组,并在应用程序加载时计算其他2列。在我的例子中,计算将需要大量调用math.log、math.pow和math.floor,由于加载时间和电池使用的原因,我不希望这样做。
我主要在C语言中的低功耗嵌入式应用程序中工作,因此4是我在这些情况下习惯做的事情。
看起来在Java/Android中访问静态数据结构应该更容易。
也许我只是太在意电池的使用,在我的一个案例中,我想答案是这并不重要,但如果每个应用程序都采取这种立场,它可能会开始重要。
在这种情况下,人们通常采取什么方法?我错过了什么?

最佳答案

如果你确定这需要一直记住,我就去4号。其他选项包括json、节俭编码的数据结构或协议缓冲区编码的数据结构。

07-25 21:28
查看更多