在Android上检索设备信息

时间:2010-02-04 16:03:05

标签: java android

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

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

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

1 个答案:

答案 0 :(得分:3)

“内存总量”毫无意义(例如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。