以编程方式查找Android系统信息

6

我正在尝试编程来查找Android设备的系统信息,具体包括:

  • 内存
  • CPU速度
  • #核心、架构等

是否有任何指定该信息的Android类。 我一直在使用android.board库,但它似乎没有我想要的所有内容。

4个回答

11

让我告诉你我做了什么,这样其他访问此线程的人就可以知道步骤:

1)解析/proc/meminfo命令。您可以在这里找到参考代码: 在Android中获取内存使用情况 2)使用以下代码并获取当前RAM:

MemoryInfo mi = new MemoryInfo();
ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
activityManager.getMemoryInfo(mi);
long availableMegs = mi.availMem / 1048576L;

注意:请注意 - 我们只需要计算总内存一次。因此,在您的代码中仅调用点1一次,然后可以重复调用点2的代码。


2

meminfo不会给你完整安装的内存信息。它只提供有关已使用内存及其使用情况的信息。因此,答案是不正确的。 - drdrej

2

以下是获取当前设备RAM大小的代码片段。

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

1
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;
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接