Блокування сну для android, intel® software

Система розподілу ресурсів цього операційній системі Android - блокування сну

Але розробники Android передбачили можливість не давати пристроїв з цієї ОС переходити в сплячий режим. У деяких випадках може знадобитися, щоб CPU залишався в активному стані навіть при вимкненому екрані, або ж може знадобитися заборонити автоматичне відключення екрану при виконанні певних завдань. Для цієї мети розробники Google * включили так звані блокування сну в API PowerManager. Додатки, яким потрібно уникнути «засипання» пристрою, можуть скористатися таким блокуванням. Поки в системі є активна блокування сну, пристрій не зможе «заснути», тобто перейти в режим очікування (до зняття блокування). При використанні блокувань сну важливо розуміти, що необхідно правильно знімати ці блокування, коли вони не потрібні. Інакше акумулятор пристрою швидко сяде: адже пристрій не зможе повернутися в стан зниженого витрати електроенергії.

У цій статті описуються деякі додатки Android, що використовують блокування сну в Android 4.0. У статті також описано додаток «Wakelocks» з набору SDPSamples для демонстрації реалізації блокувань сну в коді.

Використання блокувань сну додатками

Блокування сну утримується при відтворенні музики

Таблиця: Використання блокувань сну стандартними додатками Android

Вибір типу блокування

Перед тим, як почати написання коду блокувань сну, потрібно зрозуміти, які існують типи блокувань сну, щоб вибрати найбільш підходящий тип для використання в додатку. В API Android PowerManager описуються різні доступні прапори блокувань, що змінюють стан електроживлення пристрою:

Таблиця: З API Android PowerManager.

Зверніть увагу, що блокування сну істотно скорочують час роботи пристроїв з Android від акумуляторів, тому блокування сну не слід використовувати, якщо можна обійтися без них. При можливості, їх слід знімати якомога швидше.

Утримання екран не вимикався (з набору SDPSamples)

Додаток WakeLock з набору SDPSamples демонструє, що додаток може утримувати екран у включеному стані за допомогою Window Manager, без написання коду блокування сну. Відкрийте програму WakeLock і виберіть елемент списку "Win Man Screen On".

Блокування сну для android, intel® software

Поки в рядку стану кнопки буде текст «Screen is LOCKED», екран буде включений. Якщо ж в рядку стану кнопки буде текст «Screen is UNLOCKED», то через 5 секунд бездіяльності екран вимикається.

У коді це здійснюється функцією screenLockUpdateState () у файлі WakeLockActivity.java шляхом установки і зняття FLAG_KEEP_SCREEN_ON для поточного вікна при кожному натисканні кнопки і зміні стану.

Реалізація блокування сну

В додаток WakeLock з набору SDPSamples реалізовані блокування сну різних типів. Після запуску програми WakeLock вибираємо один з 4 типів блокувань сну: Power Wake Lock Full, Power Wake Lock Bright, Power Wake Lock Dim і Power Wake Lock Partial. Ці 4 варіанти відповідають 4 прапорам блокувань сну, описаним в API PowerManager. Кожен елемент демонструє реакцію пристрою на спробу відключити екран через 5 секунд.

Блокування сну для android, intel® software

Відстежуючи вміст файлу / sys / power / wake_lock (потрібен доступ з правами root), можна побачити, що після натискання кнопки живлення зберігається тільки блокування сну PARTIAL_WAKE_LOCK. Решта блокування сну не дають повністю відключити екран: він продовжує працювати з тим чи іншим рівні яскравості.

При написанні коду блокувань сну потрібно перш за все запросити дозвіл на їх використання в маніфесті AndroidManifest.xml:

Після цього можна створити об'єкт WakeLock, що містить функції acquire () і release () для управління блокуванням сну. Хороший приклад знаходиться в файлі WakeLockActivity.java:

висновок

Довідкові матеріали

Примітки

ЗА ВИНЯТКОМ, узгоджених INTEL ПИСЬМОВО, ПРОДУКТИ INTEL НЕ ПРИЗНАЧЕНІ ДЛЯ ВИКОРИСТАННЯ В СИТУАЦІЯХ, КОЛИ ЇХ НЕСПРАВНІСТЬ МОЖЕ ПРИЗВЕСТИ ДО травмування або смерті.

Корпорація Intel залишає за собою право вносити зміни в технічні характеристики і описи своїх продуктів без попереднього повідомлення. Проектувальники не повинні покладатися на відсутні характеристики, а також характеристики з позначками «зарезервовано» або «не визначене». Ці характеристики резервуються Intel для майбутнього використання, тому відсутність конфліктів сумісності для них не гарантується. Інформація в даному документі може бути змінена без попереднього повідомлення. Не використовуйте цю інформацію в остаточному варіанті дизайну.

Продукти, описані в даному документі, можуть містити помилки і неточності, через що реальні характеристики продуктів можуть відрізнятися від наведених тут. Уже виявлені помилки можуть бути надані по запиту. Перед розміщенням замовлення отримаєте останні версії специфікацій в регіональному офісі продажів Intel або у місцевого дистриб'ютора.

Програмне забезпечення та навантаження, використані в тестах продуктивності, могли бути оптимізовані для досягнення високої продуктивності на мікропроцесорах Intel. Тести продуктивності, такі як SYSmark і MobileMark, проводяться на певних комп'ютерних системах, компонентах, програмах, операціях і функціях. Будь-які зміни будь-якого з цих елементів може привести до зміни результатів. При виборі придбаних продуктів слід звертатися до іншої інформації і тестів продуктивності, в тому числі до тестів продуктивності певного продукту в поєднанні з іншими продуктами.

Даний документ і описується в ньому програмне забезпечення надаються за ліцензією і можуть використовуватися і розповсюджуватися тільки відповідно до умов ліцензії.

Intel® і емблема Intel є товарними знаками корпорації Intel в США та в інших країнах.

* Інші найменування і товарні знаки можуть бути власністю третіх осіб.

Для отримання докладної інформації про можливості оптимізації компілятора зверніться до нашого повідомленням про оптимізацію.

Схожі статті