在Android上检索设备信息

我的计划是针对Android 1.5。 我想检索有关设备本身的系统信息。 通过搜索API,我发现很少有用的类。 到目前为止我发现的最好的是Runtime类和一些Build.*系统属性。

我希望能够获得有关设备上的总内存量,可用内存量的信息(我不知道Runtime类是否真的给了我,因为它特别指的是JVM可用的内存)以及有关处理器的信息。

这些信息是否可用,如果可以,我在哪里可以找到它?

“内存总量”毫无意义(例如G1有192MB的物理RAM,其中90-100MB可用于内核和不同版本的应用程序,但不包括用于窗口缓冲区和各种内存的内存其他的东西,每个Java应用程序的堆的限制为16MB,因此系统的可用RAM更多地是关于可以同时运行多少个进程。

“免费记忆量”确实毫无意义。 我们通常会尝试让尽可能多的应用程序继续运行,因为有可用内存,因此在普通Linux缓存和普通Linux缓存之间通常几乎没有空闲内存。 如果你看一下内核中的原始可用内存,随着应用程序启动并使用一些内存,将其推下来,然后其他应用程序被清除,导致它重新启动直到缓存和其他东西有机会吞噬它。

我现在提出的最好的方法是查看系统的内存状态,它是2.0中引入的“运行服务”UI。 是的,底部的记忆信息对于大多数人来说是非常微妙和毫无意义的; 我们应该试着弄清楚如何改进它。 🙂

您可以通过android.os.Build.CPU_ABI找到NDK代码的CPU架构。 这为您提供了CPU架构的基准,但是有关CPU是否支持NEON指令等信息。 对于这种信息,您可以想象使用NDK运行一些本机代码来询问CPU。