Остановка процессора ARM Cortex A8 на устройстве Android - PullRequest
1 голос
/ 24 октября 2011

Чтобы повысить производительность батареи, мы хотим, чтобы тактовая частота процессора останавливалась / пауза на небольшие промежутки времени, когда устройство не используется.У кого-нибудь есть опыт работы с конфигурацией, упомянутой в теме этого поста: ARM Cortex A8 CPU (интернет-планшет Archos 70 под управлением Android)?

Есть какие-нибудь указатели на то, с чего начать?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 25 октября 2011

Это не работа приложения, чтобы сделать это.

Он просто должен убедиться, что он не делает ничего, что операционная система считает «работающей» (как вращение в цикле), когда это должно быть«спит» с помощью Thread.sleep () и позволяет ОС управлять процессором в целях управления питанием.

2 голосов
/ 26 октября 2011

ARM содержит инструкции WFE и WFI, которые заставляют процессор выключаться до тех пор, пока либо событие (SEV), ни прерывание не разбудят процессор.WTE обычно используется спин-блокировками для предотвращения ненужной загрузки ЦП, в то время как WFI будет использоваться свободным потоком ядра.

Как уже говорили другие, это не то, что программисту приложений когда-либо понадобитсябеспокоюсь о.Как прикладной программист, все, что вам действительно нужно делать, это приостанавливать поток, пока не найдется что-то для этого.Обычно это делается с использованием select, epoll или ожидание условных переменных.Как правило, избегайте сна, хотя.

1 голос
/ 24 октября 2011

Как указывает CommonsWare, в этом действительно нет необходимости.Android берет на себя все операции с процессором и замедляет его, если ничего не делать.

...