Я видел много приложений, которые дают возможность разбудить экран телефона, просто подняв телефон со стола (не говоря уже о датчике приближения). У всех них есть одна общая черта: эта функция помещает блокировку на устройство и, следовательно, разряжает батарею и, следовательно, время ожидания истекает через заданное время (1-10 минут). Насколько я понимаю, он работает по наблюдению за фронтальной камерой.
Мой вопрос: как тогда телефоны Moto X и Nexus делают это? У них есть эта встроенная функция, но включает ли она вейклок? Круглосуточный вейклок? Или они используют что-то кроме фронтальной камеры? И если да, то почему нет приложения, которое может воспроизвести это поведение на всех телефонах?
Устройства, такие как Moto X и Nexus 5X/6P, используют концентратор датчиков для реализации этой функции, а именно:
блок микроконтроллера/сопроцессор/DSP, который помогает интегрировать данные с разных датчиков и обрабатывать их. Эта технология может помочь разгрузить эти задания с главного центрального процессора продукта, тем самым экономя потребление батареи и повышая производительность.
Спецификации Android предполагают, что производитель внедрил концентратор датчиков:
Стек датчиков устройства может дополнительно включать концентратор датчиков, полезный для выполнения некоторых низкоуровневых вычислений с низким энергопотреблением, когда SoC может находиться в режиме ожидания. Например, на этих чипах можно выполнять подсчет шагов или объединение датчиков. Это также хорошее место для реализации пакетной обработки датчиков, добавления аппаратных FIFO для событий датчиков. Дополнительную информацию см. в разделе Пакетная обработка.
То, как материализуется концентратор датчиков, зависит от архитектуры. Иногда это отдельный чип, а иногда он включен в тот же чип, что и SoC. Важными характеристиками концентратора датчиков является то, что он должен содержать достаточно памяти для пакетной обработки и потреблять очень мало энергии, чтобы можно было реализовать датчики Android с низким энергопотреблением. Некоторые концентраторы датчиков содержат микроконтроллер для общих вычислений и аппаратные ускорители, позволяющие выполнять вычисления с очень низким энергопотреблением для маломощных датчиков.
Так что доступность этой функции зависит от аппаратной части устройства: если производитель включает концентратор датчиков, то энергопотребление будет оптимизировано, поскольку центральный процессор не задействован. В противном случае единственная возможность — установить специальные приложения (см., например, то, что указано в моем комментарии), которые будут отслеживать акселерометр, что, однако, приведет к более высокому расходу заряда батареи.
Мэтью Рид
Дэн Халм
пользователь127476
Дэн Халм
славянин