Подсветка по времени андроид

Содержание
  1. Подсветка кода на android. Мой опыт
  2. Общие описание структуры предлагаемого решения
  3. Как отловить момент окончания скроллинга?
  4. Как не стартовать поток-парсер после каждого введенного символа?
  5. Как понять, какой текст попадает в видимую область?
  6. Зачем нужно заполнять список со спанами? Почему бы просто не посылать каждый спан в handler сразу после его создания?
  7. Зачем нам постоянно спящий поток? Почему бы не использовать ThreadPool?
  8. MediaStrazh. Be on protection!
  9. Быстро тухнет экран телефона(android). Как настроить время выключения экрана смартфона или планшета.
  10. Быстро тухнет экран телефона(android). Как настроить время выключения экрана смартфона или планшета.
  11. КАК УЛУЧШИТЬ РАБОТУ СМАРТФОНА/ПЛАНШЕТА
  12. Зачем нужна автояркость на смартфоне и нужно ли ее включать
  13. Что такое автояркость в смартфоне
  14. Автояркость: плюсы и минусы
  15. Как откалибровать автояркость на Android
  16. Нужно ли пользоваться автояркостью

Подсветка кода на android. Мой опыт


Во время разработки моего последнего приложения мне пришлось провести довольно много времени, экспериментируя с разными подходами к размещению span’ов в EditText. В этом посте хотелось бы подвести некоторый итог этого времяпрепровождения, а также сэкономить время тем, кто в будущем будет решать подобные задачи.

Кода будет немного, только основные моменты.

Для начала хочу привести небольшой список фактов для того, чтобы ввести читателя в курс дела:

  • Несмотря на N ядер (каждое с огромной частотой), современный смартфоны все еще очень сильно уступают в производительности даже недорогим, но большим компьютерам.
  • Каждое приложении в андроиде имеет строго ограниченный размер выделяемой памяти. И он не велик.
  • Метод setSpan работает медленно.
  • Чем больше работы вы вынесете в Worker’ы, тем отзывчивее будет ваше приложение.
  • Держать подсвеченным весь текст не получится — только видимую его часть.
  • Довольно очевидно, но все же: поиск места размещения спана в UI потоке делать не получится.

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

Общие описание структуры предлагаемого решения


Создаем расширение ScrollView и в него помещаем EditText. У ScrollView переопределяем onScrollChanged для того, чтобы отлавливать момент окончания скроллинга. В это время уведомляем наш постоянно висящий в фоне поток о том, что текст надо распарсить.
EditText’у вешаем слушателя изменения текста — TextWatcher’а . В его методе afterTextChanged информируем Worker’а о том, что надо распарсить текст. В классе (потомке EditText) заводим Handler, в который из Worker’а будем отсылать список спанов, которые необходимо навесить на текст.

Общая схема такова. Теперь к деталями, которые изложу в форме вопрос-ответ.

Как отловить момент окончания скроллинга?

Метод onScrollChanged вызывается после каждого «проскролленого» пикселя, и если заставлять поток-парсер работать после каждого вызова, то, понятное дело, ничего хорошего из этого не выйдет. Поэтому делаем следующим образом:

То есть каждый раз при вызове метода выставляем таймер в 500 мс и, если в течении этого времени метод не вызывается, то уведомляем OnScrollStoppedListener о том, что скроллинг остановился. В моем случае интерфейс OnScrollStoppedListener реализует мой EditText.

Как не стартовать поток-парсер после каждого введенного символа?

См. предыдущий пункт.
На самом деле этот способ в данном случае далеко не идеален потому, что пользователю всегда придется ждать N-ое количество миллисекунд до начала процесса парсинга. По-хорошему тут нужна какая-то интеллектуальная система, которая будет понимать, когда пользователь просто медленно печатает, а когда он уже завершил некоторую операцию ( к примеру написал оператор echo).

Читайте также:  Журнал журнала для андроида

Как понять, какой текст попадает в видимую область?

К сожалению, точно этого сделать нельзя, поэтому приходится делать примерно. Для начала после каждого изменения текста я вызываю следующий метод:

То есть я получаю номер символа начала каждой строки. Затем, зная высоту экрана в пикселях, легко вычисляем номер первой и последней видимой строки:

Имея эти данные, вы без труда найдете первый и последний видимый символ.

