2012-03-07 17 views
13

Soy nuevo en la programación de Android y trato de entender esto solo para aclarar cómo funcionan las cosas.¿Qué sucede con una base de datos Sqlite cuando se elimina la aplicación?

Al crear bases de datos Sqlite en una aplicación de Android, ¿dónde se almacena la base de datos? ¿Se elimina cuando se elimina la aplicación? Cualquier información sobre esto sería muy útil para comprender la programación de Android para personas que provienen de un entorno de desarrollo web.

+0

lea esto http://developer.android.com/guide/topics/data/data-storage.html –

Respuesta

19

Las bases de datos SQlite son solo archivos, y se tratan como cualquier otro archivo: se almacenan (de forma predeterminada) en el área de datos privados de la aplicación (/data/data/$PACKAGENAME/databases). Se eliminan junto con todo lo demás en el área de datos privados de la aplicación.

Si lo desea, puede crear una base de datos en la tarjeta SD. Ellos, por supuesto, no se eliminarán en la desinstalación.

+4

En realidad, también se eliminarán, si usó 'getExternalFilesDir()' para la ubicación. IOW, depende de dónde guardas la base de datos en el almacenamiento externo. – CommonsWare

+0

Gracias por su respuesta, David. Entonces, para hacerlo bien, se almacenan como archivos en lugar de en un solo archivo, como en el caso de MSSQL o MySql. – Zishan

+0

No sé lo que hace MSSQL o MySQL, pero SQLite almacena cada base de datos como un único archivo bajo el control de la aplicación. No hay almacenamiento de base de datos central. Vale la pena obtener la herramienta de línea de comandos sqlite3 y jugar con ella para tener una idea de cómo funciona (y también es útil para la depuración). –

0

La base de datos se encuentra en /data/data/app.package.name/databases. Puede acceder a esta carpeta solo en el emulador o en un dispositivo rooteado (con un explorador de archivos con un derecho de Superusuario, por ejemplo).

Cuando se elimina una aplicación se borran todos los datos básicos relativos (bases de datos incluido)

0

A menos que se indique lo contrario (por usted), aplicaciones mantienen sus datas más bajo /data/data/<appname>, y SQLite-bases de datos están en /data/data/<appname>/databases. Al desinstalar una aplicación, se borrará todo el árbol de directorios de /data/data/<appname>, incluidas sus bases de datos.

+0

El directorio no es '/ data/data/appname/databases' - es'/data/data/app.package.name/databases' –

0

Normalmente, la base de datos se almacena en

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

Sin embargo no es una buena cosa que confiar en esto. Es mucho mejor para encontrarlo usando getDatabasePath en ContextWrapper, tales como:

File dbFile = getDatabasePath(db_name); 

Y, sí, normalmente todo el directorio /data/data/package.name.of.your.app se eliminaría si se desinstala la aplicación.

0

Las bases de datos, las preferencias, los archivos de caché, los archivos temporales están almacenados en la ubicación /data/data/app.package.name/ en la memoria del teléfono.

Cuando desinstala su aplicación, toda la carpeta de memoria del teléfono para esta aplicación se eliminará por completo.

Cuestiones relacionadas