«Общее количество памяти» довольно бессмысленно (например, G1 имеет 192 МБ физической памяти, из которых 90–100 МБ доступно ядру и приложениям в разных выпусках, но это не включает память, используемую для окна буферы и многое другое, и каждое Java-приложение имеет ограничение в 16 МБ для своей кучи, поэтому доступная оперативная память для системы больше зависит от того, сколько процессов может быть запущено одновременно).
«Количество свободной памяти» действительно действительно бессмысленно. Как правило, мы стараемся, чтобы как можно больше приложений оставалось работающим при наличии доступной памяти, поэтому между этим и обычным кешем Linux обычно мало свободной памяти. Если вы посмотрите на свободную свободную память в ядре, то увидите, что со временем она меняется довольно безумно, так как приложения запускаются и используют некоторую память, нажимая ее вниз, затем другие приложения удаляются, заставляя ее перепрыгивать обратно до тех пор, пока кешируются и не другие вещи могут поглотить его обратно.
Лучший способ, с помощью которого я подошел к этому моменту, чтобы посмотреть на состояние памяти системы, - это пользовательский интерфейс «Работающие службы», который был представлен в 2.0. Да, информация о памяти внизу ужасно тонка и бессмысленна для большинства людей; мы должны попытаться выяснить, как его улучшить. :)
Вы можете узнать архитектуру процессора для кода NDK через android.os.Build.CPU_ABI. Это дает вам базовый уровень для архитектуры ЦП, но информацию, например, поддерживает ли ЦП инструкции NEON или что-то подобное. Для такого рода информации вы можете использовать NDK для запуска собственного кода для опроса ЦП.