相关疑难解决方法(0)

Android PackageStats提供负值

我正在使用PackageStats并在打印PackageStats的codeSize,cacheSize,dataSize时,一些数据将变为负数.

几个问题:

  • 这怎么可能?
  • 考虑到apk大小约为50MB,codeSize可能是负面的情况是什么?
  • 可以可靠地用于提取上述信息的任何其他方式?

另外,对于Android N,它给了我"NoSuchMethodException".所以,

  • 它是为Android N删除还是有某种方式使用它?
  • 任何可以帮助我计算上述尺寸的替代品?

码:

PackageManager packageManager = context.getPackageManager();
Method myUserId = UserHandle.class.getDeclaredMethod("myUserId");
int userID = (Integer) myUserId.invoke(packageManager);

Method getPackageSizeInfo = packageManager.getClass().getDeclaredMethod("getPackageSizeInfo", String.class, int.class,
IPackageStatsObserver.class);
getPackageSizeInfo.invoke(packageManager, context.getPackageName(), userID, new IPackageStatsObserver.Stub() {

    @Override
    public void onGetStatsCompleted(PackageStats pStats, boolean succeeded) throws RemoteException {
        long codeSize = pStats.codeSize / MB; //long MB = 1024*1024;
        long cacheSize = pStats.cacheSize / MB;
        long dataSize = pStats.dataSize / MB;
        long appSize = codeSize + cacheSize + dataSize;
    };
}
Run Code Online (Sandbox Code Playgroud)

java android android-7.0-nougat

39
推荐指数
1
解决办法
685
查看次数

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

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

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

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

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

sqlite android

12
推荐指数
3
解决办法
2万
查看次数

Android PackageStats始终为零

我正在尝试获取应用程序包占用的大小.每个应用程序在内部/外部存储中都有一个位置.

我想计算以下目录的大小,我该怎么做?我知道我可以在Oreo(API 26)设备上使用StorageStateManager,但是如何在oreo设备之前实现这一点.

应用目录: /Android/data/myapplicationpackage

我正在尝试使用PackageStats,但它总是给我零.使用此代码的实际方法是什么?

我使用了以下代码,它给了我全部零.

PackageStats stats = new PackageStats(context.getPackageName());
    long codeSize  = stats.codeSize + stats.externalCodeSize;
    long dataSize  = stats.dataSize + stats.externalDataSize;
    long cacheSize = stats.cacheSize + stats.externalCacheSize;
    long appSize   = codeSize + dataSize + cacheSize;
Run Code Online (Sandbox Code Playgroud)

java android android-package-managers android-storage

4
推荐指数
1
解决办法
1012
查看次数

Android,获取应用程序大小

我正在寻找一种方法来计算已安装的 Android 应用程序/包的大小。我在 ApplicationInfo 和 PackageInfo 对象中都找不到此信息。从 ApplicationInfo 我可以获得数据和应用程序本身的路径。数据是一个目录结构,但是当尝试递归读取它时,我得到了一个空指针。有没有更好的方法来做到这一点?任何示例代码?

android

3
推荐指数
1
解决办法
5377
查看次数