Влияние батареи на опрос для обновлений местоположения реже?

Я прочитал много противоречивой информации по этому вопросу.

Предположим, я использую API Fused Location в PRIORITY_HIGH_ACCURACY режим, имеет ли значение, если я установлю интервал, скажем, 10 минут против 1 минуты? 1 час против 10 секунд? Если да, то как резко?

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

https://developer.android.com/training/monitoring-device-state/index.html

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

Поддерживает ли сервис постоянно GPS и, следовательно, всегда использует батарею (и поэтому интервал будет синтетическим и исключительно по программным причинам)?

Спасибо!

1 ответ

Решение

Что касается API Fused Location API, я не уверен, отключат ли они GPS или отрегулируют интервал создания отчетов, оставляя его включенным, но я бы предположил, что они отключают GPS между обновлениями, иначе многие другие будут жаловаться на утечку электроэнергии.

Что касается того, что делает Android Location Service, они отключают GPS и позволяют телефону бездействовать между обновлениями, если интервал больше 0 (проверьте источник в LocationManagerService). Я провел довольно много тестов мощности на разных телефонах Android и обнаружил, что удержание процессора в режиме холостого хода может потреблять заметное количество энергии. Добавьте энергопотребление GPS (который удерживает процессор от холостого хода), и вы увидите приличный расход энергии (около 50% от того, что экран будет рисовать для некоторых устройств).

В конце концов, мне придется согласиться с Гейбом Сечаном и посоветовать вам выбрать, стоит ли точность разрядки батареи. Просто задайте себе эти основные вопросы:

  • Нужно ли мне знать, находится ли мой пользователь на одной стороне улицы или на другой?

    Если да, используйте GPS, иначе используйте Сеть или местоположение с низкой точностью.

  • Как часто мне нужно проверять местоположение моего пользователя?

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

  • Если я не могу определить местоположение своего пользователя в течение X времени, могу ли я вообще пропустить это обновление?

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

Другие вопросы по тегам