понедельник, 17 января 2011 г.

Сделайте свой Android энергоэффективным в любой ситуации

Поскольку я теперь счастливый обладатель смартфона с Android-ом, меня (как и многих других) беспокоит проблема аккумулятора. Не секрет, что смартфоны не только предоставляют миллион мобильных возможностей, но и очень быстро съедают батарею (привет счастливым обладателям телефонов HTC ;-)
Для борьбы с быстрым разрядом аккумулятора есть хорошее приложение CPU tuner. На блоге «Linux Tipps & More» я нашел статью с описанием настроек приложения «Make your Android power efficient in any situation (for free!)» и перевел ее для вас.

Сделайте свой Android энергоэффективным в любой ситуации

В этой статье я расскажу вам, как использовать CPU tuner – бесплатное приложение с открытым исходным кодом для Android. Все, что вам потребуется, это root-доступ и немного времени. Вы можете посмотреть подборку связанных постов (см. раздел «related posts»), посвященных управлению и повышению эффективности электропитания в Linux. Конечно, эту проблему должны были решить:
а) разработчики Linux;
б) разработчики Android;
в) производитель вашего телефона.

Но поскольку они этого не сделали...


0. Уведомления

Помимо всего прочего в «CPU tuner» (CT) есть настройка минимальной и максимальной частоты процессора («Min» и «Max»). Настройка предназначена для устройств со специальными прошивками, которые позволяют оверклокинг; она не будет рассматриваться в этой статье.
Все описанные тут шаги (настройка режимов управления частотой, отключение неактивных интерфейсов) могут быть применены к любому устройству под управлением Linux.

Следующий абзац в первую очередь касается моих дорогих пользователей из США (или другой страны, где есть понятие превентивный вред).
Осторожно: использование этого приложения может привести к взрыву телефона и другим неприятным последствиям!
Вы не должны помещать телефон в стиральную машину, сушилку или микроволновую печь, не должны держать над открытым огнем или делать с ним другие опасные или совершенно тупые вещи.
Использование этого приложения не защищает от отсутствия головного мозга или здравого смысла!


1. Что это?..

Позвольте мне для начала объяснить все термины, используемые в программе.


1.1. up_threshold: Верхний порог: Процент загрузки процессора, при которой частота процессора повышается. В режиме управления частотой «conservative» частота будет увеличена на X% от текущей частоты процессора. X определяется настройкой freq_step и по умолчанию равен 5% в Linux и 20% в моем Android. Такой режим не поддерживается в CT atm. В режиме «ondemand» (AFAIK!) процессор начинает работать непосредственно на максимальной частоте. Вот почему настройки freq_step нет в режиме «ondemand».

1.2. down_threshold: Нижний порог: Как вы, возможно, уже догадались, это процент загрузки процессора, при котором частота снижается. Его не существует для режима «ondemand».

1.3. Триггеры: Здесь вы можете сказать CT, что вы хотите использовать определенный профиль в определенных условиях. Самое простое условие – это «использование батареи» («battery usage»). Если установить параметр «использование батареи» на 100%, то CT включит профиль, когда заряд аккумулятора опустится ниже 100%. Другой важный параметр – «выключенный экран» («Screen Off»). Он позволяет активировать определенный профиль, как только экран будет выключен.

1.4. Профили: Профиль – это сочетание настроек. Например, отключение Wi-Fi, использование режима управления частотой «conservative» и т. д. (см. п. 2.1).

1.5. Режим управления частотой (в настройках он называется «governor»): Способ управления частотой процессора по определенному алгоритму (набору правил). Существуют различные алгоритмы:

1.5.1. performance: Процессор остается на максимальной частоте все время. Абсолютно не энергоэффективно, но отлично подходит для тестирования, если проблемы, которые вы испытываете, вызваны изменением частоты.

1.5.2. powersave: Процессор остается на минимальной частоте несмотря ни на что. По-моему, этот режим вообще не имеет смысла. Выход из него занимает много времени, поскольку любой телефон становится очень тормознутым, так что будьте осторожны и постарайтесь его не использовать! Кстати, некоторые устройства могут просто намертво повиснуть в этом режиме. Возможно, режим имел бы смысл при выключенном экране. Но, скорее всего, это будет просто вызывать проблемы и раздражать вас. ;-)

1.5.3. userspace: Режим предназначен для установки частоты вручную. Однако, если ваш мозг не связан проводами с телефоном или вы не тестируете что-нибудь связанное с частотой, лучше не использовать эту настройку.


1.5.4. conservative и ondemand: Вы, наверное, просто пропустили начало, да? ;-) См. п.1.1. чтобы узнать о conservative и ondemand.

2. Как увеличить энергоэффективность

