2015-01-17 42 views
2

我想在應用程序第一次打開時下載特定於操作員的數據庫。 由於它的操作符具體,我不能將這個數據庫綁定爲apk的一部分。從cvs/txt文件下載並創建sqlite數據庫

我已經實現了一種使用DownloadManager下載my_operator_specif_db.db然後通過SQLiteAssetHelper讀取它的方法。

db的大小是23 mb。由於我在頭文件中使用「Accept-Encoding:gzip」,它會下載這個8.3 MB的壓縮版本。仍然8.3 MB傳輸需要時間下載互聯網連接不佳。而不是這個分貝,如果我下載一個相同的內容的平板CSV文件,它約13MB的RAW和3.8MB的壓縮。

實際上,如果我有一個邏輯將平面csv文件加載到空的sqlite數據庫,我可以使下載速度加倍。

對此方法有何建議? 如何將csv文件加載到db?

+0

你的瓶頸是數據庫的大小8.3Mb,你試圖做的方法只是減少一半的時間,但你並沒有真正做出不同的結果。是不是太複雜,不能真正解決問題只是緩解?唯一讓我想起你的具體問題是讀取文件並在apk中創建你自己的數據庫。 –

回答

0

23 MB沒有那麼多,如果您下載的內容對於應用程序的正常運行至關重要,並且您始終可以使其僅使用wi-fi下載(通常足夠快)即可確實希望將下載量降到最低,所以你可以從原始文本文件(或.csv,如果這是你所擁有的)構建數據庫。

我個人認爲,如果你打算下載超過1MB的內容,只需要獲得gzipped分貝,這樣可以節省很多麻煩。我這樣說是因爲在慢速連接上下載任何東西都會很慢。