إتاحة الرموز التعبيرية الحديثة

تجربة طريقة Compose
‫Jetpack Compose هي مجموعة أدوات واجهة المستخدم المقترَحة لنظام التشغيل Android. تعرَّف على كيفية إتاحة استخدام الرموز التعبيرية في Compose.

يتم تحديث مجموعة رموز الإيموجي العادية سنويًا من قِبل Unicode، حيث يتزايد استخدام رموز الإيموجي بسرعة في جميع أنواع التطبيقات.

إذا كان تطبيقك يعرض محتوى من الإنترنت أو يوفّر إمكانية إدخال نص، ننصحك بشدة بإتاحة أحدث خطوط الإيموجي. وإلا، قد يتم عرض الإيموجي اللاحق كمربّع صغير يُسمى توفو (☐) أو كسلاسل إيموجي أخرى معروضة بشكل غير صحيح.

لا يمكن تحديث خطوط الإيموجي في الإصدار 11 من نظام التشغيل Android (المستوى 30 لواجهة برمجة التطبيقات) والإصدارات الأقدم، لذا يجب تحديث التطبيقات التي تعرضها على هذه الإصدارات يدويًا.

في ما يلي أمثلة على رموز الإيموجي الحديثة.

أمثلة الإصدار
🫩 🪉 🇨🇶 ‫16.0 (سبتمبر 2024)
🐦‍🔥 🧑‍🧑‍🧒‍🧒 👩🏽‍🦽‍➡️ 🇲🇶 ‫15.1 (سبتمبر 2023)
🩷 🫸🏼 🐦‍⬛ ‫15.0 (سبتمبر 2022)
🫠 🫱🏼‍🫲🏿 🫰🏽 14.0 (سبتمبر 2021)
😶‍🌫️ 🧔🏻‍♀️ 🧑🏿‍❤️‍🧑🏾 ‫13.1 (سبتمبر 2020)
🥲 🥷🏿 🐻‍❄️ ‫13.0 (مارس 2020)
🧑🏻‍🦰 🧑🏿‍🦯 👩🏻‍🤝‍👩🏼 12.1 (أكتوبر 2019)
🦩 🦻🏿 👩🏼‍🤝‍👩🏻 ‫12.0 (فبراير 2019)

توفّر مكتبة androidx.emoji2:emoji2 توافقًا أسهل مع الأنظمة القديمة لإصدارات Android الأقدم. تعتمد مكتبة emoji2 على مكتبة AppCompat ولا تتطلّب أي إعدادات إضافية لتعمل.

إتاحة استخدام رموز الإيموجي في ميزة "الكتابة"

توفّر قائمة مكونات الصنف (BOM) لشهر مارس 2023 (Compose UI 1.4) إمكانية استخدام أحدث إصدار من الرموز التعبيرية، بما في ذلك التوافق مع الأنظمة القديمة مع الإصدارات القديمة من Android حتى المستوى 21 من واجهة برمجة التطبيقات. تتناول هذه الصفحة كيفية ضبط رموز الإيموجي الحديثة في نظام View. لمزيد من المعلومات، يُرجى الاطّلاع على صفحة الرموز التعبيرية في ميزة "الكتابة".

المتطلبات الأساسية

للتأكّد من أنّ تطبيقك يعرض رموز الإيموجي الأحدث بشكل صحيح، يمكنك تشغيله على جهاز يعمل بنظام التشغيل Android 10 (مستوى واجهة برمجة التطبيقات 29) أو إصدار أقدم. تتضمّن هذه الصفحة رموز إيموجي حديثة يمكنك عرضها للاختبار.

استخدام AppCompat لإتاحة أحدث رموز الإيموجي

يتضمّن الإصدار 1.4 من AppCompat إمكانية استخدام رموز الإيموجي.

