Влияние батареи на опрос для обновлений местоположения реже?
Я прочитал много противоречивой информации по этому вопросу.
Предположим, я использую 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 времени, могу ли я вообще пропустить это обновление?
Если можете, то добавьте функцию тайм-аута в логику обновления. Если нет, я настоятельно рекомендую переоценить логику приложения в этом случае.