Зачем нужно заполнять список со спанами? Почему бы просто не посылать каждый спан в handler сразу после его создания?

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

Зачем нам постоянно спящий поток? Почему бы не использовать ThreadPool?

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

Я осветил общую структуру решения, и, на мой взгляд, неочевидные моменты. Надеюсь, это кому-нибудь пригодится. Спасибо.

Источник

MediaStrazh. Be on protection!

Лучший антивирусный проект!

Быстро тухнет экран телефона(android). Как настроить время выключения экрана смартфона или планшета.

Быстро тухнет экран телефона(android). Как настроить время выключения экрана смартфона или планшета.

Многие пользователи, при работе со своим гаджетом сталкиваются с довольно распространенной проблемой. Быстро гаснет дисплей. По сути, это вполне нормально, ибо Ваш гаджет настроен таким образом экономить заряд аккумулятора.

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

  • Первое, что нужно, это войти в основное меню Вашего гаджета
  • Далее, выбираем пункт «настройки»
  • Теперь нажимаем на вкладку «устройство», если таковая имеется, и находим строку «дисплей» — жмем на нее. (Если в меню Вашего гаджета вкладки «устройство» нет — просто ищем строку с названием «дисплей» прокручивая экран вниз, сразу же после входа в настройки)
  • Итак, после того, как Вы нашли строку «дисплей» и нажали на нее, появилось новое меню, в котором находим строку «тайм-аут экрана» и жмем на нее.
  • В появившейся, после нажатия на «тайм-аут экрана» таблице, Вам остается только выбрать удобное для вас значение времени, через которое Вы хотели бы разрешать Вашему устройству самостоятельно выключать дисплей. Нажимаете по нужному Вам значению и всё, готово!

Поздравляем, теперь Ваш смартфон или планшет (Android) выключает дисплей тогда, когда это для Вас удобно, а не когда захочет! 🙂

КАК УЛУЧШИТЬ РАБОТУ СМАРТФОНА/ПЛАНШЕТА

Источник

Зачем нужна автояркость на смартфоне и нужно ли ее включать

Автояркость — одна из самых противоречивых функций в современных смартфонах. Несмотря на рекомендации производителей, касающихся энергосбережения, пользователи отключают автояркость чаще всего, чтобы вручную контролировать уровень яркости дисплея. Самое интересное, что ее недолюбливают пользователи самых разных устройств. Но частая ручная регулировка яркости дисплея по-своему опасна для вашего телефона и может привести к неприятным последствиям. Почему производители устройств до сих пор не научились адекватно настраивать эту функцию автоматической регулировки? Как работает датчик освещенности? Как правильно откалибровать автояркость на смартфое? И нужно ли ей пользоваться?

Читайте также:  Что можно делать через андроид

Разбираемся с автояркостью на смартфоне: чем хороша и какие у нее минусы

Что такое автояркость в смартфоне

Во всех телефонах есть функция «Автояркость экрана», которая автоматически настраивает яркость дисплея в зависимости от уровня освещенности. По идее, в солнечную погоду яркость должна увеличиться, а если вы находитесь в темноте, то уменьшиться. В большинстве случаев функция работает неправильно, чем вызывает гнев пользователей и дальнейшее отключение в настройках. Функция работает за счет сенсора освещенности, который расположен рядом с разговорным динамиком и фронтальной камерой. Самые топовые смартфоны оснащают более продвинутой версией этого датчика — RGB сенсором, который способен не только менять яркость, но и считывать интенсивность основных цветов, настраивая качество изображения и корректируя баланс цвета фотографий.

Автояркость: плюсы и минусы

Функция не всегда работает правильно, но в большинстве случаев очень полезно ей пользоваться. На это есть несколько весомых причин. Система автоматически выбирает оптимальный показатель яркости дисплея. Если сейчас солнечно, а через час появятся тучи, то датчик поймет, что необходимо уменьшить яркость дисплея. Благодаря автояркости и автоматической адаптации дисплея не меняется качество изображения на экране.

Без калибровки автояркость может ослепить вас в ночи

Автояркость положительно влияет на время автономной работы смартфона. Казалось бы, в чем отличие между ручной настройкой и автоматической? Эксперты из компании Battery Universe в своем исследовании пришли к выводу, что ручное регулирование уровня яркости снижает время работы. Все из-за того, что при солнечном свете пользователи увеличивают яркость до 100%, забывая вовремя его отключить, когда пропадает необходимость. В результате этого смартфон начинает нагреваться и разряжается гораздо быстрее. Функция автояркости также подбирает оптимальные параметры яркости дисплея для просмотра видео при минимальной нагрузке на батарею.

