如果手機沒有root,資料庫文件是無法查看到的,不方便調試。 最好的辦法是把資料庫寫進SD卡。 修改的地方有兩處: 1.在你的helper類中把資料庫文件名稱 DATABASE_NAME 由原來的一個文件名,修改成路徑的形式。 修改前:DATABASE_NAME = "demo.db" 修改後:DA ...
如果手機沒有root,資料庫文件是無法查看到的,不方便調試。
最好的辦法是把資料庫寫進SD卡。
修改的地方有兩處:
1.在你的helper類中把資料庫文件名稱 DATABASE_NAME 由原來的一個文件名,修改成路徑的形式。
修改前:DATABASE_NAME = "demo.db"
public class MyDBHelper extends SQLiteOpenHelper { public static final int VERSION = 1; //資料庫版本號 public static final String DATABASE_NAME = "demo.db"; //資料庫名稱 public static final String TABLE_NAME = "mytag"; //數據表名稱,一個資料庫可以包含多張數據表,類似於excel中的sheet1,sheet2 //MyDBHelper 的構造函數,我們關心的是名稱DATABASE_NAME和版本VERSION public MyDBHelper(Context context) { super(context, DATABASE_NAME, null, VERSION); }
修改後:DATABASE_NAME = "/mnt/sdcard/demo.db"
public class MyDBHelper extends SQLiteOpenHelper { public static final int VERSION = 1; //資料庫版本號 public static final String DATABASE_NAME = "/mnt/sdcard/demo.db"; //資料庫名稱 public static final String TABLE_NAME = "mytag"; //數據表名稱,一個資料庫可以包含多張數據表,類似於excel中的sheet1,sheet2 //MyDBHelper 的構造函數,我們關心的是名稱DATABASE_NAME和版本VERSION public MyDBHelper(Context context) { super(context, DATABASE_NAME, null, VERSION); }
因為如果只是一個單獨的文件名,最後創建的資料庫文件就是保存在手機內部存儲卡(不是運行記憶體,也不是SD卡)的/data/data/包名稱/databases 目錄下,而沒有root的手機,這個/data根文件夾是進不去的,用adb shell方式也打不開。
2.最後,千萬別忘了修改許可權!
Android手機是有著嚴格的安全管控的,SD卡屬於外部存儲器,訪問上面的文件需要添加許可權。
在AndroidManifest.xml 中添加兩條SD卡讀寫許可權即可:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
如果沒有添加許可權,那麼程式就會異常終止。