Обратите внимание, что я пишу о том, как увеличить эффективность использования энергии, а не уменьшить ее потребление. Снизить энергопотребление легко: нужно просто установить верхний порог (up) на 99%, а нижний порог (down) на 98%. Однако такая настройка, скорее всего, приведет к тому, что телефон будет вести себя очень странно, а это совсем не то, к чему мы стремимся. Нам нужен телефон, который отлично работает, но потребляет меньше энергии. Конечно, о такой глобальной настройке должен был позаботиться производитель. Но, поверьте мне, я не видел ни одного телефона, где это было бы сделано. Android, как правило, поставляется с настройками Linux по умолчанию, а такие настройки направлены на максимальную производительность, но не обеспечивают эффективность использования энергии аккумулятора.

2.1. Quick&Easy: Настройка интерфейсов
Самое простое, что вы можете сделать, это установить общие настройки устройства. Простейший способ сохранить заряд – настроить, какие интерфейсы будут активными при выключенном экране.


2.1.1. Mobiledata: 2G only. Такая настройка может вызвать проблемы, если вы используете программное обеспечение VoIP через 3G с отключенным дисплеем, зато экономит энергию дважды. Во-первых, 2G требуется меньше энергии, чем 3G, в режиме ожидания, во-вторых, переключение между 2G и 3G может сильно разряжать батарею. (Устройство будет постоянно пытаться найти и переключиться в сеть 3G.) Побочные эффекты: при такой настройке входящие телефонные звонки, вероятно, будут в более низком качестве, так как 2G использует аудиокодеки сжатия с большими потерями. Кроме того, эта же настройка может уменьшить время работы аккумулятора, если вы постоянно загружаете большие файлы через 3G при выключенном дисплее. (Честно говоря, не представляю зачем.)
(рекомендация: 2G only).

2.1.2. Background Sync: disable. Эта настройка может иметь различные последствия, например, Gmail утверждает, что она работает нормально. Но я все еще как-то получаю новую электронную почту и Gtalk-уведомления с выключенной синхронизацией. Это общая настройка, которая касается и других программ. Так что просто проверьте, как это работает у вас.
(рекомендация: disable)


2.1.3. Wifi: Disable. Я не использую эту настройку. Дело в том, что, если вы используете программное обеспечение VoIP с вашего телефона, он обычно определяет, находится ли гарнитура в ухе, а затем выключает дисплей, что, в общем, имеет смысл для экономии энергии. Также рано или поздно ваш дисплей может отключиться во время вызова и без гарнитуры. Тогда канал VoIP, потоковое радио и другие услуги, транслируемые через Wi-Fi, будут отключены. Вот почему я предпочитаю поручить эту настройку другим программам. Было бы здорово, если бы Wi-Fi отключался автоматически после X минут без использования или при выходе из зоны сети. Но это действительно задача для других приложений, а не для CPU tuner. (По крайней мере, приложение должно быть переименовано в power tuner.)
(рекомендация: оставить без изменений)

2.1.4. Bluetooth: Disable. Побочные эффекты: Если вы используете Bluetooth-гарнитуры, они будут отключены. Поэтому такая настройка имеет смысл, только если вы действительно не пользуетесь Bluetooth. Но тогда, вероятно, он и так у вас всегда выключен. Хотя переключение из режима «выключено» в режим «выключено» не имеет смысла, тем не менее настройка может быть полезна, если вы иногда используете Bluetooth, а затем забываете выключать его.
(рекомендация: оставить без изменений)

2.1.5. GPS: Disable. Как правило, отключение GPS экономит очень много энергии. Побочные эффекты: При переключении обратно поиск вашего местоположения займет некоторое время. (Samsung Galaxy 3, ты со своим gpsopt раздражаешь меня даже здесь...) Кроме того, если при использовании навигационного программного обеспечения GPS выключится, когда дисплей погаснет, вы как минимум потеряете точное местоположение и навигационное программное обеспечение или полностью прекратит работу, или начнет давать очень неточные (и таким образом бесполезные) советы: «Перейти налево, но и немного направо на следующей или предыдущей улице...» Похоже на меня, когда я раздаю указания. Также этот режим работает, только когда приложение устанавливается как системное (метод не универсальный, но вы можете попробовать скопировать apk-файл в папку /system/apps).

2.2. Настройка режима управления частотой: Шаг за шагом

Это самая сложная часть, но оно того стоит. Эти настройки помогут сохранить заряд, если телефон не используется. Кроме того, они могут добавить вашему телефону оперативности и интерактивности во время использования. А также сделать и то и другое. И даже снизить потребление энергии в обеих ситуациях. Всегда начинайте с настроек по умолчанию.
(Предположение: текущие настройки по умолчанию не вызывают никаких пауз в воспроизведении mp3 и т. д. В противном случае: начните с 70 up, 40 down, и если это не помогло: начните с 40 up, 20 down).

