gpt4 book ai didi

android - 如何以编程方式获取android中所有已安装应用程序使用的总内存空间?

转载 作者:行者123 更新时间:2023-12-03 18:05:28 26 4
gpt4 key购买 nike

我列出了所有已安装的应用程序。当我单击列表中的任何应用程序时,我想以编程方式显示该应用程序使用的总内存(类似于设置-> 应用程序)。
我尝试了什么:

 long apsize = new File(this.getPackageManager().getApplicationInfo(
packageName, 0).publicSourceDir).length();
int unit = si ? 1000 : 1024;
if (apsize < unit) return apsize + " B";
int exp = (int) (Math.log(apsize) / Math.log(unit));
String pre = (si ? "kMGTPE" : "KMGTPE").charAt(exp - 1) + (si ? "" : "i");
//replacing kib and mib from the value
return String.format("%.1f %sB", apsize / Math.pow(unit, exp), pre).replace("MiB","").replace("KiB","");

但它只返回我想要获取所选应用程序使用的总内存的apk大小。有没有办法以编程方式获取应用程序使用的总内存?

最佳答案

您可以通过编程方式获取内存信息并决定是否进行内存密集型工作。
我认为这是针对当前应用的!

通过调用获取 VM 堆大小:

Runtime.getRuntime().totalMemory();

通过调用获取分配的 VM 内存:

Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();

通过调用获取 VM 堆大小限制:
Runtime.getRuntime().maxMemory()

通过调用获取 native 分配的内存:
Debug.getNativeHeapAllocatedSize();

关于android - 如何以编程方式获取android中所有已安装应用程序使用的总内存空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40128563/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com