我正在尝试以编程方式查找 Android 设备的系统信息,特别是:
- 内存
- 中央处理器速度
- # 核心、架构等
是否有任何指定此信息的 Android 类。我一直在使用 android.board 库,但它似乎没有我想要的一切。
让我告诉你我做了什么,所以访问这个线程的其他人可以知道这些步骤:
1) 解析 /proc/meminfo 命令。您可以在此处找到参考代码: Get Memory Usage in Android 2) 使用以下代码并获取当前 RAM:
MemoryInfo mi = new MemoryInfo();
ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
activityManager.getMemoryInfo(mi);
long availableMegs = mi.availMem / 1048576L;
注意:请注意 - 我们只需要计算一次总内存。所以在你的代码中只调用点 1 一次,然后你可以重复调用点 2 的代码。
您可以从/proc/cpuinfo
文件中获取大部分所需信息。这是有关如何加载和解析该文件的教程:http ://www.roman10.net/how-to-get-cpu-information-on-android/
此外,可以从/proc/meminfo
文件中获取有关 RAM 的信息
这是获取当前设备 RAM 大小的代码片段。
ActivityManager actManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
MemoryInfo memInfo = new ActivityManager.MemoryInfo();
actManager.getMemoryInfo(memInfo);
long totalMemory = memInfo.totalMem;
Agarwal 的回答非常有帮助。不得不对其进行一些修改,因为我不是在计算活动中的可用内存,而是将应用程序上下文传递给系统实用程序文件:
从主要活动:
public class MyActivity extends Activity {
...
public void onCreate(Bundle savedInstanceState) {
...
MySystemUtils systemUtils = new MySystemUtils(this); // initializations
...
}
}
在 SystemUtils 文件中:
MySystemUtils (Context appContext) { // called once from within onCreate
MemoryInfo mi = new MemoryInfo();
ActivityManager activityManager = ActivityManager)appContext.getSystemService(Activity.ACTIVITY_SERVICE);
activityManager.getMemoryInfo(mi);
long availableMegs = mi.availMem / 1048576L;
}