【问题标题】:Accessing static data访问静态数据
【发布时间】:2014-05-30 10:16:06
【问题描述】:

访问 Android 应用静态数据的最佳方式是什么

有关数据的信息

  • 将是只读的,用户不能更改它
  • 数据将由一个 ID 和几个单词/短语组成
  • 不会很大:最多约 1000 个单词/短语
  • 数据将按顺序访问
  • 我将在开发应用程序时获得数据
  • 数据会被频繁读取

根据我目前在网上看到的内容,我有几个选择:

  1. 在应用启动时将所有静态数据加载到 SQLite 数据库中。这是这样做的安全方式,因为只有 root 用户才能删除/更改数据。此外,Android 已经有 SQLite 并且查询很容易。可以用cursor.moveToNext()方法顺序读取
  2. 从应用程序资源中的 flat/xml/csv 文件中读取数据。我不知道从文件读取的速度与使用 SQLite 相比如何?另外,如果我必须引用文件中的特定行(将是一个单词/短语),那与硬编码有什么区别?

最好的选择是什么?有更好的解决方案吗?

【问题讨论】:

  • 如果数据不是结构化的,那么你可以把它放在strings.xml或arrays.xml中

标签: android xml sqlite csv flat-file


【解决方案1】:

您可以将静态数据放在 values/strings.xml 文件中。 如果您没有大量数据并且用户无法更改它,这是最好的方法。

【讨论】:

    【解决方案2】:
    static final data ? :
    

    在 android 中执行此操作的常用方法是在您的应用程序中的 /res 下创建一个名为 strings.xml 的文件,并将您的字符串放在那里。每个字符串都有一个名称。例子:

    <string name="app_name">Single Finder</string>
    

    然后您可以从您的 XML 布局或您的 java 源中访问您的字符串。例子:

    XML

     <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
    

    Java

    String myStr = getApplicationContext().getRessources().getString(R.string.hello_world);
    

    另一种方式,也就是Java常用的创建static final字符串的方式。见Declaring a Variable as a Constant

    【讨论】:

      猜你喜欢
      • 2012-04-19
      • 2012-06-03
      • 2016-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多