2012-03-07 8 views
13

私はAndroidプログラミングには新しく、物事の仕組みを自分自身で明確にするため、これを念頭に置いています。アプリが削除されたときにSqliteデータベースに何が起こるか

AndroidアプリケーションでSqliteデータベースを作成する場合、データベースはどこに保存されますか?アプリが削除されると削除されますか?これに関する情報は、ウェブ開発の背景にある人々のAndroidプログラミングを理解する上で非常に役立ちます。

+0

これはhttp://developer.android.com/guide/topics/data/data-storage.html –

答えて

19

SQliteデータベースは単なるファイルで、他のファイルと同様に扱われます。つまり、アプリケーションのプライベートデータエリア(/data/data/$PACKAGENAME/databases)に保存されています。それらは、アプリケーションのプライベートデータエリア内の他のものと共に削除されます。

必要に応じてSDカードにデータベースを作成できます。それらは、もちろん、アンインストール時には削除されません。

+4

実際には、場所に 'getExternalFilesDir()'を使用した場合にも削除されます。 IOWは、外部ストレージのどこにデータベースを置くかによって異なります。 – CommonsWare

+0

あなたの返信ありがとう、David。だからちょうどこの権利を得るために、MSSQLやMySqlのように単一のファイルではなくファイルとして保存されますか? – Zishan

+0

私はMSSQLやMySQLが何をするのか分かりませんが、SQLiteは各データベースをアプリケーションの制御下で単一のファイルとして保存します。中央のデータベースストレージはありません。 sqlite3コマンドラインツールを入手し、それをどのように動かすかを感じる価値があります(デバッグにも便利です)。 –

0

データベースは/data/data/app.package.name/databasesにあります。このフォルダは、エミュレータまたはルートされたデバイス(たとえば、スーパーユーザー権限を持つファイルエクスプローラ)でのみアクセスできます。あなたは特に断りのない限り、すべての相対件のデータが(自分で)(データベースが含まれています)

0

削除されたアプリを削除すると

、アプリケーションは/data/data/<appname>の下で彼らの件のデータを維持し、SQLiteの-データベースは/data/data/<appname>/databasesです。アプリをアンインストールすると、データベースを含め、ディレクトリツリー全体が/data/data/<appname>で削除されます。それはこれに頼ることは良いことではないしかし

+0

ディレクトリは '/ data/data/appname/databases'ではありません。'/data/data/app.package.name/databases'です。 –

0

通常、データベースは

/data/data/package.name.of.your.app/databases 

に格納されます。はい、通常、ディレクトリ全体/data/data/package.name.of.your.appは、アプリをアンインストールする場合は、削除されるだろう

File dbFile = getDatabasePath(db_name); 

そして、:それはのような、ContextWrappergetDatabasePathを使用して見つけることがはるかに良いです。

0

データベース、環境設定、キャッシュファイル、一時ファイルはすべて、/data/data/app.package.name/の電話機メモリに保存されています。

アプリをアンインストールすると、このアプリのPhone Memoryフォルダ全体が完全に削除されます。

関連する問題