我的問題是我認爲很簡單,但我不認爲答案會是... 我的應用程序中有相當多的內容使其正常運行,並且我正在考慮將其全部放在數據庫中,並且將其與市場上的應用程序一起分發到嵌入式數據庫中。 唯一的麻煩是我不知道如何做到這一點。 我知道我可以從Eclipse DDMS中提取一個帶有數據庫內容的文件.db,我想我需要把它放在我的應用程序的資產文件夾中,但是如何讓應用程序使用它來重新生成應用程序數據庫? 如果你有任何鏈接到一些代碼或幫助,那會很好。 感謝在分佈式應用程序的.apk中嵌入數據庫[Android]
6
A
回答
12
出色地實現你的要求,你可以把.db文件在您的資產/目錄下,並將其複製到地方你第一次啓動您的應用程序.....
final String DB_DESTINATION = "/data/data/YOUR_PACKAGE_NAME/databases/MyDatabaseFile.db";
// Check if the database exists before copying
boolean initialiseDatabase = (new File(DB_DESTINATION)).exists();
if (initialiseDatabase == false) {
// Open the .db file in your assets directory
InputStream is = getContext().getAssets().open("MyDatabaseFile.db");
// Copy the database into the destination
OutputStream os = new FileOutputStream(DB_DESTINATION);
byte[] buffer = new byte[1024];
int length;
while ((length = is.read(buffer)) > 0){
os.write(buffer, 0, length);
}
os.flush();
os.close();
is.close();
}
其中「initialiseDatabase」是指示應用程序是否已首次啓動的某個標誌。儘管如果您正在尋找存儲大量數據的方法,正如您所提到的那樣:我強烈建議您避免使用它擴大APK文件,並使用Internet連接從託管服務器下載數據庫記錄(在託管服務器上)該應用程序已啓動。通過這種方式,您可以顯示一個進度條,向用戶顯示爲什麼他們等待很長時間才能開始使用該應用程序。使APK特別大,通常會阻止人們將它安裝在第一位。
1
相關問題
- 1. 嵌入式數據庫在開發中的應用程序
- 2. Java EE應用程序中的嵌入式數據庫
- 3. .NET應用程序的嵌入式數據庫
- 4. 帶嵌入式數據庫的wpf應用程序
- 5. Netbeans 7.2.1。帶嵌入式Derby數據庫的Java應用程序
- 6. .Net應用程序的開源嵌入式數據庫選項
- 7. 配置Web應用程序的分佈式數據庫
- 8. 可能在應用程序中使用的嵌入式數據庫引擎
- 9. 從應用程序創建Sqlite嵌入式數據庫
- 10. WPF嵌入式數據庫應用程序
- 11. 嵌入式OrientDB分佈式模式 - 未能創建數據庫
- 12. 在Web應用程序中是否可以嵌入數據庫?
- 13. 在vb.net應用程序中嵌入數據庫
- 14. 在C#應用程序中嵌入SQL Server數據庫
- 15. 分享Android應用程序apk
- 16. 在嵌入式應用程序中播放嵌入式WAV
- 17. 在獨立Java應用程序中設置嵌入式Derby數據庫
- 18. 在android應用程序中安裝apk
- 19. 在Android中的分佈式應用程序
- 20. 如何讓Android應用程序的.apk在eclipse中分發?
- 21. 在Android應用程序中寫入數據庫
- 22. 在Android中寫入SQLite數據庫時,應用程序崩潰
- 23. 如何使用數據庫數據分發Android應用程序?
- 24. Android應用程序apk
- 25. 將H2數據庫嵌入到ETL應用程序中?
- 26. 將Access * .accdb數據庫嵌入到.NET應用程序中
- 27. 數據庫嵌入在C#應用程序/ VB.net
- 28. 在分佈式Java程序中創建數據庫
- 29. C#應用程序數據庫佈局
- 30. 在嵌入式c應用程序中嵌入python解釋器
嗯,我之前使用了一個進度條,但由於我正在下載大量圖片,並且解析了幾個XML ,它需要相當多的時間,特別是當你使用3G網絡而不是wifi時 – Sephy 2010-06-10 11:23:10
只是檢查數據庫是否已經存在而不是使用布爾值是不是更容易? 如何在應用程序關閉時跟蹤布爾值?進入數據庫? – Sephy 2010-06-10 11:27:00
這正是布爾表示的內容,我將其作爲實現練習。我已經更新了示例代碼,介紹瞭如何解決這個問題。 – seanhodges 2010-06-10 11:49:40