Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中存储静态数据的最快/首选方式是什么?_Android - Fatal编程技术网

在android中存储静态数据的最快/首选方式是什么?

在android中存储静态数据的最快/首选方式是什么?,android,Android,我想存储大约一千个字符串(如一些引号),并使用它们填充ListView或ListFragment。这些字符串是静态的,加载后不可能更改 它是只读数据,不应允许用户对其进行操作 我应该使用XML文件还是文本文件来存储它们,或者最好的方法是什么?使用Sqlite db这是一种高效、安全的方法,它永远不会改变 字符串数据类型 在构建应用程序时,您是否已经拥有它们 只需将它们保存在资源、字符串中;就像您存储“appname”这样的值一样 您可以保存一个由换行符(或逗号、冒号等)分隔的巨大字符串变量,然后

我想存储大约一千个字符串(如一些引号),并使用它们填充
ListView
ListFragment
。这些字符串是静态的,加载后不可能更改

它是只读数据,不应允许用户对其进行操作


我应该使用XML文件还是文本文件来存储它们,或者最好的方法是什么?

使用Sqlite db这是一种高效、安全的方法,它永远不会改变

字符串数据类型

在构建应用程序时,您是否已经拥有它们

只需将它们保存在资源、字符串中;就像您存储“appname”这样的值一样
您可以保存一个由换行符(或逗号、冒号等)分隔的巨大字符串变量,然后使用java的字符串实用程序或标记化来获取每个子字符串,或者根据其模式选择任何合适的子字符串,共享优先级是存储小数据的最佳方式

如果数据在整个应用程序开发过程中不会发生变化,为什么不使用任何访问修饰符静态final方式,并且可以在应用程序中使用它们,而且就大小而言,数千或10万个字符串数据不会产生影响,因为我们知道字符串也是如此不可变并且不能在整个应用程序生命周期内更改,另外一件事是声明为最终,因此重新初始化将不存在,而只是重复使用。将中的所有字符串声明为类部分,以便在类加载时加载,即加载一次。如果还有其他事情,请告诉我。

只需将它们放在一个文本文件中,然后存储在中即可资产文件夹。如果你把它们一行一行地放进去,你已经有了你的项目。

使用sqlite数据库这些字符串在运行时会改变吗?您需要没有访问源的权限的人才能编辑它们吗?字符串在运行时不会更改。我不希望用户也编辑它们。只是一种只读的东西。但如果用户不小心删除了数据库,会不会导致任何问题?你能详细解释一下为什么只使用Sqlite吗?我不清楚。只有根用户才能删除数据库,因为它存储在应用程序的受保护目录中。与前面提到的其他方法相比,使用数据库有几个优点:它优化了查询,使您能够轻松地为列表视图实现过滤器等功能。它也不要求您将所有字符串存储在内存中。但您无法查询
SharedReferences
查询SQLite数据库的方式正如Thrakbad所说,除非您拥有根访问权限或通过代码在同一个应用程序中删除数据库,否则无法删除数据库。所以不要担心,这就是为什么我使用了“安全”这个词,但如果用户意外删除了应用程序,它不会导致任何问题吗?请您详细说明为什么Sqlite只是因为我不清楚。是的,我会在开发过程中使用它们。你的想法听起来不错,但只是一个疑问,它能有效地存储数千个这样的吗?嗯,我认为GETRealSuthes()将加载内存中的所有变量。如果这是一个问题,您需要在多个文件中隔离,并只加载您真正需要的文件(如果可能)。但话说回来,一千个字就是几Kb。。如果您的字符串是word,那么效率就不是问题