لاستخدام AppCompat لإتاحة استخدام الإيموجي، اتّبِع الخطوات التالية:

  1. تأكَّد من أنّ الوحدة تعتمد على الإصدار 1.4.0-alpha01 أو إصدار أحدث من مكتبة AppCompat.

    build.gradle
    
    // Ensure version is 1.4.0-alpha01 or higher.
    implementation "androidx.appcompat:appcompat.$appcompatVersion"
    
  2. تأكَّد من أنّ جميع الأنشطة التي تعرض نصًا تستخدم الفئة AppCompatActivity.

    Kotlin

    MyActivity.kt
    
    class MyActivity: AppCompatActivity {
    ...
    }

    Java

    MyActivity.java
    
    class MyActivity extends AppCompatActivity {
    ...
    }
  3. اختبِر عملية الدمج من خلال تشغيل تطبيقك على جهاز يعمل بنظام التشغيل Android 10 أو إصدار أقدم وعرض سلسلة الاختبار التالية. تأكَّد من عرض جميع الأحرف بشكل صحيح.

    • ‫16.0: 🫩، 🪉، 🇨🇶
    • ‫15.1: 🐦‍🔥، 🧑‍🧑‍🧒‍🧒، 👩🏽‍🦽‍➡️، 🇲🇶
    • ‫15.0: 🩷، 🫸🏼، 🐦‍⬛
    • ‫14.0: 🫠، 🫱🏼‍🫲🏿، 🫰🏽
    • ‫13.1: 😶‍🌫️, 🧔🏻‍♀️, 🧑🏿‍❤️‍🧑🏾
    • الإصدار 13.0: 🥲 و🥷🏿 و🐻‍❄️
    • ‫12.1: 🧑🏻‍🦰، 🧑🏿‍🦯، 👩🏻‍🤝‍👩🏼
    • ‫12.0: 🦩، 🦻🏿، 👩🏼‍🤝‍👩🏻

يعرض تطبيقك تلقائيًا رموز الإيموجي المتوافقة مع الأنظمة القديمة على جميع الأجهزة التي توفّر موفّر خطوط قابلة للتنزيل ومتوافقة مع emoji2، مثل الأجهزة التي تعمل من خلال خدمات Google Play.

إذا كان تطبيقك يستخدم AppCompat ولكنّه يعرض مربّعات فارغة (☐)

في بعض الحالات، قد يعرض تطبيقك رمز tofu بدلاً من الإيموجي المناسب، حتى إذا أضفت مكتبة AppCompat. في ما يلي بعض التفسيرات والحلول المحتملة.

إذا كنت تشغّل التطبيق على جهاز تم تثبيت نظام تشغيل جديد عليه مؤخرًا أو على محاكي جديد

محو بيانات "خدمات Google Play" في التطبيق لمحو أي تخزين مؤقت للخطوط قد يحدث أثناء بدء التشغيل يؤدي ذلك عادةً إلى حلّ المشكلة بعد بضع ساعات.

لمحو بيانات التطبيق، اتّبِع الخطوات التالية:

  1. افتح الإعدادات على جهاز Android.

  2. انقر على التطبيقات والإشعارات.

  3. انقر على عرض كل التطبيقات أو معلومات التطبيق.

  4. انتقِل بين التطبيقات وانقر على خدمات Google Play.

  5. انقر على مساحة التخزين وذاكرة التخزين المؤقت.

  6. انقر على محو ذاكرة التخزين المؤقت.

لا يستخدم تطبيقك فئة متعلّقة بالنص في AppCompat

قد يحدث ذلك إذا لم يتم تمديد AppCompatActivity أو إذا تم إنشاء مثيل للعرض في الرمز، مثل TextView. تحقَّق مما يلي:

  • يوسّع النشاط AppCompatActivity.
  • في حال إنشاء العرض في الرمز البرمجي، استخدِم AppCompat subclass الصحيح.

يُضخِّم AppCompatActivity تلقائيًا AppCompatTextView بدلاً من TextView عند تضخيم ملف XML، لذا لست بحاجة إلى تعديل ملف XML.

لا يتيح الهاتف الاختباري استخدام الخطوط القابلة للتنزيل

تأكَّد من أنّ DefaultEmojiCompatConfig.create يعرض إعدادات غير فارغة.

لم تتم ترقية "خدمات Google Play" في محاكي يعمل بمستوى واجهة برمجة تطبيقات أقدم

عند استخدام محاكي على مستوى واجهة برمجة تطبيقات سابق، قد تحتاج إلى تحديث "خدمات Google Play" المجمّعة لنظام التشغيل emoji2 للعثور على موفّر الخطوط. لإجراء ذلك، سجِّل الدخول إلى "متجر Google Play" على المحاكي.

للتحقّق من تثبيت إصدار متوافق، اتّبِع الخطوات التالية:

  1. نفِّذ الأمر التالي:

    adb shell dumpsys package com.google.android.gms | grep version
    
  2. تأكَّد من أنّ قيمة versionCode أعلى من 211200000.

إتاحة استخدام رموز الإيموجي بدون AppCompat

