在DB中存储图像

时间:2017-10-25 14:16:38

标签: android database image store

我正在为练习设计一个测验应用。主要概念是将问题存储在DB表中,包含文本和图像(对于图像,DB条目将包含图像文件的路径)。

存储大量图像文件的最佳/常用选项是什么?

将它们存储在应用程序的内部空间中,意味着我的应用程序的安装文件会变得庞大?例如。如果我有1000张100KB的图像,这会使我的应用程序安装文件至少100 MB?

那么最好的方法是将图像存储在Web服务器中并让Android应用程序下载它们?或者是否可以在内部空间中存储少量图像,并在后台定期更新/替换来自Web服务器的数据,以便用户体验没有太多延迟?

谢谢!

3 个答案:

答案 0 :(得分:0)

我肯定会选择网络服务器下载选项。它为您提供了实施灵活性(假设您希望发布到其他平台)并且还可以保持较小的应用程序大小。您可以在下载后在应用中缓存图片,我肯定会这样做,因此不必连续重新下载。

答案 1 :(得分:0)

移动设备上最优化的方法是编写一个返回包括图片网址在内的所有数据的API。您还可以在数据库中本地存储数据,但请记住,对于新数据,您必须发布新版本的应用程序。

数据库

对于数据库,有很多选择:

  1. SQLite
  2. Realm
  3. GreenDAO
  4. Sugar ORM
  5. P.S:我在专业项目中使用了以上所有内容,发现Realm最快,最可靠,最易于使用。

    显示图片

    为了使用URL显示图像,(再次)有很多选项:

    1. Glide
    2. Picasso
    3. Universal Image Loader
    4. 使用这些库中的任何一个,你所要做的就是写一行,告诉你要加载哪个url ImageView

      P.S:我在专业项目中使用了以上所有内容,发现Glide最快,最可靠,最易于使用。

答案 2 :(得分:0)

嗯,有多种选择,我认为你正在思考正确的方向。由于现在几乎每个智能手机用户都有互联网,因此下载图像会很好。此外,您要求的所有可能性都是可能的。除了你的apk之外,Google Play还可以上传额外的数据,很多游戏都会这样做。

我认为最好的方法是确定何时需要哪些图像。例如。你有多个级别或不同类型的游戏,你可以在你真正需要时下载内容,另一个想法是使用小型预览"要存储在apk中的图像,并在用户具有WiFi连接时下载完整尺寸的图像。

另一种缩小图片尺寸的方法是使用.webp格式代替.png。在这里阅读更多内容:

https://developer.android.com/studio/write/convert-webp.html

请注意,这些建议只是一个想法,因为我并不完全了解图像的数量或它的用途。