Производительность системы и использование батареи при использовании акселерометра и гироскопа

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

В конкретном приложении, над которым я работаю, я включаю (например, .startGyroUpdatesToQueue) акселерометр и гироскоп, когда требуется и выключен (например, .stopGyroUpdates()) когда не требуется, аналогично рекомендациям Apple по документации.

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

Вопросы:

1 - Насколько эффективны акселерометр и гироскоп с точки зрения производительности системы и использования батареи, когда они включены в приложении?

2 - Имеются ли данные / данные о работе системы и использовании батареи, когда включены акселерометр и гироскоп?

3 - Есть ли способ приостановить акселерометр и гироскоп вместо полного выключения?

1 ответ

Решение

Сначала отвечая на вопрос № 3, на современных iPhone (5S и более поздних) акселерометр действительно никогда не выключается и находится в специальном сопроцессоре движения. На этих устройствах стоимость энергии для создания данных постоянна, но получение данных стоит дорого. Требуется таймер для регулярного пробуждения основного процессора, считывания данных, пробуждения вашего приложения и выполнения события в одном из ваших потоков. Самое близкое к тому, что вы просите, - это способ включить таймер, но не включить его в ваше приложение. Кажется, нет способа сделать это, и экономия энергии, вероятно, не будет такой большой, если бы они были.

Имея это в виду, 1 будет довольно субъективным. И процессор, и ваше приложение будут тратить больше времени на работу, но если вы уже работали над процессором, это добавит так много? Точно так же, если пользователи проводят только 5% своего времени на экране, где вам не нужен акселерометр, а не 50% своего времени, общее влияние энергии на его постоянное включение будет намного меньше. Это действительно подводит нас к сути вопроса, номер 2.

Если вы хотите узнать, какие затраты на электроэнергию связаны с постоянным опросом акселерометра, а не только с включением его при необходимости, вам следует профилировать свое приложение. При отладке вашего приложения вы можете просматривать процессорные, энергетические и другие воздействия вашего приложения непосредственно в Xcode с помощью Debug Navigator ( 6). Это объясняется в Руководстве Apple по энергоэффективности для iOS-приложений: измерение энергетического воздействия с помощью Xcode. Вы также можете получить более подробный анализ с помощью инструментов. Apple предоставляет полную информацию в своем Руководстве по энергоэффективности приложений для iOS: измерьте влияние энергии на инструменты.

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

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