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

问题描述 投票:11回答:4

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

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

qazxsw poi(不支持的黑客 - 不要使用它)

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

android sqlite
4个回答
29
投票

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

Getting installed app size

干杯


12
投票

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

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

(参见pragma page_size; pragma page_count; 文档)。

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


4
投票

只是为了增加大小。

当我使用DroidBot的代码时,它的工作原理。但是,当数据输入数据库时​​,大小可能不会立即增加(特别是如果数据非常小)。数据库只会以1024字节递增(例如从8192字节增加到9216字节)。

因此,要立即看到数据库大小增加,请尝试输入大量数据。


1
投票

您也可以使用此原始查询:

sqlite pragma

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

© www.soinside.com 2019 - 2024. All rights reserved.