2014-09-26 28 views
1

我最近接受了爲Android應用程序發佈者開發的合同作業。他們希望我更新現有的Android項目以允許試用模式。爲了達到這個目的,我必須修改應用程序使用的數據庫的模式。在現有的Android項目中更新數據庫文件

當我使用模擬器時,通過使用eclipse中ddms透視圖中的文件資源管理器,從data \ data ....目錄中提取應用程序的數據庫文件,從而能夠更改數據庫。然後,我編輯了數據庫,並將其推回到同一個目錄中。這工作得很好,我能夠在模擬器中使用更新的數據庫。

但是,當我不得不開始使用真正的Android設備(它的Nexus 7)時,我遇到了一個問題。我無法像以前那樣更新數據庫,因爲數據文件夾不可訪問。這打破了所有使用更改爲數據庫模式的代碼。

在這一點上,我甚至不知道數據庫的原始副本來自哪裏。在任何開發者或libarary的子目錄中都沒有數據庫的副本。我解開了應用程序啓動器的apk文件,發現沒有任何副本。我還解開了applauncher使用的庫項目的jar文件。如果我忽略了任何必要的信息,請原諒我。我對android開發很陌生。我會很樂意提供其他可能有用的信息。

回答

0

任何Android應用程序希望使用SQLite數據庫通常擴展SQLiteOpenHelper類。至少SQLiteOpenHelper類需要4個參數 - 上下文,數據庫名稱,遊標工廠和數據庫版本。第一次嘗試打開與數據庫的連接時(使用getReadableDatabase或​​)並調用onCreate方法,數據庫將由Android(使用您提供的名稱)創建。您可以在這裏執行您通過的sqliteDatabase對象的語句,以創建您想要的表格。

無論何時你想改變你的表的模式,你都會碰到你傳入SQLiteOpenHelper構造函數的版本號。一旦系統發現版本號已增加(如果您傳入的版本號小於已存在的版本號,將調用onDowngrade),並且您可以在sqliteDatabase對象上執行所有遷移語句,則將調用方法onUpgrade傳遞給你

相關問題