Увеличение срока службы батареи на Windows Mobile с помощью GPS и веб-обновлений

У меня есть приложение, которое работает на Windows Mobile и использует GPS для обновления своего местоположения через различные промежутки времени. Как и ожидалось, включение чипа GPS требует больше энергии аккумулятора. (не ах..)

Так что в настоящее время моя техника заключалась в том, чтобы циклически включать/выключать GPS прибл. каждые 4 минуты, чтобы узнать местоположение, сделать что-то, если что-то изменилось, и обновить свое местоположение в Интернете только в случае необходимости. В противном случае снова выключите его и подождите.

На моем годовалом телефоне HTC Touch Diamond со свежей зарядкой, оставив экран ВКЛЮЧЕННЫМ (но затемненным), + WiFi и ничего не делая, кроме как оставить его там, я получил от него максимум 6 часов.

Это «хорошо», но использование GPS легко сокращает оценку на 2-4 часа обычного «реального» использования (YMMV).

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

Таким образом, телефон использует энергию только для подключения к данным и проверки сервера. Если сервер говорит ему обновиться, только тогда он включает GPS.

За исключением того, что время отклика этого намного медленнее (я предполагаю), и если телефон находится где-то, он не может легко получить стабильное обновление, то вы даже не будете знать его последнее местоположение. В этот момент вы застряли в ожидании.

Я надеялся, что телефон может быть более автономным.

Возможно, есть еще лучший алгоритм, который я мог бы использовать для улучшения этой настройки?

Спасибо.


person Sebastian Dwornik    schedule 29.07.2009    source источник
comment
p.s. Приложение на самом деле представляет собой простое программное обеспечение для отслеживания местоположения, которое предназначено для работы в фоновом режиме. Поэтому он должен быть максимально эффективным.   -  person Sebastian Dwornik    schedule 29.07.2009
comment
Мне любопытно: вы обнаружили, что отключение GPS на четыре минуты увеличивает задержку, связанную с (опять же) получением сигнала GPS? Кроме того, сильно ли расход заряда батареи зависит от того, A) GPS включен, но программа не запрашивает местоположение и B) GPS полностью выключен?   -  person lance    schedule 29.07.2009
comment
Задержка в 4 минуты, похоже, не сильно повлияла на GPS. После этого ему все еще удается быстро заблокировать. Это просто первый раз, который иногда занимает некоторое время. Как только GPS включен, драйвер автоматически обновляет свои структуры, поэтому нет смысла не собирать данные. Расход батареи идет в любом случае. :/   -  person Sebastian Dwornik    schedule 30.07.2009


Ответы (2)


Я думаю, что ваше текущее решение будет работать лучше всего и предоставит пользователям лучший опыт.

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

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

Лично я понимаю, что если я использую тяжелое приложение Wifi/GPS/Data, это в любом случае значительно сократит срок службы батареи. Не похоже, что уменьшение, которое вы испытываете, слишком сильно отличается от других приложений, с которыми я сталкивался. Оставьте его таким, какой он есть, и сделайте пользователя счастливым (даже если ему придется заряжать немного чаще).

person Justin Niessner    schedule 29.07.2009

Есть ли в используемом модуле GPS какие-либо доступные встроенные режимы работы с низким энергопотреблением. Я встроил в продукты несколько разных наборов микросхем GPS от SiRF и u-blox и обнаружил, что с точки зрения заряда батареи дешевле оставить GPS включенным в режиме пониженного энергопотребления, чем выключать его, а затем снова получать данные. . В моем случае он потреблял меньше энергии в режиме пониженного энергопотребления для всех периодов выключения менее 15 минут.

Механизмы GPS на основе SiRF (SiRFStar-2 и SiRFStar-3) имеют режим «капельной мощности», при котором GPS включается только на пару сотен миллисекунд при каждом пробуждении. Интервал пробуждения может быть установлен примерно на 5 секунд, что означает, что потребляемая мощность составляет 5-10% от постоянно включенного состояния. Существует небольшой компромисс в точности, но набор микросхем вернется в режим непрерывного питания, если качество исправления ухудшится.

person uɐɪ    schedule 30.07.2009
comment
Очень интересно. Я снова посмотрел API промежуточного драйвера GPS, и, похоже, нет никакого доступа к такой конфигурации питания более низкого уровня. :( Хорошее предложение, однако. - person Sebastian Dwornik; 30.07.2009
comment
Я работаю над проектами, в которых мы покупаем чипы напрямую у производителя и включаем их в наши продукты. В результате у меня есть прямой доступ ко всем функциям используемого мной чипсета. Если чип скрыт за API, то поставщик может ограничить доступ к функциям, чтобы он мог использовать любой механизм GPS, который поддерживает набор функций, которые они предоставили. Возможно, выбор режима низкого энергопотребления скрыт за опцией выбора частоты обновления. Более высокая скорость обновления может быть более энергоэффективной по причинам, изложенным в моем ответе выше. - person uɐɪ; 30.07.2009