Як заощадити енергію в додатках для Windows Phone
Розробники присвятили свій лікнеп випуску нових інструментів для програмістів Windows Phone SDK 8.0. Насамперед, варто згадати деякі базові терміни:
- споживання енергії: кількість електрики, яка витрачає телефон під час роботи якого-програми. Зазвичай вимірюється в мілліватт-годинах (мВт*год) або миллиджоулях (мДж);
- потужність: ця величина показує швидкість, з якою зменшується заряд акумулятора. Зазвичай позначається в величинах мілліватт (мВт);
- Ємність акумулятора: кількість енергії, яка зберігається в ній. Зазвичай вимірюється в міліампер-годинах (мА*год) або перекладається під час автономної роботи смартфона.
Тепер можна розглянути особливості енергетики мобільних гаджетів докладніше.
Дисплей
Сучасні мобільні телефони для відображення якісної картинки використовують екрани, виконані за технологією AMOLED. У таких екранах споживання енергії залежить від кольору, який виводиться на екран. Наприклад, якщо взяти дві ідентичні картинки, показати їх на дисплеї і заміряти енергоспоживання, то вимірювання покажуть, що смартфон, власник якого встановив собі яскраве зображення тла, буде працювати близько 7 годин, перш ніж акумулятор розрядиться. Якщо поставити картинку з темним фоном, то телефон не вимагатиме підзарядки близько 24 годин. У відсотках - це продовження терміну автономної роботи на 145%. Це приблизні цифри, які залежать від кожного конкретного смартфона і інтенсивності його використання.
Мобільна мережа
Коли якесь додаток передає або приймає дані, воно споживає додаткову енергію. Мережі стільникового зв'язку, наприклад, 3G, споживають відносно багато електроенергії. А бездротові стандарти, такі як Wi-Fi, є порівняно економними.
Щоб наочно продемонструвати це, розробники з Microsoft провели невеликий експеримент. Вони створили програму, яка downloaded п'ять фотографій з сайту і показувало кожну протягом 5 секунд. Результати експерименту звели в таблицю:
Тип мережі
Тип передачі
Споживання енергії (мА*год)
Час роботи телефону (годинник)
3G
Шаховий порядок
2,13
5:31
Wi-Fi
Шаховий порядок
1,37
8:00
Ті програмісти, які хочуть самостійно повторити описану вище перевірку, можуть завантажити Windows Phone SDK 8.0 і виконати наступні дії:
1. Запустити середовище розробки Visual Studio з вбудованим монітором енергоспоживання Power Monitoring.
2. У ньому відкрити інструмент для аналізу додатків Application Analysis.
3. В меню налаштування Debug натиснути клавіші Alt + F1, це запустить аналіз енергоспоживання програми для Windows Phone.
4. На екрані аналізу програми потрібно натиснути клавішу «Моніторинг» (Monitoring) і «Почати сесію» (Start Session).
5. Після закінчення збору інформації система видасть остаточний звіт.
Причиною високого рівня споживання енергії акумулятора при передачі даних у мережі 3G є те, що радіокомпоненти телефону довше залишаються в активному стані після закінчення завантаження. Це призводить до зайвих витрат електрики порівняно з роботою в мережі Wi-Fi: у ній вони швидше переходять у режим очікування.
Однак споживання енергії залежить не тільки від мережі, але і від алгоритмів завантаження, які використовує програму. Наприклад, якщо змінити тип передачі в умовах такого експерименту з «шахового» на «пакетний», тоді результати будуть краще.
Тип мережі
Тип передачі
Споживання енергії (мА*год)
Час роботи телефону (годинник)
3G
Пакетний
1,48
7:43
Wi-Fi
Пакетний
1,06
10:44
Показані вище низькі рівні споживання енергії пояснюються тим, що в пакетному режимі радіоелементи мереж 3G і wi-fi менше часу залишалися в активному режимі.
Процессор
Дисплей і радіокомпоненти телефону є найбільшими споживачами енергії. Після них йде процесор смартфона. Він споживає більше енергії, чим більше обчислень йому потрібно виконати при виведенні різних візуальних ефектів (напівпрозорість, плавна зміна робочих столів і т.д.). Тому розробникам додатків корисно контролювати рівень витрат у нових програмах з допомогою Power Monitoring. Програмісти, які хочуть оптимізувати власні програми, можуть зробити це за прикладом, наведеним фахівцями Microsoft. Вони взяли типову програму PhotoSlydr для роботи з фотографіями і подивилися на її енергоекономічність з допомогою інструмента Power Monitoring. Спочатку вони переглянули фотографії у фотоколекції, потім включили режим слайдшоу на кілька секунд. Після цього Power Monitoring показав фінальний звіт.
Як виявилося, програма споживає дуже мало енергії, вона розрядить акумулятор телефону тільки через 3,5 години безперервного використання. Однак є один елемент, який споживає більше всього електрики. Дізнатися яка частина програми є найменш дружній до акумулятора, можна на вкладці «Увагу» (Alert). У разі PhotoSlydr найбільш енерговитратним є інтерфейс. Система моніторингу Power Monitoring радить змінити колірну схему оформлення, щоб зменшити його енергоспоживання.
Якщо програмісти будуть прислухатися до порад Power Monitoring, то їх програми будуть більш економічними для акумулятора. Наприклад, перероблене згідно з рекомендаціями системи моніторингу додаток PhotoSlydr тепер дозволяє йому працювати 5,2 години.
Загалом фахівці Microsoft рекомендують розробникам додатків для Windows Phone дотримуватися таких універсальних правил:
- використовувати темні кольори оформлення там, де це можливо;
- передавати файли через бездротові мережі в пакетному режимі;
- більш ефективно балансувати навантаження на процесор;
- не створювати складних анімаційних переходів в інтерфейсі;
- використовувати зображення у форматі JPEG замість PNG;
- економити енергію, виконуючи «важкі» обчислення в хмарних сервісах.