我的应用程序需要三个 per-defiend 数组来运行:一个字符串数组和两个整数数组。每个数组的长度都是 100。为了将这些数组添加到我的应用程序中,我想到了以下两种方法:
- 在
Utils.java
类中将它们作为静态最终变量进行硬编码,并在需要时在我的 Activity 中引用它们。 - 将它们放在
res
文件夹中,并在需要时构建数组(使用 getStringArray() )。
现在,我想知道:
- 在内存和效率方面最好的方法是什么?
- 第一种方法会增加我的应用程序所需的内存吗?第二个会导致延迟和响应问题吗?
- 有没有我应该考虑的更好的方法?
最佳答案
如果数组对于每种语言等都是相同的。我会在您的 Utils 类中进行硬编码。这肯定是最快的方法,因为如果您将它们作为资源,您的应用程序必须在运行时读取文件,这比已经将其包含在代码中要慢得多。 您的应用程序的整体大小不会像每种方法一样发生太大变化,您将在应用程序包中的某个位置获得数据。无论是在代码中还是在资源中的文本文件中。实际上,由于代码中的硬编码整数以二进制形式存储为整数,因此它们需要的内存略少(Java 中的每个整数需要 4 个字节来存储,而文本文件中的整数如 1000000000 需要 10 个字节。
仅当这些数组不同时,例如不同的语言,您应该使用具有资源的解决方案。
关于android - 在您的应用程序中硬编码数组的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16128773/