Google vill verkligen fixa Androids emoji-problem

Android har ett Emoji-problem, och Google tar en tvådelad strategi för att lösa det med uppdateringsbara systemteckensnitt och EmojiCompat.

Älska dem ❤ eller hata dem 🤬, emojis har blivit en basform av uttryck nu för tiden. Dessa små små blobbar lägger till känslor och avsikt till ord, och konversation över internet skulle vara ofullständig utan dem. De är en stor sak även för mellanmänskliga konversationer - varför slösa tid på att säga många ord när emoji gör ett trick? Så det kommer inte som någon överraskning att Google har tagit en titt på Android och tänkt att det har ett emoji-problem, och med Android 12, försöker den fixa det.

Android och dess emoji-problem

Emojis är en stor sak. Emojianvändningen är på den högsta nivån någonsin, och användare på vissa appar skickar miljarder emojis varje dag. Att mata och hänga med i dessa förändringar är det Unicode-standard, och den får ofta uppdateringar som lägger till nya emojis. Dessa nya emojis kretsar kring nya användningsfall, trender och till och med variationer för att göra dem bättre representanter för mångfald och inkludering.

I dess Presentation för Android Dev Summit 2021, säger Google att 96 % av Android-användarna inte ser de senaste emojierna, i skarp kontrast till de 16 % av iOS-användarna som inte kan se den senaste emojin. De 100 bästa emojierna utgör ~82 % av de totala emoji-andelarna. Men för 20 % av dessa delningar skickar avsändaren en emoji men mottagaren ser bara en "tofu" eller den trasiga bild betecknad med en ruta med ett X i, vilket betyder att deras telefonsystem inte har den relevanta emojin till visa.

Problemen slutar inte med tofus. I vissa situationer när det gäller nyare emojis och äldre Android-versioner blir emojin som visas en formelrepresentation som kräver att användarna gör lite mental gymnastik för att förstå vad som verkligen händer på.

Innan Android 12, när Unicode får nya emojis, behövde vi vänta på en Android OS-uppgradering till nå våra telefoner för att ge stöd för emojin, innan vi faktiskt kan göra dem till en del av vårt internet jargong. Och vi vet alla hur dålig Androids uppdateringssituation faktiskt är. Ja, det har blivit bättre. Men om du inte har ett flaggskepp är chansen stor att du fortfarande tar ett par månader innan den senaste uppdateringen når din enhet i en stabil version. Det finns en god chans att fler nya emojis har lagts till under denna tidsfördröjning, vilket håller dig borta från det aktuella språkspråket.

Det är uppenbart att det finns ett problem här, och det måste finnas en lösning. Google satte upp ett mål för sig att göra varje emoji tillgänglig för alla Android-användare i alla appar, och det tar en tvådelad strategi för att uppnå detta.

Lösning 1 av 2: Uppdaterbara systemteckensnitt (Android 12 och senare)

Från och med Android S (Android 12) har Google introducerat uppdateringsbara systemteckensnitt, och det första teckensnittet som de kommer att uppdatera är emoji-teckensnittet.

Vi har pratat om Uppdaterbara systemteckensnitt tidigare, nästan ett år sedan faktiskt. I Android 11 och lägre lagras alla teckensnitt på Android i systempartitionen, och mer specifikt under /system/fonts katalog. Emojis, i synnerhet, finns i filen som kallas NotoColorEmoji.ttf. Systempartitionen är skrivskyddad, och uppdatering av alla filer inom partitionen kräver en systemuppdatering medan partitionen inte är monterad. Så de enda sätten att få nya typsnitt och nya emojis är att vänta på en officiell OTA-uppdatering eller installera det själv inofficiellt via root.

Med Android 12 och uppdateringsbara systemteckensnitt, teckensnittsfiler lagras/data/fonts/files, och tillgänglig att läsa för alla appar men är endast skrivbar av system_server och i det. På så sätt kan Google skicka ut uppdaterade teckensnittsfiler och appar kan läsa dem för den mest uppdaterade informationen oavsett när den senaste Android-systemuppdateringen var på telefonen. Som apputvecklare och även som användare behöver du aldrig tänka på emoji-stöd igen på en Android 12+-enhet.

