Google действительно хочет решить проблему с эмодзи в Android

У Android есть проблема с эмодзи, и Google использует двусторонний подход для ее решения с помощью обновляемых системных шрифтов и EmojiCompat.

Любите их ❤ или ненавидьте 🤬, в наши дни смайлы стали основной формой выражения. Эти маленькие капли придают словам эмоции и намерения, и без них разговор в Интернете был бы неполным. Они имеют большое значение даже для межличностного общения — зачем тратить время на произнесение множества слов, когда смайлы делают трюк? Поэтому неудивительно, что Google взглянул на Android и обнаружил, что у него проблема с эмодзи. Андроид 12, он пытается это исправить.

Android и его проблема с эмодзи

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

В своем Презентация Android Dev Summit 2021Google утверждает, что 96% пользователей Android не видят последние смайлы, что резко контрастирует с 16% пользователей iOS, которые не видят последние смайлы. Топ-100 смайлов составляют ~82% от общего количества смайлов. Но в случае 20% этих акций отправитель отправляет смайлик, а получатель видит только «тофу» или сломанный кусок. изображение, обозначенное рамкой с буквой X, что означает, что в их телефонной системе нет соответствующих смайлов для отображать.

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

До Android 12 всякий раз, когда в Unicode появлялись новые смайлы, нам приходилось ждать обновления ОС Android до доберитесь до наших телефонов, чтобы поддержать смайлы, прежде чем мы сможем сделать их частью нашего Интернета. жаргон. И мы все знаем, насколько плоха ситуация с обновлениями Android. Да, стало лучше. Но если у вас нет флагмана, есть вероятность, что вам понадобится еще несколько месяцев, прежде чем последнее обновление достигнет вашего устройства в стабильной версии. Есть большая вероятность, что за этот промежуток времени было добавлено больше новых смайлов, что позволит вам не быть в курсе текущего жаргона.

Понятно, что здесь есть проблема и должно быть решение. Google поставил перед собой цель сделать каждый смайлик доступным для всех пользователей Android во всех приложениях, и для достижения этой цели он использует двусторонний подход.

Решение 1 из 2. Обновляемые системные шрифты (Android 12 и более поздние версии)

Начиная с Android S (Android 12), Google представила обновляемые системные шрифты, и первым шрифтом, который они обновят, станет шрифт emoji.

Мы говорили о Обновляемые системные шрифты в прошлом, почти год назад на самом деле. В Android 11 и более ранних версиях все шрифты на Android хранятся в системном разделе, а точнее, в папке /system/fonts каталог. В частности, эмодзи присутствуют в файле под названием NotoColorEmoji.ttf. Системный раздел доступен только для чтения, и для обновления любого файла в разделе требуется обновление системы, пока раздел не смонтирован. Таким образом, единственный способ получить новые шрифты и новые смайлы — это дождаться официального OTA-обновления или установить самостоятельно неофициально через root.

Благодаря Android 12 и обновляемым системным шрифтам файлы шрифтов хранятся в /data/fonts/filesи доступен для чтения всем приложениям, но доступен для записи только системный_сервер и в этом. Таким образом, Google может выгружать обновленные файлы шрифтов, а приложения могут читать их для получения самой актуальной информации независимо от того, когда было последнее обновление системы Android на телефоне. Как разработчик приложения и даже пользователь, вам больше никогда не придется думать о поддержке эмодзи на устройстве Android 12+.

Решение 2 из 2. EmojiCompat с AppCompat 1.4 (от Android 4.4 до Android 11)

Android 12 был выпущен всего несколько недель назад в стабильной ветке, и пройдет некоторое время, прежде чем вы увидите его распространение в экосистеме Android. Поэтому вам нужно решение, которое работает на Android 11 и более ранних версиях. Это решение является Библиотека поддержки EmojiCompat.

AppCompat 1.4 включает EmojiCompat, а это означает, что все приложения, использующие AppCompat 1.4, будут автоматически поддерживать современные смайлы. Как разработчику приложения, вам просто нужно интегрировать или повысить версию AppCompat до 1.4, и вы сможете отображать обновленные смайлы пользователям даже на Android 4.4, без каких-либо дополнительных усилий с чьей-либо стороны.

Однако есть небольшая загвоздка. Загвоздка в том, что это изменение, ориентированное на ядро ​​GMS, для работы которого требуются сервисы Google Play. Это не изменение AOSP для старых версий Android в том смысле, в каком оно было в первом решении, и на самом деле этого не может быть из-за особенностей работы времени и физики.

Политика Android Emoji для Android 12

В дополнение к этим моментам Google также добавил политику Android Emoji для приложений, работающих на Android 12 и более поздних версиях. Эти приложения должны соответствовать последней версии Unicode в течение 4 месяцев с момента их публичного доступа, и они должны сделать это одним из следующих трех способов:

  • Если AppCompat уже используется, убедитесь, что эмодзи включены.
  • Используйте существующую библиотеку EmojiCompat на всех поверхностях приложения. Это должно работать с пользовательскими представлениями, которые напрямую используют StaticLayout.
  • Обновите обработку и шрифты/изображения для смайлов на основе последней версии Unicode.

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

У Google есть ресурсы для разработчиков приложений, позволяющие решить проблемы с эмодзи, и мы рекомендуем вам их проверить:

  • Саммит разработчиков Android 2021: отображение ВСЕХ смайлов в вашем приложении (и почему это важно)
  • Документация для разработчиков Android: поддержка современных смайлов
  • Правила программы для разработчиков: объявление от 27 октября 2021 г. – Правила использования эмодзи для Android

Android 12L и Юникод 14

Android 12L, который был запущен вчера поставляется с Поддержка Юникод 14 (с помощью 9to5Google). Юникод 14.0 включает следующие новые смайлы:

  • Тающая Лицо
  • Лицо с открытыми глазами и закрытым ртом
  • Лицо с выглядывающим глазом
  • Приветствуя лицо
  • Пунктирная линия лица
  • Лицо с диагональным ртом
  • Лицо, сдерживающее слезы
  • Правая рука
  • Левая рука
  • Ладонь вниз
  • Ладонь вверх
  • Рука со скрещенными указательным и большим пальцами
  • Индекс, указывающий на зрителя
  • Сердце Руки
  • Кусая губу
  • Человек с короной
  • Беременный мужчина
  • Беременный человек
  • Тролль
  • Коралл
  • Лотос
  • Пустое гнездо
  • Гнездо с яйцами
  • Бобы
  • Лить жидкость
  • Банка
  • Детская площадка
  • Колесо
  • Кольцевой буй
  • Хамса
  • Зеркальный шар
  • Низкий заряд батареи
  • Костыль
  • Рентгеновский
  • Пузыри
  • Идентификационная карта
  • Тяжелый знак равенства

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

Короче говоря, проблемы с эмодзи в Android скоро должны уйти в прошлое.