Android 将文件多次读取或保存在静态保持架中更好吗?

Android 将文件多次读取或保存在静态保持架中更好吗?,android,Android,我有一份大约88000个姓氏的名单, 我需要每隔几分钟读一次,所以我只读一次,然后把它存储在一个列表中。 还是我应该每次都读。 内存与运行时 还是我应该每次都读 都不是,伊姆霍。使用更智能的缓存 具有此数据的静态线程安全缓存 围绕该缓存设计API,以便缓存可以延迟加载。任何试图检查缓存的人都应该异步获得结果,因此如果缓存为空,则可以在后台线程上加载缓存内容。这可以通过使用侦听器/回调模式、RxJava/RxAndroid、LiveData等来实现 有一个自定义的应用程序的子类,在其中。如果使用

我有一份大约88000个姓氏的名单, 我需要每隔几分钟读一次,所以我只读一次,然后把它存储在一个列表中。 还是我应该每次都读。 内存与运行时

还是我应该每次都读

都不是,伊姆霍。使用更智能的缓存

  • 具有此数据的静态线程安全缓存

  • 围绕该缓存设计API,以便缓存可以延迟加载。任何试图检查缓存的人都应该异步获得结果,因此如果缓存为空,则可以在后台线程上加载缓存内容。这可以通过使用侦听器/回调模式、RxJava/RxAndroid、
    LiveData
    等来实现

  • 有一个自定义的
    应用程序的子类
    ,在其中。如果使用或更高版本调用了
    ontrimmory()
    ,请清空缓存,以便在用户未积极使用应用程序时降低内存使用率

通过这种方式,使用缓存的代码不关心是否需要加载数据,并且当不太可能需要使用缓存时,您可以最小化内存消耗


或者,如果您不需要一次将所有88000个姓氏存储在内存中,请将它们存储在SQLite数据库中,并根据需要查询该数据库。

一般来说,运行时使用内存,因此您应该使用相同的内存。不同之处在于,您可以将其作为对象存储在内存中,并根据需要将其从内存中删除,这样会出现一些内存拾取,而不是一致的内存负载

您是否考虑使用API或JavaScript来代替逻辑和加载JSON?使用API或JavaScript作为业务逻辑加载JSON的不同架构的方法可能有助于加载和卸载包含数据的对象。JSON可以静态存储在本地,甚至可以动态存储(存储在远程服务器中),这有助于轻松更新您的姓氏。此外,这种方法可以根据传递的参数查询数据,因此您可能不需要一次加载所有80.0000个姓氏。我知道这个问题是关于Android的,但架构方法对于任何设备都是一样的

我希望这可能会帮助您或其他人根据体系结构和移动平台来确定方法(如果使用了任何移动平台,则没有真正定义)

干杯