gpt4 book ai didi

android - 有没有办法获得总设备内存?我需要它进行优化

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:22:58 26 4
gpt4 key购买 nike

我有一个可以包含静态数据的 lrucache,这样即使我的应用程序在用户返回时关闭,他也可以更快地找到数据。

但是这需要大约 10-15 MB 的内存,所以我想像这样创建一个 if 分支

if(deviceOverallRAM > treshold)
preserve static memory on app exit
else
clear static memory on app exit

那么,我可以通过一些隐藏的 api 获取设备的 ram 吗?阈值的合适值是多少?

最佳答案

要在 API 16 之前执行此操作,您必须阅读 android 内核的 proc/meminfo 文件:

 public long getTotalMemory() {  

String str1 = "/proc/meminfo";
String str2;
String[] arrayOfString;
long initial_memory = 0;
try {
FileReader localFileReader = new FileReader(str1);
BufferedReader localBufferedReader = new BufferedReader( localFileReader, 8192);
str2 = localBufferedReader.readLine();//meminfo
arrayOfString = str2.split("\\s+");
for (String num : arrayOfString) {
Log.i(str2, num + "\t");
}
//total Memory
initial_memory = Integer.valueOf(arrayOfString[1]).intValue() * 1024;
localBufferedReader.close();
return initial_memory;
}
catch (IOException e)
{
return -1;
}
}

来源:this question

但是,在 API 16 及以后的版本中,您可以使用以下代码来检索总内存:

ActivityManager actManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
MemoryInfo memInfo = new ActivityManager.MemoryInfo();
actManager.getMemoryInfo(memInfo);
long totalMemory = memInfo.totalMem;

关于android - 有没有办法获得总设备内存?我需要它进行优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12551547/

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