إذا لم يتمكّن تطبيقك من تضمين AppCompat، يمكنه استخدام emoji2 مباشرةً. يتطلّب هذا الإجراء المزيد من العمل، لذا لا تستخدِم هذه الطريقة إلا إذا تعذّر على تطبيقك استخدام AppCompat.

لإتاحة استخدام الإيموجي بدون مكتبة AppCompat، اتّبِع الخطوات التالية:

  1. في ملف build.gradle الخاص بتطبيقك، أدرِج emoji2 وemoji2-views.

    build.gradle
    
    def emojiVersion = "1.0.0-alpha03"
    implementation "androidx.emoji2:emoji2:$emojiVersion"
    implementation "androidx.emoji2:emoji2-views:$emojiVersion"
    

    توفّر الوحدة emoji2-views فئات فرعية من TextView وButton وEditText التي تنفّذ EmojiCompat. لا تستخدمه في تطبيق يتضمّن AppCompat، لأنّه ينفّذ EmojiCompat.

  2. في ملفات XML والرموز البرمجية، أينما تستخدم TextView أو EditText أو Button، استخدِم EmojiTextView أو EmojiEditText أو EmojiButton بدلاً منها.

    activity_main.xml
    
    <androidx.emoji2.widget.EmojiTextView ... />
    <androidx.emoji2.widget.EmojiEditText ... />
    <androidx.emoji2.widget.EmojiButton ... />
    

    من خلال تضمين وحدة emoji2، يستخدم النظام موفّر الخطوط التلقائي القابل للتنزيل لتحميل خط الرموز التعبيرية تلقائيًا بعد وقت قصير من بدء تشغيل التطبيق. ولا يلزم إجراء أي إعدادات أخرى.

  3. لاختبار عملية الدمج، شغِّل تطبيقك على جهاز يعمل بنظام التشغيل Android 11 أو إصدار أقدم ويعرض سلاسل الاختبار التالية. تأكَّد من عرض جميع الأحرف بشكل صحيح.

    • ‫16.0: 🫩، 🪉، 🇨🇶
    • ‫15.1: 🐦‍🔥، 🧑‍🧑‍🧒‍🧒، 👩🏽‍🦽‍➡️، 🇲🇶
    • ‫15.0: 🩷، 🫸🏼، 🐦‍⬛
    • ‫14.0: 🫠، 🫱🏼‍🫲🏿، 🫰🏽
    • ‫13.1: 😶‍🌫️, 🧔🏻‍♀️, 🧑🏿‍❤️‍🧑🏾
    • الإصدار 13.0: 🥲 و🥷🏿 و🐻‍❄️
    • ‫12.1: 🧑🏻‍🦰، 🧑🏿‍🦯، 👩🏻‍🤝‍👩🏼
    • ‫12.0: 🦩، 🦻🏿، 👩🏼‍🤝‍👩🏻

استخدام EmojiCompat بدون التطبيقات المصغّرة

يستخدم EmojiCompat EmojiSpan لعرض الصور الصحيحة. لذلك، يجب تحويل أي عنصر CharSequence إلى عنصر Spanned يتضمّن عناصر EmojiSpan. توفّر فئة EmojiCompat طريقة process() لتحويل CharSequences إلى مثيلات Spanned. باستخدام هذه الطريقة، يمكنك استدعاء process() في الخلفية وتخزين النتائج مؤقتًا، ما يؤدي إلى تحسين أداء تطبيقك.

Kotlin

val processed = EmojiCompat.get().process("neutral face \uD83D\uDE10")

Java

CharSequence processed = EmojiCompat.get().process("neutral face \uD83D\uDE10");

استخدام EmojiCompat لمحرّرات أسلوب الإدخال

تتيح فئة EmojiCompat للوحات المفاتيح عرض الرموز التعبيرية المتوافقة مع التطبيق الذي تتفاعل معه. يمكن لمحرّرات أسلوب الإدخال (IME) استخدام طريقة getEmojiMatch() للتحقّق مما إذا كان بإمكان مثيل EmojiCompat عرض رمز إيموجي. تأخذ هذه الطريقة CharSequence لإيموجي وتُرجع true إذا كان بإمكان EmojiCompat رصد الإيموجي وعرضه.

