Получение информации об устройстве на Android - PullRequest
4 голосов
/ 04 февраля 2010

Моя программа ориентирована на Android 1.5. Я хотел бы получить системную информацию о самом устройстве. Я нашел очень мало полезных классов при поиске API. лучшее, что я нашел до сих пор, это класс Runtime и несколько системных свойств Build.*.

Я хотел бы иметь возможность получать информацию, такую ​​как общий объем памяти на устройстве, объем свободной памяти (который я не знаю, если класс Runtime дает мне данные, поскольку он конкретно относится к памяти доступны для JVM) вместе с информацией о процессоре.

Доступна ли эта информация, и если да, где я могу ее найти?

1 Ответ

3 голосов
/ 04 февраля 2010

«Общее количество памяти» довольно бессмысленно (например, G1 имеет 192 МБ физической памяти, из которых 90–100 МБ доступно ядру и приложениям в разных выпусках, но это не включает память, используемую для окна буферы и многое другое, и каждое Java-приложение имеет ограничение в 16 МБ для своей кучи, поэтому доступная оперативная память для системы больше зависит от того, сколько процессов может быть запущено одновременно).

«Количество свободной памяти» действительно действительно бессмысленно. Как правило, мы стараемся, чтобы как можно больше приложений оставалось работающим при наличии доступной памяти, поэтому между этим и обычным кешем Linux обычно мало свободной памяти. Если вы посмотрите на свободную свободную память в ядре, то увидите, что со временем она меняется довольно безумно, так как приложения запускаются и используют некоторую память, нажимая ее вниз, затем другие приложения удаляются, заставляя ее перепрыгивать обратно до тех пор, пока кешируются и не другие вещи могут поглотить его обратно.

Лучший способ, с помощью которого я подошел к этому моменту, чтобы посмотреть на состояние памяти системы, - это пользовательский интерфейс «Работающие службы», который был представлен в 2.0. Да, информация о памяти внизу ужасно тонка и бессмысленна для большинства людей; мы должны попытаться выяснить, как его улучшить. :)

Вы можете узнать архитектуру процессора для кода NDK через android.os.Build.CPU_ABI. Это дает вам базовый уровень для архитектуры ЦП, но информацию, например, поддерживает ли ЦП инструкции NEON или что-то подобное. Для такого рода информации вы можете использовать NDK для запуска собственного кода для опроса ЦП.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...