首页 > 解决方案 > 在 Android 中存储/保存下载图像的最佳方法,哪个更适合离线模式和同步?

问题描述

有几种方法可以存储图像,并且有很多关于它的想法。大多数情况下,我有一个应用程序,主要有点类似于用户上传、删除和下载但使用 aws 服务器的谷歌驱动器。目前,每次打开应用程序时,我都不想连接到服务器,但想要一个与服务器缓慢同步的离线备份。我只是想知道大多数专业人士在如何使用离线模式并与快速性能同步时采用哪种方法。

是否存储在文件系统中(如果文件系统是内部的还是外部的?)/作为 SQLite 中的 blob,哪个更好?任何提供代码或链接的指导都会有所帮助。感谢您的时间和支持

标签: javaandroidperformance

解决方案


Blob从不建议将图像保存在数据库中。

通常没有针对您的要求的特定经验法则,但是,我想澄清一些可以帮助您确定架构的要点。

第 1 点: 应用程序大小随着您的代码、布局、使用的库、应用程序图像等而增加。如果您谈论的是在应用程序中经常使用的图像,例如App Icons、等Launcher IconsOverlays那么这些绝对应该添加到源代码中代码本身。但是,在您的应用中使用之前,您应该优化这些资源。开发人员通常在针对多种屏幕尺寸和布局优化图像(使用)时面临挑战,因为这会导致应用程序大小的增加。简单的逻辑,你在源代码中添加的文件越多,它占用的空间就越大,导致应用程序的大小越大。

第2点: 如果您所指的图像要在用户浏览您的应用程序时使用,例如电子商务Product Images,那么这些绝对不应该在编译时添加到您的代码中。由于此类资源是动态的,并且根据用例经常更改(添加/编辑/删除)。而是将它们缓存并本地存储在磁盘上。

一般方法 图像从服务器下载API并保存为本地文件,在内部存储或外部存储中。它们的绝对路径,而是存储在DB用于访问和索引的。在内部存储中存储图像不会增加应用程序的大小,但是会增加应用程序使用的空间(显示在App Info设置菜单中)。同样,将图像存储在外部存储中也会占用系统存储空间,但是也会将这些文件暴露给其他应用程序。

你可以在这里阅读更多


推荐阅读