web-dev-qa-db-ja.com

Android:データベースファイルはどこに保存されますか?

AndroidデバイスでSQLiteデータベースを作成しました。プログラムはデータベースへの読み取り/書き込みができるため、データベースファイルが作成されていることは明らかです。SQLiteDatabase.mPathは

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

しかし、デバイス上のディレクトリを参照すると、clientDB.dbファイルが見つかりません。データディレクトリの内部を見ましたが、空のようです。

誰がここで何が間違っているのか知っていますか?

44
Niko Gamulin

/dataで何も見つかりませんでした。あなたは通常のAndroidハードウェアを調べています。これは予想されています。DDMSには/data

ただし、少なくともアプリがデバッグモードでコンパイルされている場合は、adb pullコマンドをコンソールで実行して、ファイルを直接ダウンロードします。

28
CommonsWare

contextWrapperでgetDatabasePathを試してください( http://developer.Android.com/reference/Android/content/ContextWrapper.html )。アクティビティクラスまたはアプリケーションクラスにいる場合は、次を試してください。

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

/data/data/my.package.name/databases/は、データがSDカードに移動されていないか、デバイス/ OSが別のデータディレクトリを決定したばかりであるという保証がないため、不良です。

33
browep

デバッグモードでは、adb Shellを使用して、ディレクトリの内容を参照できます。シェルでsqlite3 /data/data/dev.client.Android/databases/clientDB.dbを呼び出して、DBを分析できます。

6
kuester2000