2016-10-12 21 views
3

Я использую акселерометр и гироскоп в своем приложении для Android. Я хочу профилировать приложение для его энергопотребления. Скажем, приложение, прочитайте эти два датчика каждые 100 миллисекунд, добавьте все три оси (x, y, z) и сохраните их в файле.Акселерометр и гироскоп и его потребляемая мощность в телефонах Android

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

  1. Эти два датчика всегда включены или активны? (Если это так, любая ссылка).
  2. Что делает регистратор и регистратор? Если они всегда включены,
    , то не имеет значения, чтобы отменить их регистрацию, по крайней мере, в условиях потребления энергии.

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

+0

Вопрос заключается в том, «что вы могли бы сделать, если это все еще потребляет энергию?» Если вы удалите слушателя, вы уменьшите comsumtion (имеет состояние раньше). Но у вас нет доступа к физическому отключению этих датчиков для запуска, чтобы вы этого хотели? Ценовая стоимость для получения этих событий с такой скоростью является довольно потребителем – AxelH

+0

@AxelH Я согласен, что если я удалю свой слушатель, потребление энергии из-за обработки данных будет уменьшено. Однако мне интересно узнать о состоянии этих датчиков, когда приложение не использует их. Это может помочь мне в принятии моего проектного решения, если я хочу использовать оба или один датчик. Если вы хотите включить гироскоп и акселерометр, я бы хотел использовать оба приложения в своем приложении. Однако, если нет, то я не могу использовать гироскоп, потому что он потребляет больше, чем акселерометр с точки зрения мощности. – utengr

+0

Теперь это имеет смысл! :) Вы можете сделать некоторые тесты, убив все нежелательные приложения (те, которые используют датчики), затем сравнивая потребляемую мощность до и после активации прослушивателя датчиков (но это было бы сложно, потому что может быть процесс ОС с использованием датчиков, поэтому это может быть не совсем убедительным. См. следующее, чтобы увидеть потребление. http://stackoverflow.com/questions/10293713/calculate-android-sensor-power-consumption – AxelH

ответ

2

В основном как дополнение к ответу от Андрей Омельченко с еще несколько ссылок:

1. Это в целом и «производитель независимым» документированным в Androids Architecture Documentation in the Sensors Section. В частности, что Accelerometer and Gyroscope обрабатываются как датчики non-wakup, которые сообщают о событиях непрерывно, но не могут разбудить SoC.

So Да, вы можете предположить, что эти 2 датчика всегда находятся на.

2. Кроме того, документация гласит: Если приложение нуждается в данных в фоновом режиме, то необходимо провести Wakelock - вероятно the Partial Wakelock, который будет держать систему от перехода на низкую мощность/спящий режим - такие, что события обрабатываются и доставляются без потери. Очевидно, что это быстрее разряжает батарею.

Вы можете подразумевать, что регистрация/отмена регистрации может иметь низкий эффект при мощности, если вы не храните Wakelock.

Но в целом вы не должны полагать, что бесполезно регистрировать/отменять регистрацию датчиков для оптимизации мощности. - за исключением одноразовых датчиков. Не только из-за мощности, используемой для обработки и доставки событий в приложениях, и возможности сохранения системы от сна. Это Framework recommendation, и они, как правило, не без причины, как использование register with report delay to make use of batching if possible. Воздействие может измениться с использованием другого оборудования или других факторов.

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

+0

Благодарим вас за это объяснение и ссылку. Это что-то актуальное, что я искал. После прочтения этого, я думаю, эти два датчика всегда включены. Я лично проверил эти датчики с частичной блокировкой и без нее. Когда я не получаю частичную блокировку, и экран телефона отключается, я не получаю данные от этих датчиков даже тогда, когда они зарегистрированы у слушателя. Однако, когда я получаю блокировку, тогда она прекрасно сообщает, даже если экран выключен. – utengr

+0

Подождите некоторое время, если мы увидим какое-либо другое объяснение, иначе я отвечу на ваш ответ как на ответ. – utengr

+0

Что я имел в виду, так это то, что происходит, когда другое приложение хранит wakelock и не дает системе бодрствовать, ваше приложение тоже получает события или нет? События должны быть проигнорированы, если процессор спящий, но ни [Sensors CDD] (https://source.android.com/compatibility/android-cdd.html#7_3_sensors), ни документа системы/api четко не указывают, что вы не получите данных, даже если другое приложение сохраняет блокировку. – makadev

1

От Official site «Всегда следите за тем, чтобы отключить датчики, которые вам не нужны, особенно когда ваша деятельность приостановлена. В противном случае вы можете разрядить батарею всего за несколько часов. Обратите внимание, что система не будет автоматически отключать датчики когда экран выключится ».

«Эти два датчика всегда включены или активны?» - Кажется, у этого вопроса нет общего ответа, потому что это зависит от аппаратного обеспечения. Фактически акселерометр и гироскоп имеют низкое энергопотребление, но они поддерживают ОС, могут потреблять больше батареи.

«Что делает регистратор и регистратор?» - исключает потребление энергии для обработки данных.

+1

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

+0

@ Андрей Омельченко. Я понимаю, что регистратор исключит потребление энергии из-за обработки данных с этих датчиков. Однако я не уверен, что эта функция отключает эти датчики. Хотя акселерометр имеет низкую мощность, гироскоп потребляет гораздо больше, чем акселерометр. Я использовал приложение, чтобы измерить это, где его почти в 5-6 раз больше, чем акселерометр. – utengr

+0

@Markus Kauppinen Вы имеете в виду ориентацию экрана?если да, это может быть отключено, и экран не ориентирован, когда мы меняем ориентацию телефона. Значит ли это, что когда этот параметр отключен, акселерометр также отключается? – utengr

1

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

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