Android: Where are database files stored?

I created a SQLite database on Android device. The program can read/write to database so the database file has obviously been created. The SQLiteDatabase.mPath is set to

db.mPath = "/data/data/dev.client.android/databases/clientDB.db"

but when I browse the directories on the device I can't locate the file clientDB.db. I looked inside data directory but it appears to be empty.

Does anyone know what could be wrong here?


Solution 1:

try getDatabasePath on ContextWrapper ( http://developer.android.com/reference/android/content/ContextWrapper.html ). If you are in an Activity or Application class try:

File dbFile = getDatabasePath(MY_DB_NAME);
Log.i(dbFile.getAbsolutePath());

Just assuming its in /data/data/my.package.name/databases/ is bad as there is no guarantee the data has not been moved to the SD card or the device/OS has just decided on a different data directory.

Solution 2:

If you mean you visited /data and found nothing in it, and you are examining an ordinary piece of Android hardware, that is expected. DDMS does not have permission to browse through /data.

However, at least if your app is compiled in debug mode, you can use the adb pull command at the console to download your file directly.