2.2.1. Не крути две ручки сразу: например, увеличив верхний порог на 10% или 20%, послушайте музыку в течение примерно 10 минут с этой настройкой. Проверьте, нет ли у вас проблем (см. «признаки неприятностей» ниже). Если вы заметили проблемы, вернитесь к предыдущей настройке и добавьте небольшой процент, например 5%.

2.2.2. Промыть и повторить, пока ваши волосы не станут мягкими и шелковистыми. (Как только одна настройка нормально заработает, попробуйте другую, например, сперва вы увеличивали верхний порог, затем попробуйте увеличить нижний порог.)

2.2.3. Признаки неприятностей
Наиболее заметной и раздражающей проблемой для меня является то, что воспроизведение музыки начинает заикаться. (Внимание: если вы любите noise, вероятно, заикание – это часть звуковой дорожки, а не проблема.) Это также означает, что ваш собеседник будет слышать сбои в Skype и других VoIP приложениях. Еще одним, чуть менее раздражающим результатом экспериментов может оказаться то, что пользовательский интерфейс станет менее чувствительным, а анимация будет дергаться и выглядеть не так симпатично, как раньше. За всем этим вы должны следить во время настройки режима управления.

2.3. Собираем все вместе
Как только вы найдете нужные настройки, я рекомендую для начала создать два профиля: один для выключенного экрана и один для включенного. Хотя настройка выключенного экрана является триггером, для использования вашего профиля, когда экран включен, достаточно выбрать уровень заряда батареи ниже 100%. Я бы предпочел режим ondemand для включенного экрана, как наиболее отзывчивый, по моему опыту. Но сейчас я использую только режим управления conservative.


3. Причины
По моему богатому опыту, нижний порог гораздо более вероятно станет причиной проблем, чем верхний порог. Кажется, Linux рассчитывает его, когда посылает новые данные в звуковую карту, на основе текущей частоты и не корректирует, когда частота уменьшается. (Заметка себе: Android Bugzilla, которая обычно учитывается разработчиками, переполнена сообщениями об этой ошибке.) Это вызывает проблемы, особенно для режима ondemand, который намного более склонен к созданию шума во время воспроизведения, чем режим conservative, так как он переключает процессор обратно до самых низких частот практически сразу.

3.1. Не полагайтесь на Skype в качестве индикатора, поскольку Skype нередко вызывает проблемы, даже если вы используете режим «performance», фактически запрещающий изменение частоты. Надеюсь, Skype еще будут улучшать; по слухам, он достаточно хорошо работает на iPhone, но не так хорошо на MyPhone. В первую очередь нужно проверить, не исчезнут ли проблемы в режиме «performance». В этом случае они не связаны с масштабированием частоты процессора вообще, а следовательно, вряд ли связаны с CPU tuner-ом.
По моему опыту, довольно хорошо работает CSipSimple. Попробуйте позвонить на echo service или на автоответчик, чтобы проверить, насколько капризно ваше соединение. Вам, конечно, необходимо стабильное сетевое соединение для обеспечения уверенности, что это не оно вызывает сбои (WiFi всех мастей!). Если вы заметите, что сбои не исчезают в режиме «performance», конечно.

4. Если ничего не помогает

Если все начинает внезапно глючить, просто отключите CT и проверьте, не исчезли ли глюки. Если вы сами не понимаете, что же вы такое изменили, сбросьте настройки CPU tuner в состояние по умолчанию и повторите процесс настройки более тщательно.

5. Обратная связь

Если вам удалось найти идеальные настройки для вашего устройства, пожалуйста, сообщите о них в комментариях здесь (в блоге автора. – Прим. пер.). Обязательно включите в сообщение модель телефона, версию и название прошивки, которые вы используете (максимально точно, пожалуйста). Это может спасти других людей от прослушивания часов музыки в попытках найти идеальные настройки для своего телефона. Я официально приглашаю холиварить о том, какими именно должны быть совершенные и абсолютно идеальные настройки для всех ситуаций, людей и устройств ;-) После того как мы найдем их, мы сможем включить их в CT как предустановленные, а затем и включить в поставку Android.

Мои настройки:
Экран включен:
conservative, up 50, down 30;
2g/3g.
С выключенным экраном:
conservative, up 90, down 50;
2g only.

Конец.

UPD.: nowa.cc

2 комментария:

ougo комментирует...

Спасибо, помогло настроить CT

Green FiLin комментирует...

Ой, давно это было. А что за СТ?

Отправить комментарий