Как получить текущий размер базы данных sqlite или размер пакета в Android?

Я не могу получить общий объем данных, используемых приложением Android (или пакетом), поскольку официальная поддержка API была удалена:

http://groups.google.com/group/android-developers/browse_thread/thread/df94daae34336aad/f96a8425549c6637 (это все еще текущая ситуация?)

Получение установленного размера приложения (неподдерживаемый взлом - не используйте его)

Итак, есть ли способ получить текущий размер базы данных sqlite? Я нашел метод getMaxSize или getPageSize, но я не могу найти общее количество страниц.

Ответ 1

Возможно, кто-то может проверить, приемлемо ли это, но какое-то время я использовал это:

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

Приветствия

Ответ 2

Вы можете запросить базу данных этими двумя:

pragma page_size;
pragma page_count;

(см. sqlite pragma docs).

Умножьте первое на второе, и вы получите общее количество страниц.

Ответ 3

Просто добавьте размер.

Когда я использовал код DroidBot, он работает. Но размер может не сразу увеличиваться, когда данные вводятся в базу данных (особенно если данные очень малы). База данных будет увеличиваться только в 1024 байта (например, от 8192 байт до 9216 байт).

Итак, чтобы сразу увеличить размер базы данных, попробуйте добавить большой объем данных.