如何在Android中获取当前的sqlite数据库大小或包大小?

Bed*_*edo 12 sqlite android

我无法获得Android应用程序(或包)使用的总数据量,因为官方API支持已被删除:

http://groups.google.com/group/android-developers/browse_thread/thread/df94daae34336aad/f96a8425549c6637(这仍然是目前的情况吗?)

获取已安装的应用程序大小(不支持的hack - 不要使用它)

那么有什么方法可以获得当前的sqlite数据库大小?我找到了一个getMaxSize方法或getPageSize,但我无法找到总页数.

小智 31

也许有人可以验证这是否是一种可接受的方法,但有一段时间我正在使用它:

File f = context.getDatabasePath(dbName);
long dbSize = f.length();
Run Code Online (Sandbox Code Playgroud)

干杯


Mat*_*Mat 14

您可以使用以下两个来查询数据库:

pragma page_size;
pragma page_count;
Run Code Online (Sandbox Code Playgroud)

(参见sqlite编译指示文档).

将第一个乘以第二个,您将获得使用的总页数.


ger*_*bit 6

您也可以在 sqlite 3.16.0+ 上使用这个原始查询:

SELECT page_count * page_size as size FROM pragma_page_count(), pragma_page_size();
Run Code Online (Sandbox Code Playgroud)

它返回带有单行的“大小”列。