Включение автояркости — единственный способ адаптировать экран под текущее освещение

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

Автояркость сходит с ума по-разному: бывает, что просыпаешься ночью и не можешь уснуть. Начинаешь читать статью в интернете и глаза сильнее концентрируются на тексте и быстрее устают из-за того, что яркость на минимуме. Повышается нагрузка на зрение (и уровень ненависти к этой функции), в результате чего приходится вручную регулировать яркость экрана.

Яркий дисплей посреди ночи неприятно ослепляет

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

Как откалибровать автояркость на Android

Не все знают, но эту функцию можно настроить, в результате чего она должна начать работать корректнее на любом Android-смартфоне. Рассказываем, как это сделать.

  • Разблокируйте устройство, прикрыв датчик освещенности пальцем (рядом с динамиком)
  • Отключите автояркость в настройках смартфона
  • Держите датчик закрытым. Установите яркость на минимум
  • Быстро включите автояркость и сразу же отключите
  • Держите смартфон напротив источника света или выйдите, где достаточно солнечного света, и уберите палец с датчика освещенности
  • Установите яркость на максимум и активируйте автояркость
Читайте также:  Приставка smart tv t96 android tv box 4k ultra hd прошивка

Датчик должен начать работать адекватно. Почитать о других полезных лайфхаках можно в нашем канале в Яндекс.Дзен — не забудьте подписаться!

Нужно ли пользоваться автояркостью

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

Ручная регулировка зачастую удобна для нас, но вредит смартфону. По этой причине аккумулятор садится быстрее, а дисплей со временем начинает выцветать. С этой проблемой должен справиться датчик освещенности, который для этого и существует. К сожалению, он редко работает правильно, а производители не рассказывают о том, как его правильно откалибровать. В iPhone даже спрятали эту функцию подальше в «Универсальный доступ», чтобы пользователи ее подольше искали и не отключали лишний раз.

Стоит ли пользоваться этой функцией? Конечно, стоит. Почти всегда по умолчанию она работает некорректно, но попробуйте наш лайфхак, чтобы автояркость перестала трепать вам нервы.

Новости, статьи и анонсы публикаций

Свободное общение и обсуждение материалов

Споры на тему iOS и Android можно считать вечными. Это как разговоры о том, как вешать туалетную бумагу — хвостиком к стене или наоборот. Иногда встречаются случаи, когда пользователи переходят из одного лагеря в другой. Решится на это готовы не все, но такие случаи встречаются все чаще и чаще. Естественно, производители смартфонов, а также сами Google и Apple прилагают все усилия, чтобы привлечь к себе как можно больше клиентов. Несмотря на всю лояльность покупателей iPhone, совсем скоро текучка в сторону Android может усилиться, благодаря новой функции Android, которая позволит облегчить переход с iOS. Вот, как это будет выглядеть и почему переход станет более простым.

Помните, как вызывался первый по-настоящему массовый голосовой ассистент? Если нет, то дам подсказку, что это стало не только мемом, но и именем нарицательным для всего процесса ”гуглить”. Да, всем мы помним фразу ”Окей, Google”. Именно она вызывала Google Ассистента, который помогал решать какие-то бытовые задачи, связанные с запросами. Пусть это и не дурацкое ”Привет, Siri”, которое надо каждый раз говорить, общаясь с iPhone, но от такого способа обратить на себя внимание тоже надо уже отказываться. Видимо, именно так подумали и ребята из Google, запустив соответствующий процесс, и вот теперь мы максимально близки к новому способу управления старой функцией.

На этой неделе было не так много новостей из мира Android, как нам хотелось бы. Не было знаковых презентаций или громких скандалов, которые перевернули бы все в отрасли своим влиянием. Зато были «обычные» новости, способные изменить что-то в мире технологий. К ним можно отнести попытки Xiaomi сделать так, чтобы украсть ее телефоны было сложнее. Или, например, трудности, возникшие в Google у Сундара Пичаи. Поговаривают, что в компании перестали ему доверять и это может быть концом его карьеры в компании. А еще были новости про OneDrive, Google Play и многое другое. Давайте вспомним их.

Источник

Оцените статью