我一直在收集本網站和其他人關於在Android中包含預填充sqlite數據庫的最佳方式的信息。我只想確認我明白了爲什麼應該是微不足道的原因......事實並非如此。Android中的預填充數據庫:試圖將這些部分放在一起
所以可能有人請告訴我,如果我下面的結論是正確的還是錯誤的?:
- 的主要原因許多人建議從資產文件夾複製預填充的數據庫文件「/數據/數據/ YOUR_PACKAGE/databases /「是因爲沒有辦法來訪問assets文件夾中的數據庫文件,或者這樣做會過於複雜(?)。 (有人可以澄清這兩個答案中的哪一個是正確的嗎?)
- 資產文件夾中的數據庫文件必須複製到其他位置的另一個重要原因是因爲該位置中的文件無法更新。然後,即使資產文件夾中的數據庫可以打開,只有在不必修改此類數據庫的情況下,該功能纔有用。 更新:我推出了一個專注於此問題的新線程:Opening a read only database directly in the assets folder。
- 資產文件夾中的文件可能只有1 Mb大小(除非它們具有某些文件擴展名,例如mp3)。請注意,如果您的數據庫小於1 Mb,或者您不介意將數據庫劃分爲1 Mb塊並將它們放在運行時放在一起,或者您不介意以mp3擴展名分發數據庫文件,則此限制不相關。
- 如果將數據庫文件從資產文件夾複製到「/ data/data/YOUR_PACKAGE/databases /」,則無法刪除assets文件夾中的原始數據庫文件以避免產生重複文件。這也是因爲資產文件夾中的文件無法修改。
製作拼圖稍微複雜一些:Ship an application with a database 是複製從資產文件夾中的數據庫,其實其他位置不上運行2.3的一些設備的工作:我在評論這個問題的接受的答案發現+。這是否準確?如果這是真的,那麼最好的選擇是在第一次運行時從網上下載數據庫文件?
感謝您的任何澄清。
閱讀此配對http://www.mail-archive.com/[email protected]/msg28194.html這裏也有資產/原始文件夾的大小限制。 – 2012-01-18 01:50:43
資產文件夾中的所有內容都是靜態的,無法修改,因此您必須進行復制。 – 2012-01-18 02:40:27
assets,xml drawables和其他類似資源是apk的一部分,因此它們不能以編程方式更新。並且需要根權限才能查看數據是「數據/數據」 – 2012-01-18 03:26:24