Java 本地文件的Android最佳实践

Java 本地文件的Android最佳实践,java,android,performance,file,asynctaskloader,Java,Android,Performance,File,Asynctaskloader,我目前正在编写一个应用程序,它在ListView中显示项目,然后用户可以在其中添加或删除项目。我通过将数据写入本地JSON文件(我将数据保存为JSONArray,然后调用toString()方法,然后将其序列化并写入,读取过程基本上是相反的) 因为我是为Android开发的新手,所以我不太清楚最佳实践,特别是我对访问本地文件和资源文件中存储的数据的最佳方法感兴趣。目前,我正在使用AsyncTaskLoader阅读和编写这些内容,我想知道这对于本地文件是否合理,对于本地文件是否不需要/不推荐。是否

我目前正在编写一个应用程序,它在
ListView
中显示项目,然后用户可以在其中添加或删除项目。我通过将数据写入本地
JSON
文件(我将数据保存为
JSONArray
,然后调用
toString()
方法,然后将其序列化并写入,读取过程基本上是相反的)

因为我是为Android开发的新手,所以我不太清楚最佳实践,特别是我对访问本地文件和资源文件中存储的数据的最佳方法感兴趣。目前,我正在使用
AsyncTaskLoader
阅读和编写这些内容,我想知道这对于本地文件是否合理,对于本地文件是否不需要/不推荐。是否可以在主线程上运行以访问本地文件,或者除了
AsyncTaskLoader
之外还有其他类可以使用


我的主要问题是,在实现了
AsyncTaskLoader
之后,我发现了一些性能问题,而且作为一个整体,我对开发相当陌生,我怀疑我没有以有效的方式实现这个相当复杂的类。如果我可以避免所有这些,或者替换一个不太复杂的类来达到类似的结果,我想我已经准备好了。提前感谢您的反馈,如果有一些代码片段有助于澄清问题,请让我知道。

如果您的数据文件太大,无法读取和写入,则需要使用一些
线程
异步任务
AsyncTask
主要有三种方法来提高android UI的batter性能

为了存储数据,您可以将
json
字符串存储到SharedReference中

有关详细信息,请参阅以下链接


在四处搜索并尝试了一些不同的方法之后,我发现实现SQLLight数据库和游标加载器比尝试将字符串序列化和反序列化为JSON要快得多,反之亦然。而且,当一切都设置好后,实现起来就容易多了


这个项目是如何实现这一点的一个很好的例子。

AsyncTask主要有三种方法来提高android UI的性能。没有。更好的性能volly或改装或任何其他工具都在那里。我拥有的数据目前并不是非常大,我怀疑即使完成,它们也会比几MB大得多。存储/检索数据的方法是否会因文件大小而发生显著变化?@MarcinOrlowski那么为什么Android有AsyncTask及其三种方法来处理任何大型操作。@Android\u jain为什么我们使用Volly或Reformation来处理非网络操作。您想轻松存储json数据;或者你想从URL获取json数据第一个@android_jain,我想从本地源(而不是通过互联网)存储和检索数据,我决定使用json,因为它是一种非常通用且易于使用的方法。将数据存储在sqllite中,或者如果你想改进你的应用程序,请使用relm数据库如果你有键值等数据,请使用共享首选项