يمكن للوحة المفاتيح أيضًا التحقّق من إصدار EmojiCompat الذي يتوافق معه التطبيق لتحديد الإيموجي الذي سيتم عرضه في لوحة الألوان. للتحقّق من الإصدار، إذا كان متاحًا، يمكن للوحة المفاتيح البحث عن المفاتيح التالية في حزمة EditorInfo.extras:

  • EDITOR_INFO_METAVERSION_KEY: يمثّل إصدار البيانات الوصفية للإيموجي التي يستخدمها التطبيق. إذا لم يكن هذا المفتاح موجودًا، يعني ذلك أنّ التطبيق لا يستخدم EmojiCompat.
  • EDITOR_INFO_REPLACE_ALL_KEY: إذا كان المفتاح متوفّرًا وتم ضبطه على true، يضبط التطبيق EmojiCompat لاستبدال جميع رموز الإيموجي، حتى إذا كانت متوفّرة في النظام.

مزيد من المعلومات حول كيفية ضبط مثيل EmojiCompat

استخدام الإيموجي في طرق العرض المخصّصة

إذا كان تطبيقك يتضمّن طرق عرض مخصّصة تمثّل فئات فرعية مباشرة أو غير مباشرة من TextView، مثل Button أو Switch أو EditText، وكان بإمكان طرق العرض هذه عرض محتوى من إنشاء المستخدمين، يجب أن تنفّذ كل طريقة عرض منها EmojiCompat.

تختلف العملية حسب ما إذا كان تطبيقك يستخدم مكتبة AppCompat.

إضافة طرق عرض مخصّصة للتطبيقات باستخدام AppCompat

إذا كان تطبيقك يستخدم AppCompat، يمكنك توسيع نطاق تنفيذ AppCompat بدلاً من تنفيذ النظام الأساسي. استخدِم الجدول التالي كدليل حول كيفية توسيع طرق العرض في AppCompat:

بدلاً من تمديد... التمديد
TextView AppCompatTextView
EditText AppCompatEditText
ToggleButton AppCompatToggleButton
Switch SwitchCompat
Button AppCompatButton
CheckedTextView AppCompatCheckedTextView
RadioButton AppCompatRadioButton
CheckBox AppCompatCheckBox
AutoCompleteTextView AppCompatAutoCompleteTextView
MultiAutoCompleteTextView AppCompatMultiAutoCompleteTextView

إضافة طرق عرض مخصّصة للتطبيقات التي لا تستخدم AppCompat

إذا كان تطبيقك لا يستخدم AppCompat، يمكنك استخدام أدوات المساعدة في دمج العرض في وحدة emoji2-views-helper المصمَّمة للاستخدام في طرق العرض المخصّصة. هذه هي المساعدات التي تستخدمها مكتبة AppCompat لتنفيذ دعم الإيموجي.

أكمِل الخطوات التالية لإتاحة طرق العرض المخصّصة للتطبيقات التي لا تستخدم AppCompat.

  1. أضِف مكتبة emoji2-views-helper:

    implementation "androidx.emoji2:emoji2-views-helper:$emojiVersion"
    
  2. اتّبِع التعليمات لتضمين EmojiTextViewHelper أو EmojiEditTextHelper في طرق العرض المخصّصة لتطبيقك.

  3. اختبِر عملية الدمج من خلال تشغيل تطبيقك على جهاز يعمل بنظام التشغيل Android 10 أو إصدار أقدم وعرض سلسلة الاختبار التالية. تأكَّد من عرض جميع الأحرف بشكل صحيح.

    • ‫16.0: 🫩، 🪉، 🇨🇶
    • ‫15.1: 🐦‍🔥، 🧑‍🧑‍🧒‍🧒، 👩🏽‍🦽‍➡️، 🇲🇶
    • ‫15.0: 🩷، 🫸🏼، 🐦‍⬛
    • ‫14.0: 🫠، 🫱🏼‍🫲🏿، 🫰🏽
    • ‫13.1: 😶‍🌫️, 🧔🏻‍♀️, 🧑🏿‍❤️‍🧑🏾
    • الإصدار 13.0: 🥲 و🥷🏿 و🐻‍❄️
    • ‫12.1: 🧑🏻‍🦰، 🧑🏿‍🦯، 👩🏻‍🤝‍👩🏼
    • ‫12.0: 🦩، 🦻🏿، 👩🏼‍🤝‍👩🏻

ميزات اختيارية للتعامل مع emoji2

بعد تضمين مكتبة emoji2 في تطبيقك، يمكنك إضافة الميزات الاختيارية الموضَّحة في هذا القسم.

ضبط emoji2 لاستخدام خط مختلف أو موفّر خطوط قابلة للتنزيل

