2012-03-20 127 views
0

我製作了一個Android應用程序。我正在使用它的數據庫。我在手機上安裝了.apk文件,並且工作正常。但是當我在模擬器上時,它不顯示我在數據庫中輸入的任何數據。我需要使用先前填充的數據庫表。我的數據庫不會在運行時創建。如何在手機上獲取數據庫以查看應用程序與數據庫完美匹配?在Android手機應用程序中使用預建數據庫

回答

1

您可以保存assetsres/raw目錄下的數據庫文件,在應用程序的第一次啓動時,該數據庫文件複製到/data/data/com.company.yourapp/databases/,並打開數據庫像往常一樣。

assetsres/raw目錄保存文件之間的不同之處在於res/raw下的文件進行壓縮,而assets下的文件都沒有。在Android 2.3之前,res/raw之下的文件不能超過1 MB。所以我建議你自己壓縮你的數據庫文件並保存到assets,並在你的代碼中使用GZIPInputStream解壓文件。

+0

有關如何複製我擁有的數據庫文件的任何指南? – 2012-09-07 18:59:10

0

如果您需要將數據庫用於測試應用程序,那麼我認爲您應該將其導出到您的SD卡中。

public static void exportfile(String applicationPackageName,String databaseName,String pathOfFolder) throws FileNotFoundException, IOException 
    { 
       InputStream myInput; 

       myInput = new FileInputStream("/data/data/"+applicationPackageName+"/databases/"+databaseName); 

       File directory = new File("/sdcard"+pathOfFolder); 

       if (!directory.exists()) 
       { 
        directory.mkdirs(); 
       } 

       OutputStream myOutput = new FileOutputStream(directory.getPath()+"/"+databaseName); 

       byte[] buffer = new byte[1024]; 
       int length; 
       while ((length = myInput.read(buffer))>0) 
       { 
        myOutput.write(buffer, 0, length); 
       } 

       myOutput.flush(); 
       myOutput.close(); 
       myInput.close(); 

    } 

applicationPackageName: - 應用程序包的名稱

的databaseName: - 數據庫文件名

pathOfFolder: - 在將文件導出SD卡中的文件夾的路徑

不要忘記添加<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>在你的清單文件中。

並下載任何SQLite管理器來打開該文件。

謝謝..希望它可以幫助你。

+0

如果這個答案可以幫助你,那麼請不要忘記接受它.. – 2012-03-20 07:26:31

相關問題