Lösning 2 av 2: EmojiCompat med AppCompat 1.4 (Android 4.4. till Android 11)

Android 12 lanserades precis för några veckor sedan i stallgrenen, och det kommer att ta ett tag innan du ser spridning över Android-ekosystemet. Så du behöver en lösning som fungerar på Android 11 och senare. Den lösningen är EmojiCompat stödbibliotek.

AppCompat 1.4 innehåller EmojiCompat, vilket innebär att alla appar som använder AppCompat 1.4 automatiskt kommer att stödja moderna emojis. Som apputvecklare behöver du bara integrera/bumpa din AppCompat-version till 1.4 och du kommer att visa uppdaterade emojis för användare även på Android 4.4, utan att behöva någon ytterligare ansträngning från någons sida.

Det finns dock en liten hake. Haken är att detta är en GMS-kärnorienterad förändring som kräver att Google Play Services fungerar. Det här är inte en förändring av AOSP för äldre Android-versioner på det sätt som den första lösningen är, och det kan inte riktigt vara det heller på grund av hur tid och fysik fungerar.

Android Emoji Policy för Android 12

Utöver dessa höjdpunkter har Google också lagt till en Android Emoji Policy för appar som körs på Android 12 och senare. Dessa appar måste överensstämma med den senaste Unicode-versionen inom fyra månader efter det att de är offentliga tillgängliga, och de måste göra det på något av dessa tre sätt:

  • Om AppCompat redan används, se till att emoji är aktiverad.
  • Använd ett befintligt EmojiCompat-bibliotek på alla ytor i appen. Detta bör fungera med anpassade vyer som direkt använder StaticLayout.
  • Uppdatera hanteringen och teckensnitt/bilder för emoji baserat på den senaste versionen av Unicode.

Om jag förstår det är det sista alternativet bara att be utvecklarna att bunta emojis i sin app. Hur som helst måste utvecklare se till att de uppfyller dessa krav före februari 2022.

Google har resurser för apputvecklare att åtgärda sina emojiproblem, och vi rekommenderar att du kollar in dem:

  • Android Developer Summit 2021: Visa ALLA emojis i din app (och varför det är viktigt)
  • Android-utvecklardokumentation: Stöd moderna emojis
  • Programpolicy för utvecklare: Meddelande 27 oktober 2021 – Android Emoji Policy

Android 12L och Unicode 14

Android 12L det var lanserades igår kommer med Unicode 14-stöd (via 9to5Google). Unicode 14.0 innehåller följande nya emoji:

  • Smältande ansikte
  • Ansikte med öppna ögon och hand över mun
  • Ansikte med Peeking Eye
  • Hälsande ansikte
  • Prickad linje Ansikte
  • Ansikte med diagonal mun
  • Ansikte som håller tillbaka tårar
  • Höger hand
  • Vänsterhand
  • Palm Down Hand
  • Palm Upp Hand
  • Hand med pekfinger och tumme i kors
  • Index som pekar på tittaren
  • Hjärta händer
  • Bitande läpp
  • Person med krona
  • Gravid man
  • Gravid person
  • Troll
  • Korall
  • Lotus
  • Tomt bo
  • Bo med ägg
  • Bönor
  • Hällande vätska
  • Burk
  • Lekplats rutschkana
  • Hjul
  • Ringboj
  • Hamsa
  • Spegelboll
  • Låg batterinivå
  • Krycka
  • Röntgen
  • Bubblor
  • Id-kort
  • Tungt lika tecken

Dessutom innehåller releasen variationer och hudtoner av dessa nya emoji, vilket ger totalt 112 nya mönster.

Lång historia kort, Androids emoji-problem borde snart vara ett minne blott.