इमोजी के स्टैंडर्ड सेट को हर साल यूनिकोड अपडेट करता है. ऐसा इसलिए, क्योंकि सभी तरह के ऐप्लिकेशन के लिए इमोजी का इस्तेमाल तेज़ी से बढ़ रहा है.
अगर आपका ऐप्लिकेशन इंटरनेट कॉन्टेंट दिखाता है या टेक्स्ट इनपुट की सुविधा देता है, तो हमारा सुझाव है कि आप इमोजी के नए फ़ॉन्ट इस्तेमाल करें. ऐसा न करने पर, बाद में इमोजी को तोफ़ू (☐) कहे जाने वाले छोटे स्क्वेयर बॉक्स के तौर पर दिखाया जा सकता है. इसके अलावा, इमोजी के क्रम को गलत तरीके से रेंडर किया जा सकता है.
Android के वर्शन 11 (एपीआई लेवल 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
लाइब्रेरी की डिपेंडेंसी है. इसे काम करने के लिए, किसी और कॉन्फ़िगरेशन की ज़रूरत नहीं होती.
लिखने की सुविधा में इमोजी इस्तेमाल करने की सुविधा
मार्च 2023 के बीओएम (Compose UI 1.4) में, इमोजी के नए वर्शन के लिए सहायता उपलब्ध है. इसमें Android के पुराने वर्शन के साथ बैकवर्ड कंपैटिबिलिटी भी शामिल है. यह सुविधा, एपीआई 21 तक के वर्शन के साथ काम करती है. इस पेज पर, व्यू सिस्टम में नए इमोजी को कॉन्फ़िगर करने का तरीका बताया गया है. ज़्यादा जानकारी के लिए, लिखते समय इमोजी का इस्तेमाल करना पेज देखें.
ज़रूरी शर्तें
यह पुष्टि करने के लिए कि आपका ऐप्लिकेशन नए इमोजी को सही तरीके से दिखाता है, इसे Android 10 (एपीआई लेवल 29) या इससे पहले के वर्शन पर काम करने वाले डिवाइस पर लॉन्च करें. इस पेज पर, आधुनिक इमोजी शामिल हैं. इन्हें टेस्टिंग के लिए दिखाया जा सकता है.
नए इमोजी के लिए AppCompat का इस्तेमाल करना
AppCompat
1.4 में इमोजी इस्तेमाल करने की सुविधा शामिल है.
इमोजी के लिए AppCompat
का इस्तेमाल करने के लिए, यह तरीका अपनाएं:
देखें कि आपका मॉड्यूल,
AppCompat
लाइब्रेरी के 1.4.0-alpha01 या इसके बाद के वर्शन पर निर्भर हो.build.gradle // Ensure version is 1.4.0-alpha01 or higher. implementation "androidx.appcompat:appcompat.$appcompatVersion"
पक्का करें कि टेक्स्ट दिखाने वाली सभी गतिविधियां,
AppCompatActivity
क्लास को बढ़ाएं.Kotlin
MyActivity.kt class MyActivity: AppCompatActivity { ... }
Java
MyActivity.java class MyActivity extends AppCompatActivity { ... }
Android 10 या इससे पहले के वर्शन पर काम करने वाले डिवाइस पर अपना ऐप्लिकेशन लॉन्च करके, इंटिग्रेशन की जांच करें. साथ ही, यहां दी गई टेस्ट स्ट्रिंग दिखाएं. पक्का करें कि सभी वर्ण सही तरीके से रेंडर हो रहे हों.
- 16.0: , , 🇨🇶
- 15.1: 🐦🔥, 🧑🧑🧒🧒, 👩🏽🦽➡️, 🇲🇶
- 15.0: 🩷, 🫸🏼, 🐦⬛
- 14.0: 🫠, 🫱🏼🫲🏿, 🫰🏽
- 13.1: 😶🌫️, 🧔🏻♀️, 🧑🏿❤️🧑🏾
- 13.0: 🥲, 🥷🏿, 🐻❄️
- 12.1: 🧑🏻🦰, 🧑🏿🦯, 👩🏻🤝👩🏼
- 12.0: 🦩, 🦻🏿, 👩🏼🤝👩🏻
आपका ऐप्लिकेशन, उन सभी डिवाइसों पर अपने-आप पुराने वर्शन के साथ काम करने वाले इमोजी दिखाता है जो emoji2
के साथ काम करने वाले डाउनलोड किए जा सकने वाले फ़ॉन्ट उपलब्ध कराते हैं. जैसे, Google Play services के साथ काम करने वाले डिवाइस.
अगर आपका ऐप्लिकेशन AppCompat का इस्तेमाल कर रहा है, लेकिन उसमें टोफ़ू (☐) दिख रहा है
कुछ मामलों में, AppCompat
लाइब्रेरी जोड़ने के बावजूद, आपका ऐप्लिकेशन सही इमोजी के बजाय टोफ़ू दिखा सकता है. इसकी संभावित वजहें और समाधान यहां दिए गए हैं.
आपने हाल ही में फ़्लैश किए गए डिवाइस या नए एम्युलेटर पर ऐप्लिकेशन चलाया हो
ऐप्लिकेशन के Google Play services का डेटा मिटाएं, ताकि स्टार्टअप के दौरान फ़ॉन्ट की कैश मेमोरी में सेव होने की समस्या ठीक हो सके. आम तौर पर, इससे कुछ घंटों में समस्या ठीक हो जाती है.
ऐप्लिकेशन का डेटा मिटाने के लिए, यह तरीका अपनाएं:
Android डिवाइस पर, सेटिंग खोलें.
ऐप्लिकेशन और सूचनाएं पर टैप करें.
सभी ऐप्लिकेशन देखें या ऐप्लिकेशन की जानकारी पर टैप करें.
ऐप्लिकेशन में स्क्रोल करें और Google Play services पर टैप करें.
स्टोरेज और कैश मेमोरी पर टैप करें.
कैश मेमोरी मिटाएं पर टैप करें.
आपका ऐप्लिकेशन, AppCompat की टेक्स्ट से जुड़ी क्लास का इस्तेमाल नहीं कर रहा है
ऐसा तब हो सकता है, जब आपने AppCompatActivity
को नहीं बढ़ाया हो या आपने कोड में कोई व्यू इंस्टैंटिएट किया हो, जैसे कि TextView
. इन बातों का ध्यान रखें:
- यह गतिविधि
AppCompatActivity
तक चलती है. - अगर कोड में व्यू बनाया जा रहा है, तो सही
AppCompat
सबक्लास का इस्तेमाल करें.
एक्सएमएल को बड़ा करते समय, TextView
की जगह AppCompatActivity
अपने-आप बड़ा हो जाता है. इसलिए, आपको अपने एक्सएमएल को अपडेट करने की ज़रूरत नहीं है.AppCompatTextView
टेस्ट फ़ोन में डाउनलोड किए जा सकने वाले फ़ॉन्ट काम नहीं करते
पुष्टि करें कि DefaultEmojiCompatConfig.create
एक नॉन-नल कॉन्फ़िगरेशन दिखाता है.
एपीआई लेवल के पुराने वर्शन वाले किसी एम्युलेटर ने Google Play services को अपग्रेड नहीं किया है
अगर पहले के एपीआई लेवल पर इम्यूलेटर का इस्तेमाल किया जा रहा है, तो आपको emoji2
के लिए बंडल की गई Google Play services को अपडेट करना पड़ सकता है, ताकि फ़ॉन्ट उपलब्ध कराने वाली कंपनी का पता चल सके. इसके लिए, एम्युलेटर पर Google Play Store में लॉग इन करें.
यह पुष्टि करने के लिए कि आपके डिवाइस पर सही वर्शन इंस्टॉल है, यह तरीका अपनाएं:
यह कमांड चलाएं:
adb shell dumpsys package com.google.android.gms | grep version
देखें कि
versionCode
की वैल्यू,211200000
से ज़्यादा हो.
AppCompat के बिना इमोजी की सुविधा
अगर आपका ऐप्लिकेशन AppCompat
को शामिल नहीं कर सकता, तो वह सीधे emoji2
का इस्तेमाल कर सकता है. इसके लिए ज़्यादा काम करना पड़ता है. इसलिए, इस तरीके का इस्तेमाल सिर्फ़ तब करें, जब आपका ऐप्लिकेशन AppCompat
का इस्तेमाल नहीं कर सकता.
AppCompat
लाइब्रेरी के बिना इमोजी इस्तेमाल करने के लिए, यह तरीका अपनाएं:
अपने ऐप्लिकेशन की
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
लागू किया गया है.एक्सएमएल और कोड में, जहां भी
TextView
,EditText
याButton
का इस्तेमाल किया गया है वहांEmojiTextView
,EmojiEditText
याEmojiButton
का इस्तेमाल करें.activity_main.xml <androidx.emoji2.widget.EmojiTextView ... /> <androidx.emoji2.widget.EmojiEditText ... /> <androidx.emoji2.widget.EmojiButton ... />
emoji2
मॉड्यूल को शामिल करने पर, सिस्टम डिफ़ॉल्ट रूप से डाउनलोड किए जा सकने वाले फ़ॉन्ट उपलब्ध कराने वाली कंपनी का इस्तेमाल करता है. इससे, ऐप्लिकेशन शुरू होने के कुछ समय बाद इमोजी फ़ॉन्ट अपने-आप लोड हो जाता है. इसके बाद, किसी और कॉन्फ़िगरेशन की ज़रूरत नहीं होती.इंटिग्रेशन की जांच करने के लिए, अपने ऐप्लिकेशन को Android 11 या इससे पहले के वर्शन पर चलने वाले डिवाइस पर लॉन्च करें. साथ ही, यहां दी गई टेस्ट स्ट्रिंग दिखाएं. पक्का करें कि सभी वर्ण सही तरीके से रेंडर हो रहे हों.
- 16.0: , , 🇨🇶
- 15.1: 🐦🔥, 🧑🧑🧒🧒, 👩🏽🦽➡️, 🇲🇶
- 15.0: 🩷, 🫸🏼, 🐦⬛
- 14.0: 🫠, 🫱🏼🫲🏿, 🫰🏽
- 13.1: 😶🌫️, 🧔🏻♀️, 🧑🏿❤️🧑🏾
- 13.0: 🥲, 🥷🏿, 🐻❄️
- 12.1: 🧑🏻🦰, 🧑🏿🦯, 👩🏻🤝👩🏼
- 12.0: 🦩, 🦻🏿, 👩🏼🤝👩🏻
विजेट के बिना EmojiCompat का इस्तेमाल करना
EmojiCompat
सही इमेज रेंडर करने के लिए, EmojiSpan
का इस्तेमाल करता है. इसलिए, इसे दिए गए किसी भी CharSequence
ऑब्जेक्ट को EmojiSpan
ऑब्जेक्ट वाले Spanned
ऑब्जेक्ट में बदलना होगा.
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
क्लास की मदद से, कीबोर्ड उन इमोजी को रेंडर कर सकते हैं जिन्हें ऐप्लिकेशन इस्तेमाल कर रहा है. इनपुट के तरीके के एडिटर (आईएमई), getEmojiMatch()
तरीके का इस्तेमाल करके यह देख सकते हैं कि EmojiCompat
का कोई इंस्टेंस, इमोजी रेंडर कर सकता है या नहीं. यह तरीका, इमोजी का CharSequence
लेता है और अगर EmojiCompat
इमोजी का पता लगा सकता है और उसे रेंडर कर सकता है, तो true
दिखाता है.
कीबोर्ड, 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
का इस्तेमाल नहीं करते हैं.
emoji2-views-helper
लाइब्रेरी जोड़ें:implementation "androidx.emoji2:emoji2-views-helper:$emojiVersion"
अपने ऐप्लिकेशन के कस्टम व्यू में
EmojiTextViewHelper
याEmojiEditTextHelper
शामिल करने के लिए, दिए गए निर्देशों का पालन करें.Android 10 या इससे पहले के वर्शन पर काम करने वाले डिवाइस पर अपना ऐप्लिकेशन लॉन्च करके, इंटिग्रेशन की जांच करें. साथ ही, यहां दी गई टेस्ट स्ट्रिंग दिखाएं. पक्का करें कि सभी वर्ण सही तरीके से रेंडर हो रहे हों.
- 16.0: , , 🇨🇶
- 15.1: 🐦🔥, 🧑🧑🧒🧒, 👩🏽🦽➡️, 🇲🇶
- 15.0: 🩷, 🫸🏼, 🐦⬛
- 14.0: 🫠, 🫱🏼🫲🏿, 🫰🏽
- 13.1: 😶🌫️, 🧔🏻♀️, 🧑🏿❤️🧑🏾
- 13.0: 🥲, 🥷🏿, 🐻❄️
- 12.1: 🧑🏻🦰, 🧑🏿🦯, 👩🏻🤝👩🏼
- 12.0: 🦩, 🦻🏿, 👩🏼🤝👩🏻
emoji2 को मैनेज करने के लिए वैकल्पिक सुविधाएं
अपने ऐप्लिकेशन में emoji2
लाइब्रेरी शामिल करने के बाद, इस सेक्शन में बताई गई वैकल्पिक सुविधाएं जोड़ी जा सकती हैं.
किसी दूसरे फ़ॉन्ट या डाउनलोड किए जा सकने वाले फ़ॉन्ट उपलब्ध कराने वाली सेवा का इस्तेमाल करने के लिए, emoji2 को कॉन्फ़िगर करना
emoji2
को किसी दूसरे फ़ॉन्ट या डाउनलोड किए जा सकने वाले फ़ॉन्ट उपलब्ध कराने वाली कंपनी का इस्तेमाल करने के लिए कॉन्फ़िगर करने के लिए, यह तरीका अपनाएं:
अपने मेनिफ़ेस्ट में यह जोड़कर,
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>
निम्न में से कोई एक कार्य करें:
DefaultEmojiCompatConfiguration.create(context)
को कॉल करके, डिफ़ॉल्ट कॉन्फ़िगरेशन का इस्तेमाल करें.EmojiCompat.Config
का इस्तेमाल करके, किसी दूसरे सोर्स से फ़ॉन्ट लोड करने के लिए अपना कॉन्फ़िगरेशन बनाएं. यह क्लास,EmojiCompat
के व्यवहार में बदलाव करने के लिए कई विकल्प देती है. इनके बारे में यहां बताया गया है.
EmojiCompat के व्यवहार में बदलाव करना
EmojiCompat
के व्यवहार में बदलाव करने के लिए, EmojiCompat.Config
के किसी इंस्टेंस का इस्तेमाल किया जा सकता है.
सबसे ज़रूरी कॉन्फ़िगरेशन विकल्प 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
आर्टफ़ैक्ट का इस्तेमाल करने के लिए, यह तरीका अपनाएं:
emoji2-bundled
औरemoji2
आर्टफ़ैक्ट शामिल करें:implementation "androidx.emoji2:emoji2:$emojiVersion" implementation "androidx.emoji2:emoji2-bundled:$emojiVersion"
बंडल किए गए कॉन्फ़िगरेशन का इस्तेमाल करने के लिए,
emoji2
को कॉन्फ़िगर करें:Kotlin
EmojiCompat.init(BundledEmojiCompatConfig(context))
Java
EmojiCompat.init(new BundledEmojiCompatConfig(context));
emojicompat
कोAppCompat
के साथ या इसके बिना शामिल करने के लिए, ऊपर दिया गया तरीका अपनाकर इंटिग्रेशन की जांच करें. पक्का करें कि टेस्ट स्ट्रिंग सही तरीके से दिख रही हो.- 16.0: , , 🇨🇶
- 15.1: 🐦🔥, 🧑🧑🧒🧒, 👩🏽🦽➡️, 🇲🇶
- 15.0: 🩷, 🫸🏼, 🐦⬛
- 14.0: 🫠, 🫱🏼🫲🏿, 🫰🏽
- 13.1: 😶🌫️, 🧔🏻♀️, 🧑🏿❤️🧑🏾
- 13.0: 🥲, 🥷🏿, 🐻❄️
- 12.1: 🧑🏻🦰, 🧑🏿🦯, 👩🏻🤝👩🏼
- 12.0: 🦩, 🦻🏿, 👩🏼🤝👩🏻
EmojiCompat के अपने-आप कॉन्फ़िगर होने का असर
सिस्टम, स्टार्टअप लाइब्रेरी EmojiCompatInitializer
और DefaultEmojiCompatConfig
का इस्तेमाल करके, डिफ़ॉल्ट कॉन्फ़िगरेशन लागू करता है.
आपके ऐप्लिकेशन में पहली ऐक्टिविटी फिर से शुरू होने के बाद, इनिशियलाइज़र, इमोजी फ़ॉन्ट लोड करने की प्रोसेस को शेड्यूल करता है. इस छोटी सी देरी से, आपका ऐप्लिकेशन अपना शुरुआती कॉन्टेंट दिखा पाता है. साथ ही, बैकग्राउंड थ्रेड में फ़ॉन्ट लोड होने की वजह से होने वाली संभावित देरी से भी बचा जा सकता है.
DefaultEmojiCompatConfig
, सिस्टम में इंस्टॉल किए गए ऐसे फ़ॉन्ट डाउनलोड करने की सुविधा देने वाले ऐप्लिकेशन को ढूंढता है जो EmojiCompat
इंटरफ़ेस लागू करता है. जैसे, Google Play services. Google Play services की सुविधा वाले डिवाइसों पर, यह Google Play services का इस्तेमाल करके फ़ॉन्ट लोड करता है.
इनिशियलाइज़र, इमोजी फ़ॉन्ट को लोड करने के लिए बैकग्राउंड थ्रेड बनाता है. साथ ही, फ़ॉन्ट डाउनलोड होने में 10 सेकंड लग सकते हैं. इसके बाद, यह टाइम आउट हो जाता है. फ़ॉन्ट डाउनलोड होने के बाद, बैकग्राउंड थ्रेड पर EmojiCompat
को शुरू होने में करीब 150 मिलीसेकंड लगते हैं.
EmojiCompat
को शुरू करने में देरी करें. भले ही, आपने EmojiCompatInitializer
को बंद कर दिया हो. अगर आपने मैन्युअल तरीके से कॉन्फ़िगर किया है
EmojiCompat
, तो अपने ऐप्लिकेशन की पहली स्क्रीन दिखने के बाद EmojiCompat.load()
को कॉल करें. इससे पहली स्क्रीन लोड होने के दौरान बैकग्राउंड में होने वाले टकराव से बचा जा सकेगा.
लोड होने के बाद, EmojiCompat
इमोजी के मेटाडेटा को सेव करने के लिए, करीब 300 केबी रैम का इस्तेमाल करता है.