- PVSM.RU - https://www.pvsm.ru -

OLED-экраны смартфонов на Андроиде и как с ними бороться

Экран Google Pixel 4

Привет!

Сегодня я коснусь весьма распространенной и, вообще говоря, довольно общеизвестной темы выгорания OLED-экранов. Несмотря на то, что эта тема актуальна уже достаточно давно [1], некоторые производители смартфонов продолжают делать неудачные дизайнерские решения [2], а пользователи продолжают предпринимать неверные, довольно разрушительные меры [3]. Я бы хотел рассказать кратко о том, что такое OLED-экраны, почему они выгорают и как, собственно, быстрее и безболезненнее всего сгладить эту проблему (конечно же, без root-прав). Поехали!

OLED — что это и зачем

OLED в расшифровке означает Organic Light-Emitting Diode, и в основе своей использует люминисцентные свойства определенных органических составов [4], которые испускают свет при проведении через них электрического тока. По сути, каждый пиксель есть [5] некий миниатюрный электрод, заполненный веществом, испускающим либо красный, либо зеленый, либо синий при подаче напряжения.

Ну и зачем это нужно?

У этой технологии есть конкретный перечень [6] довольно значимых преимуществ перед своим основным конкурентом — LCD. Вкратце их можно перечислить примерно так:

  • Меньше потребляемой энергии: черный цвет означает, что на пиксель вовсе не подается напряжение;
  • Меньший размер конструкции, что позволяет засовывать в гаджет больше фишек;
  • Очень хорошее рассеивание света, что позволяет значительно расширить угол видимости;
  • Затрат на производство меньше: используемые люминисцентные вещества недороги в приобретении;
  • БОльшая насыщенность цветов;
  • И другие.

Выгорание экрана — как это происходит?

Конечно же, наш мир не идеален, и всё имеет свои достоинства и недостатки — и наш друг OLED [7] в том числе. Помимо множества небольших проблем, таких как сильное отражение света на улице или большие (сравнительно с LCD, иногда до 3х раз) энергетические затраты на отображение белого цвета, существует очень ярко выраженный недочет, который заметили уже все, кому не лень. Это выгорание экрана [8].

Выгорание

А связано это с тем, что те самые вещества в пикселях не могут светить вечно [9], а жизненные циклы каждого отдельного пикселя никак не синхронизированы между собой. Например, синие пиксели выгорают быстрее при том же самом напряжении, а если подолгу рассматривать похожие картинки на экране, то по-разному угасать будут целые порции экрана.

Как же с этим бороться?

Основная задача борьбы с OLED-экранами заключается в том, чтобы как можно более равномерно использовать все части экрана. Некоторые производители слегка тюнингуют [10] свои фичи, чтобы они не портили девайс. Но, как показывает практика, на производителей лучше не надеяться, а самому проследить за состоянием своего гаджета.

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

Если у вас, как у меня, жестко фиксированы некоторые элементы дисплея, такие как navbar (панель навигации) или status bar, а в настройках спасения нет, придется немного изловчиться [11]. Мы, используя ADB (Android Debug Bridge [12]), сделаем так, что панель навигации и/или статусбар будут появляться только в тех приложениях, в которых нам они нужны всегда. А там, где они нам редко нужны, они будут скрыты и появляться только при свайпе в соответствующей части экрана.

Использовать утилиту ADB нужно через консоль. Все будет работать и под виндой, только нужно сбросить adb.exe и все необходимые dll-ки в нужную папку. Далее, все показанные мной команды и действия будут совершаться под Linux (Ubuntu), но это чисто ради удобства, поскольку под виндой (или любым другим дистрибутивом линуха) эта утилита будет работать абсолютно так же.

Установка

  • Linux: открываем терминал и пишем:

    sudo apt install adb

    Pretty self-explanatory.

  • Windows:

    1. Скачиваем нужный архив [13]
    2. Распаковываем его туда, куда удобно.
    3. Открываем папку и заходим в нее через командную строку.

Готово.

Немного первичных работ

Заходим в настройки своего смартфона и находим версию сборки (build number).

Build number location

Нажимаем на него несколько раз и получаем доступ к опциям разработчика.
Далее, нам необходимо включить отладку по USB:

