2014-02-25 81 views
-1

我被要求創建一個小型的android應用程序。Android,存儲大量鏈接到數據庫的小圖像

在日常工作中,我爲.NET編寫代碼,我沒有與Android相關的經驗,但由於它是一個非常小的應用程序,我想這將是一個很好的體驗,而不是一件難事。

應用的核心將是一個小型的數據庫(可能XML,除非有人提出更好的解決方案),將包含分配categoriesnames of the institutions每個categorylogo(不是非常高的分辨率我想一個單一的文件將是< 100KB的)的機構。

數據庫也不會很大 - 我預計總共不會超過1000條記錄。數據庫必須完全脫機並且是本地的,它在運行時不能訪問互聯網。

我假設的模型是在數據庫更改時(這不會非常頻繁)發佈新版本的應用程序。

處理這些要求的最佳方法是什麼?

  1. 我的第一個想法是創建一個XML文件,其中包含記錄和鏈接到圖像。 XML和鏈接到它的所有圖像將存儲在單個文件(最好是zip)中,這些文件將存儲在應用程序資源中。這非常好,因爲更新數據庫非常容易。
  2. 有人建議我的第二個想法是使用SQLite並將圖像存儲在BLOB中。總的來說,我已經讀過,將圖像直接存儲在數據庫中並不是一個好主意,恐怕是否有可能滿足上述所有要求。

大多數我不知道如何輕鬆更新數據庫並將其附加到新版本的應用程序。

有什麼建議嗎?

我將不勝感激任何迴應。

回答

1

我不會去使用XML來保存您的數據,絕不會壓縮任何東西。

我認爲你的思維方式沒問題,但是你讓事情變得很複雜。

因爲你已經習慣了.NET,所以我想你對SQL也很有信心,所以我建議你看看如何使用built-in SQLite database in Android

如果您要使用XML路徑,則必須重複序列化和反序列化XML文件,然後解析XML。好吧,你沒有太多的數據,但是在一個至少有1000個節點的XML文件內搜索,與數據庫的性能相比,速度會很慢。

同時升級現有的SQLite數據庫並不困難 - Android的方法是這樣的(onUpgrade來自SQLiteOpenHelper)。

至於保存圖片我假設你不會從互聯網上獲取新圖片,所以最好只將它們存儲在你的應用程序的drawable文件夾中(注意不同的屏幕尺寸),然後閱讀他們在需要時變成ImageView。要弄清楚什麼樣的機構應該爲哪個機構提供圖像,我可以將每個圖像的圖像名稱存儲在SQLite數據庫中,或者將每個圖像的resource id存儲在數據庫中 - 例如R.drawable.myawesomepictureformyinstitution

我知道我的答案有些「膚淺」,但你的問題也有些「廣」,硬無我實際編寫的大部分代碼的回答,這不是我的本意;-)

希望這幫助 - 讓我知道如果有什麼不清楚的。

+0

感謝您的回覆。發佈我的問題後,我有紅色的東西關於SQLite和我的事情是要走的路。但是按照您建議用於存儲文件的方式,不可能將文件直接存儲到資源中。我不會是編輯數據庫的人,對於那些將成爲直接編輯資源的噩夢的人來說。如果你認爲這個答案可以解決你的問題/問題,我需要其他方式最好是將數據庫連接到android項目 – user1658223

+0

@ user1658223,請將其標記爲答案:-) – Darwind