Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.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中的SQLite数据库操作是否在内存中?_Android_Database_Sqlite_Memory_Database Performance - Fatal编程技术网

Android中的SQLite数据库操作是否在内存中?

Android中的SQLite数据库操作是否在内存中?,android,database,sqlite,memory,database-performance,Android,Database,Sqlite,Memory,Database Performance,我正在我的应用程序中创建一个数据存储库层,该层依次提供来自两个源的数据,即网络API调用或从本地存储获取数据。当有对数据存储库层的请求时,我首先需要检查数据是否存在于本地存储中。如果没有,我就调用我的API来获取数据。为了检查数据是否在本地存储中,我考虑了两种实现方法: 在应用程序启动时,我将数据库中的所有数据加载到内存中(例如列表、地图等),然后每当我必须检查本地存储中是否存在数据时,我都会从内存中进行检查。这可能是我之前也遇到过的一个问题。当应用程序在后台时,Android系统可能会清除分

我正在我的应用程序中创建一个
数据存储库层
,该层依次提供来自两个源的数据,即网络API调用或从本地存储获取数据。当有对
数据存储库层的请求时,我首先需要检查数据是否存在于本地存储中。如果没有,我就调用我的API来获取数据。为了检查数据是否在本地存储中,我考虑了两种实现方法:

  • 在应用程序启动时,我将数据库中的所有数据加载到内存中(例如列表、地图等),然后每当我必须检查本地存储中是否存在数据时,我都会从内存中进行检查。这可能是我之前也遇到过的一个问题。当应用程序在后台时,Android系统可能会清除分配的内存,以便为其他应用程序提供内存。这使事情对我来说变得复杂
  • 每当我想检查本地存储中是否存在数据时,我都会直接对SQL表进行查询,并根据查询结果做出决定。这是一种比上述情况更精简、更清洁的解决方案。我唯一担心的是演出的热播我想知道SQLite数据库是否在加载到内存后运行?如果是的话,那么我在上面创建的数据存储层是无用的如果不是,继续为每个小数据请求查询SQLite数据库是否安全

SQLite缓存一些数据,只要有足够的内存,Android操作系统就会将数据库文件保存在其文件缓存中


因此,在使用SQLite时,应用程序的性能会根据可用内存自动优化。

您可能会发现这是两者的混合,也可能是这两者的混合