У 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 скоро должны уйти в прошлое.