2011-06-15 16 views
10

no puedo obtener la cantidad total de datos utilizados por una aplicación Android (o paquete), debido a que el apoyo oficial de la API se ha eliminado:¿Cómo obtener el tamaño actual de la base de datos sqlite o el tamaño del paquete en Android?

http://groups.google.com/group/android-developers/browse_thread/thread/df94daae34336aad/f96a8425549c6637 (esto todavía es la situación actual?)

Getting installed app size (truco sin protección - no lo use)

Entonces, ¿hay alguna manera de obtener el tamaño actual de la base de datos sqlite? He encontrado un método getMaxSize o getPageSize, pero no puedo encontrar el número total de páginas.

Respuesta

10

puede consultar la base de datos con estos dos:

pragma page_size; 
pragma page_count; 

(ver los documentos sqlite pragma).

Multiplique la primera por la segunda y obtendrá el total de páginas utilizadas.

+0

Esto podría funcionar pero no puedo encontrar la forma de ejecutar el código SQL con un PRAGMA que devuelve algo. ¿Hay alguna manera? – Bedo

+1

Simplemente ejecute cada uno como si fuera una consulta usando RawQuery. (Uno a la vez, sin parámetros de enlace). Estos deberían devolver una fila. Alguna información [aquí] (http://stackoverflow.com/questions/2675388/detect-if-a-table-contains-a-column-in-android-sqlite) con un pragma diferente. – Mat

+1

Estoy obteniendo resultados diferentes usando este método versos verificando la longitud del archivo DB. Algunas veces, y solo en ciertos teléfonos, esto devuelve un tamaño mayor que el tamaño del archivo DB mismo. Lo verifiqué copiando el archivo DB en mi computadora. – Chris

27

Quizás alguien podría verificar si este es un enfoque aceptable, pero por un tiempo me estaba usando esto:

File f = context.getDatabasePath(dbName); 
long dbSize = f.length(); 

Saludos

+0

esto lo hizo por mí; en mi opinión debería marcarse como respuesta – msysmilu

4

Sólo para complemento del tamaño.

Cuando utilicé el código de DroidBot, funciona. Pero el tamaño puede no aumentar inmediatamente cuando se ingresan datos en la base de datos (especialmente si los datos son muy pequeños). La base de datos solo aumentará en 1024 bytes (por ejemplo, de 8192 bytes a 9216 bytes).

Por lo tanto, para ver el aumento de tamaño de la base de datos de inmediato, intente poner en una gran cantidad de datos.

Cuestiones relacionadas