android - 在您的应用程序中硬编码数组的最佳方式?

标签 android arrays

我的应用程序需要三个 per-defiend 数组来运行:一个字符串数组和两个整数数组。每个数组的长度都是 100。为了将这些数组添加到我的应用程序中,我想到了以下两种方法:

  • Utils.java 类中将它们作为静态最终变量进行硬编码,并在需要时在我的 Activity 中引用它们。
  • 将它们放在 res 文件夹中,并在需要时构建数组(使用 getStringArray() )。

现在,我想知道:

  1. 在内存和效率方面最好的方法是什么?
  2. 第一种方法会增加我的应用程序所需的内存吗?第二个会导致延迟和响应问题吗?
  3. 有没有我应该考虑的更好的方法?

最佳答案

如果数组对于每种语言等都是相同的。我会在您的 Utils 类中进行硬编码。这肯定是最快的方法,因为如果您将它们作为资源,您的应用程序必须在运行时读取文件,这比已经将其包含在代码中要慢得多。 您的应用程序的整体大小不会像每种方法一样发生太大变化,您将在应用程序包中的某个位置获得数据。无论是在代码中还是在资源中的文本文件中。实际上,由于代码中的硬编码整数以二进制形式存储为整数,因此它们需要的内存略少(Java 中的每个整数需要 4 个字节来存储,而文本文件中的整数如 1000000000 需要 10 个字节。

仅当这些数组不同时,例如不同的语言,您应该使用具有资源的解决方案。

关于android - 在您的应用程序中硬编码数组的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16128773/

相关文章:

android - 无法分配内存 : 8 (NetBeans)

仅适用于应用程序图标的 Android mipmap

android - 具有 m 列的 n 个表的 SQLite 联合

php - 对象数组的排序算法

Javascript 将数组元素相互组合的最有效方法

javascript - lodash 将对象数组转换为单个键数组和多个值数组

android - 如何连接到蓝牙 a2dp 设备?

Android Room - 避免将 Context 传递给 Singleton

python - 岛屿的最大面积

C 将文本文件中的数字读入数组并将数字用于其他功能