Android,存储大量链接到数据库的小图像

时间:2014-02-25 21:51:24

标签: android xml database image

我被要求创建一个小巧的Android应用程序。

在日常工作中我使用.NET代码并且我没有与Android相关的经验,但因为它是一个非常小的应用程序,我想这将是一个很好的体验,而不是一些困难。

应用程序的核心是一个小型数据库(可能是XML,除非有人建议更好的解决方案),其中包含categoriesnames of the institutions分配给每个category和该机构logo(分辨率不是很高,我估计单个文件的数量不会超过100kB)。

数据库也不会很大 - 我预计总共不会超过1000条记录。数据库必须完全脱机并且是本地的,操作时不需要访问Internet。

我假设的模型是在数据库发生变化时发布新版本的应用程序(这不会非常频繁)。

处理这些要求的最佳方法是什么?

  1. 我的第一个想法是创建一个包含记录和链接到图像的XML文件。 XML和链接到它的所有图像将存储在将存储在app资源中的单个文件(最好是zip)中。这非常好,因为更新数据库非常容易。
  2. 有人建议我的第二个想法是使用SQLite并将图像存储在BLOB中。总的来说,我已经读过将图像直接存储在数据库中并不是一个好主意,我担心是否有可能满足上述所有要求。
  3. 大多数情况下,我不知道如何轻松更新数据库并将其附加到新版本的应用程序。

    有什么建议吗?

    如果有任何回应,我将不胜感激。

1 个答案:

答案 0 :(得分:1)

我不会使用XML来保存您的数据,也不会压缩任何内容。

我认为你的思维方式还可以,但你为自己制造的东西真的很复杂。

看到你已经习惯了.NET我认为你对SQL非常有信心,所以我建议你看一下如何使用built-in SQLite database in Android。< / p>

如果您要使用XML路由,则必须反复序列化和反序列化XML文件,然后解析XML。好的,你没有很多数据,但是在一个至少有1000个节点的XML文件中搜索与数据库的性能相比会很慢。

同样升级现有的SQLite数据库也不是那么难 - Android有方法(onUpgrade来自SQLiteOpenHelper)。

至于保存图片我假设你不能从互联网上获取新图片,所以最好将它们存储在你应用的drawable文件夹中(注意不同的屏幕尺寸)然后在需要时将它们读入ImageView。要弄清楚什么样的图像,我会在SQLite数据库中存储每个图像的图像名称,或者为数据库中的每个图像存储resource id - 例如R.drawable.myawesomepictureformyinstitution

我知道我的回答有点过于肤浅&#34;,但你的问题也有些广泛和#34;没有我实际编写大部分代码而且很难回答,而且这不是我的意图; - )

希望这有帮助 - 如果有任何不清楚的地方,请告诉我。