لضبط emoji2 لاستخدام خط مختلف أو موفّر خطوط قابلة للتنزيل، اتّبِع الخطوات التالية:

  1. أوقِف EmojiCompatInitializer من خلال إضافة ما يلي إلى بيان تطبيقك:

    <provider
    android:name="androidx.startup.InitializationProvider"
    android:authorities="${applicationId}.androidx-startup"
    android:exported="false"
    tools:node="merge">
    <meta-data android:name="androidx.emoji2.text.EmojiCompatInitializer"
               tools:node="remove" />
    </provider>
  2. نفّذ أيًا مما يلي:

    • استخدِم الإعدادات التلقائية من خلال استدعاء DefaultEmojiCompatConfiguration.create(context).

    • يمكنك إنشاء الإعدادات الخاصة بك لتحميل الخطوط من مصدر آخر باستخدام EmojiCompat.Config. توفّر هذه الفئة عدة خيارات لتعديل سلوك EmojiCompat، كما هو موضّح في القسم التالي.

تعديل سلوك EmojiCompat

يمكنك استخدام مثيل من EmojiCompat.Config لتعديل سلوك EmojiCompat.

أهم خيار ضبط هو setMetadataLoadStrategy()، الذي يتحكّم في وقت تحميل EmojiCompat للخط. يبدأ تحميل الخط فور استدعاء EmojiCompat.load()، ويؤدي ذلك إلى بدء أي عمليات تنزيل ضرورية. ينشئ النظام سلسلة محادثات لتنزيل الخط ما لم يوفّر تطبيقك سلسلة محادثات.

تتيح لك السمة LOAD_STRATEGY_MANUAL التحكّم في وقت استدعاء EmojiCompat.load()، وتجعل السمة LOAD_STRATEGY_DEFAULT التحميل يبدأ بشكل متزامن في الاستدعاء إلى EmojiCompat.init().

تستخدم معظم التطبيقات LOAD_STRATEGY_MANUAL لتتمكّن من التحكّم في سلسلة المحادثات وتوقيت تحميل الخطوط. يجب أن يؤجّل تطبيقك هذه العملية إلى ما بعد عرض الشاشة الأولى لتجنُّب حدوث وقت استجابة عند بدء التشغيل. يتبع EmojiCompatInitializer هذه الممارسة ويؤجل تحميل خط الرموز التعبيرية إلى ما بعد استئناف الشاشة الأولى.

استخدِم الطرق التالية من الصنف الأساسي لضبط جوانب أخرى من الإعدادات:

  • setReplaceAll(): تحدّد ما إذا كان EmojiCompat يستبدل جميع رموز الإيموجي التي يعثر عليها بنُسخ من EmojiSpan. تلقائيًا، عندما يستنتج EmojiCompat أنّ النظام يمكنه عرض رمز إيموجي، لا يستبدل هذا الرمز. عند ضبط هذه السمة على true، يستبدل EmojiCompat جميع رموز الإيموجي بعناصر EmojiSpan.
  • setEmojiSpanIndicatorEnabled(): تشير إلى ما إذا كان EmojiCompat يستبدل رمزًا تعبيريًا بعنصر EmojiSpan. عند ضبط السمة على true، يرسم EmojiCompat خلفية لـ EmojiSpan. تُستخدم هذه الطريقة بشكل أساسي لأغراض تصحيح الأخطاء.
  • setEmojiSpanIndicatorColor: يتم ضبط اللون للإشارة إلى EmojiSpan. ستكون القيمة التلقائية GREEN.
  • registerInitCallback(): يُعلم التطبيق بحالة إعداد EmojiCompat.

إضافة مستمعي الإعداد

توفّر الفئتان EmojiCompat وEmojiCompat.Config الطريقتَين registerInitCallback() و unregisterInitCallback() لتسجيل عمليات الاستدعاء الخاصة بالتهيئة وإلغاء تسجيلها. يستخدم تطبيقك عمليات الاستدعاء هذه للانتظار حتى تتم تهيئة EmojiCompat قبل معالجة الرموز التعبيرية في سلسلة مهام في الخلفية أو في عرض مخصّص.

لاستخدام هذه الطرق، أنشئ مثيلاً للفئة EmojiCompat.InitCallback. استدعِ هذه الطرق ومرِّرها في مثيل فئة EmojiCompat.InitCallback. عند نجاح عملية الإعداد، تستدعي الفئة EmojiCompat الطريقة onInitialized(). إذا تعذّر إعداد المكتبة، تستدعي الفئة EmojiCompat الطريقة onFailed().