Enable USB debugging

Теперь подсоединяем смартфон к компьютеру в режиме MTP (передачи файлов), и пишем в терминале:

adb devices

Теперь у вас на смартфоне должно появиться следующее сообщение:

Allow USB debugging?

Ставим галочку и нажимаем "Ок".
Снова пишем adb devices и получаем что-то такое:

Success

Ура! Мы готовы к действию! Конечно же, нет никакой необходимости проделывать всю эту работу более одного раза для одного компьютера. Вы можете в любой момент включить adb, подсоединить смарфтон и отдавать ему команды (только будьте, пожалуйста, осторожны!).

А теперь самое главное

Как написано здесь [11], будем пушать некоторую глобальную настройку. Но сперва определите имена пакетов приложений, в которых вы хотели бы оставить настройки прежними. Сделать это можно, например, так:

adb shell pm list packages | grep vk

Получаем ответ:

package:com.vkontakte.android

Имя пакета — это то, что следует после 'package', то есть в нашем случае это 'com.vkontakte.android'.
Далее допустим, что мы хотим спрятать панель навигации везде, кроме вк. Сделать это можно так:

adb shell settings put global policy_control immersive.navigation=apps,-com.vkontakte.android

Готово! Изменения должны вступить в силу моментально.
Давайте же спрячем статус бар везде, кроме вк и YouTube.

adb shell settings put global policy_control immersive.status=apps,-com.vkontakte.android,-com.google.android.youtube

Ура! А теперь в приложении хабрахабра уберем и статусбар, и navbar, чтобы вмещать на экран еще больше классных статей.

adb shell settings put global policy_control immersive.full=ru.habrahabr

OLED-экраны смартфонов на Андроиде и как с ними бороться - 7

Вот и все! В любой момент изменения можно вернуть в дефолт, написав:

adb shell settings put global policy_control immersive.full=default

Заключение

С выходом 10 ведроида и появлением новых жестов особая необходимость в конкретно этих заморочках ослабла, поскольку навбар практически отсутствует. Однако, если вас раздражают некоторые элементы UI и вы не можете их убрать в настройках, можете делать так, как я показал, через консоль.

Вся эта информация была накоплена мной, когда я сам пытался разрешить проблему выгорания экрана на своем смартфоне, и я надеюсь, что для кого-то эта статья была и интересной, и полезной. Всем удачи!

P.S.

Буду рад любой обоснованной критике по форме и содержанию статьи.

Автор: Uncle_Lo

Источник [14]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/android/333836

Ссылки в тексте:

[1] достаточно давно: https://en.wikipedia.org/wiki/Screen_burn-in

[2] неудачные дизайнерские решения: https://forums.androidcentral.com/google-pixel-pixel-xl/764430-navigation-bar-burn.html

[3] меры: https://www.reddit.com/r/GooglePixel/comments/5ezrv9/i_made_something_to_help_correct_navbar_burnin/

[4] определенных органических составов: https://patentimages.storage.googleapis.com/ca/a8/40/2a639e223ba3f1/US8334545.pdf

[5] есть: https://patentimages.storage.googleapis.com/69/c9/3e/aa8b16efe350bf/US8405585.pdf

[6] перечень: https://www.youtube.com/watch?v=dGTHAc_XwWc

[7] OLED: https://en.wikipedia.org/wiki/OLED

[8] выгорание экрана: https://sci-hub.se/https://onlinelibrary.wiley.com/doi/pdf/10.1889/1.2785521#accessDenialLayout

[9] не могут светить вечно: https://www.youtube.com/watch?v=bKUj4F7V1uE

[10] тюнингуют: https://en.wikipedia.org/wiki/Always_on_Display

[11] изловчиться: https://forum.xda-developers.com/nexus-6p/general/guide-hide-navigation-bar-status-bar-app-t3509747

[12] Android Debug Bridge: https://developer.android.com/studio/command-line/adb

[13] Скачиваем нужный архив: https://dl.google.com/android/repository/platform-tools-latest-windows.zip

[14] Источник: https://habr.com/ru/post/472208/?utm_campaign=472208&utm_source=habrahabr&utm_medium=rss