Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.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_Json_Sqlite_Storage_Pojo - Fatal编程技术网

何时在Android上使用本地存储,建议使用哪一种?

何时在Android上使用本地存储,建议使用哪一种?,android,json,sqlite,storage,pojo,Android,Json,Sqlite,Storage,Pojo,我正在开发一个应用程序,我需要在应用程序会话期间处理一些数据。在应用程序被终止或用户手动注销应用程序后,我不需要这些数据 我正在使用POJO保存数据。POJO类似于帐户、用户、校园等。我从RESTAPI调用中以JSON的形式获取所有这些数据 由于我是一个全新的Android开发人员,所以我试图了解在这个场景中推荐哪种存储方法。(SQLite、SharedReferences、ApplicationContext、bundle、ArrayList、Maps等) 性能非常重要,在用户会话期间对该数据

我正在开发一个应用程序,我需要在应用程序会话期间处理一些数据。在应用程序被终止或用户手动注销应用程序后,我不需要这些数据

我正在使用POJO保存数据。POJO类似于帐户、用户、校园等。我从RESTAPI调用中以JSON的形式获取所有这些数据

由于我是一个全新的Android开发人员,所以我试图了解在这个场景中推荐哪种存储方法。(SQLite、SharedReferences、ApplicationContext、bundle、ArrayList、Maps等)

性能非常重要,在用户会话期间对该数据执行搜索

我需要经常构造JSON对象并将其发回API


有什么想法吗?

将数据放在应用程序上


如果您不需要持久化数据,并且数据的生命周期很短,您可能需要创建应用程序的某些子类来保存数据。这是在Android平台上存储一些内存全局数据的方式->

将数据放在内存中的SQLite表/数据库中

或者,如果这有助于查询数据,您可能需要一些内存中的SQLite表。在Android中也可以使用内存表

注意事项

第一种方法可能会给你最好的表现。所有数据都在内存中,因此很容易访问。但是,如果数据具有非常复杂的结构,并且查询非常复杂,那么您可能希望使用SQLite使查询数据更容易。性能将取决于数据和查询的复杂程度。性能仍然会很好,因为事情都在内存中

但是你必须小心。如果您最终使用了太多内存,那么您的应用程序很可能会被Android框架杀死。您的数据将丢失。(5MB可能没问题,10MB可能太多了。您必须进行测试,看看会发生什么。)


如果内存压力很高,则应卸载到磁盘。性能会更差,特别是当存储空间几乎满时。在这种情况下,访问速度可能非常慢。存储和检索数据的最简单方法是SharedReferences。您可以将JSON编写为字符串首选项。同样,如果数据太复杂,并且像查询数据库一样方便,您可以使用SQLite。

将数据放在应用程序上。


如果您不需要持久化数据,并且数据的生命周期很短,您可能需要创建应用程序的某些子类来保存数据。这是在Android平台上存储一些内存全局数据的方式->

将数据放在内存中的SQLite表/数据库中

或者,如果这有助于查询数据,您可能需要一些内存中的SQLite表。在Android中也可以使用内存表

注意事项

第一种方法可能会给你最好的表现。所有数据都在内存中,因此很容易访问。但是,如果数据具有非常复杂的结构,并且查询非常复杂,那么您可能希望使用SQLite使查询数据更容易。性能将取决于数据和查询的复杂程度。性能仍然会很好,因为事情都在内存中

但是你必须小心。如果您最终使用了太多内存,那么您的应用程序很可能会被Android框架杀死。您的数据将丢失。(5MB可能没问题,10MB可能太多了。您必须进行测试,看看会发生什么。)


如果内存压力很高,则应卸载到磁盘。性能会更差,特别是当存储空间几乎满时。在这种情况下,访问速度可能非常慢。存储和检索数据的最简单方法是SharedReferences。您可以将JSON编写为字符串首选项。同样,如果数据太复杂,并且像数据库一样方便地进行查询,则可以使用SQLite。

如果您需要随机访问和查询数据,SQLite是一个不错的选择,但您必须 自己实现CRUD或某种SQL数据绑定

如果您需要将所有数据放在一块中,您可以将它们作为JSON存储在本地存储上,然后对其进行解析(我编写了一个小型的DataBinding库,使之更简单:)

如果您的数据是某种数量有限的首选项,您可以使用首选项存储
(我还为此编写了一个小型库:可以让您轻松地将和ummarshall首选项打包到对象中)

如果您需要随机访问和查询数据,SQLite是一个不错的选择,但是 自己实现CRUD或某种SQL数据绑定

如果您需要将所有数据放在一块中,您可以将它们作为JSON存储在本地存储上,然后对其进行解析(我编写了一个小型的DataBinding库,使之更简单:)

如果您的数据是某种数量有限的首选项,您可以使用首选项存储
(我还为此编写了小型库:可以让您轻松地将和ummarshall首选项打包到对象中)

如果您不需要持久化数据,并且it生命周期很短,您可能需要创建一些应用程序的子类来保存它。这是在Android平台中保存一些内存中全局数据的方法。如果您不需要保存数据,并且数据生命周期很短,那么您可能需要创建一些应用程序子类来保存数据。这是在Android平台中拥有一些内存全局数据的方式,但是这些数据如何影响性能和内存使用?每个用户会话的数据可能至少为5 MB,最大为10 MB。但是这些数据如何影响性能和内存使用?每个用户会话的数据可能最多为5 MB,最大为10 MB。