للتحقّق من حالة الإعداد في أي وقت، يمكنك استدعاء الطريقة getLoadState(). تعرض هذه الطريقة إحدى القيم التالية: LOAD_STATE_LOADING أو LOAD_STATE_SUCCEEDED أو LOAD_STATE_FAILED.

إتاحة الخطوط المجمّعة مع emoji2

يمكنك استخدام العنصر emoji2-bundled لتجميع خط إيموجي في تطبيقك. ومع ذلك، نظرًا لأنّ حجم خط NotoColorEmoji يزيد عن 10 ميغابايت، ننصحك بشدة باستخدام تطبيقك للخطوط القابلة للتنزيل إن أمكن. تم تصميم العنصر emoji2-bundled للتطبيقات على الأجهزة التي لا تتيح استخدام الخطوط القابلة للتنزيل.

لاستخدام عنصر emoji2-bundled، اتّبِع الخطوات التالية:

  1. تضمين بيانات emoji2-bundled وemoji2:

    implementation "androidx.emoji2:emoji2:$emojiVersion"
    implementation "androidx.emoji2:emoji2-bundled:$emojiVersion"
    
  2. اضبط emoji2 لاستخدام الإعدادات المجمّعة:

    Kotlin

    EmojiCompat.init(BundledEmojiCompatConfig(context))

    Java

    EmojiCompat.init(new BundledEmojiCompatConfig(context));
  3. اختبِر عملية الدمج باتّباع الخطوات السابقة لتضمين emojicompat مع AppCompat أو بدونه. تأكَّد من عرض سلسلة الاختبار بشكل صحيح.

    • ‫16.0: 🫩، 🪉، 🇨🇶
    • ‫15.1: 🐦‍🔥، 🧑‍🧑‍🧒‍🧒، 👩🏽‍🦽‍➡️، 🇲🇶
    • ‫15.0: 🩷، 🫸🏼، 🐦‍⬛
    • ‫14.0: 🫠، 🫱🏼‍🫲🏿، 🫰🏽
    • ‫13.1: 😶‍🌫️, 🧔🏻‍♀️, 🧑🏿‍❤️‍🧑🏾
    • الإصدار 13.0: 🥲 و🥷🏿 و🐻‍❄️
    • ‫12.1: 🧑🏻‍🦰، 🧑🏿‍🦯، 👩🏻‍🤝‍👩🏼
    • ‫12.0: 🦩، 🦻🏿، 👩🏼‍🤝‍👩🏻

تأثير الإعداد التلقائي لمكتبة EmojiCompat

يطبّق النظام الإعدادات التلقائية باستخدام مكتبة بدء التشغيل، EmojiCompatInitializer، و DefaultEmojiCompatConfig.

بعد استئناف النشاط الأول في تطبيقك، يجدول المُهيئ تحميل خطوط الإيموجي. يتيح هذا التأخير القصير لتطبيقك عرض محتواه الأولي بدون أي وقت استجابة محتمل بسبب تحميل الخط في سلسلة محادثات في الخلفية.

يبحث DefaultEmojiCompatConfig عن موفّر خطوط قابل للتنزيل ومثبَّت على النظام ينفّذ واجهة EmojiCompat، مثل &quot;خدمات Google Play&quot;. على الأجهزة التي تعمل بـ "خدمات Google Play"، يتم تحميل الخط باستخدام "خدمات Google Play".

تنشئ أداة الإعداد سلسلة محادثات في الخلفية لتحميل خط الإيموجي، ويمكن أن يستغرق تنزيل الخط ما يصل إلى 10 ثوانٍ قبل انتهاء المهلة. بعد تنزيل الخط، يستغرق الأمر حوالي 150 مللي ثانية في سلسلة مهام في الخلفية لتهيئة EmojiCompat.

تأجيل إعداد EmojiCompat، حتى في حال إيقاف EmojiCompatInitializer. إذا كنت تضبط إعدادات EmojiCompat يدويًا، يمكنك استدعاء EmojiCompat.load() بعد عرض الشاشة الأولى من تطبيقك لتجنُّب حدوث تعارض في الخلفية مع تحميل الشاشة الأولى.

بعد التحميل، يستخدم EmojiCompat حوالي 300 كيلوبايت من ذاكرة الوصول العشوائي (RAM) للاحتفاظ بالبيانات الوصفية للإيموجي.