इमोजी के स्टैंडर्ड सेट को यूनिकोड हर साल रीफ़्रेश करता है, क्योंकि सभी तरह के ऐप्लिकेशन में इमोजी का इस्तेमाल तेज़ी से बढ़ रहा है.
अगर आपका ऐप्लिकेशन इंटरनेट कॉन्टेंट दिखाता है या टेक्स्ट इनपुट की सुविधा देता है, तो हमारा सुझाव है कि आप नए इमोजी फ़ॉन्ट का इस्तेमाल करें. ऐसा न करने पर, बाद में डाले गए इमोजी, टोफ़ू (☐) नाम के छोटे स्क्वेयर बॉक्स के तौर पर दिख सकते हैं. इसके अलावा, गलत तरीके से रेंडर किए गए अन्य इमोजी के क्रम भी दिख सकते हैं.
Android 11 (एपीआई लेवल 30) और उससे पहले के वर्शन में, इमोजी फ़ॉन्ट को अपडेट नहीं किया जा सकता. इसलिए, उन वर्शन पर इमोजी दिखाने वाले ऐप्लिकेशन को मैन्युअल तरीके से अपडेट करना होगा.
यहां आधुनिक इमोजी के उदाहरण दिए गए हैं.
उदाहरण | वर्शन |
---|---|
🫠 🫱🏼🫲🏿 🫰🏽 | 14.0 (सितंबर 2021) |
😶🌫️ 🧔🏻♀️ 🧑🏿❤️🧑🏾 | 13.1 (सितंबर 2020) |
🥲 🥷🏿 🐻❄️ | 13.0 (मार्च 2020) |
🧑🏻🦰 🧑🏿🦯 👩🏻🤝👩🏼 | 12.1 (अक्टूबर 2019) |
🦩 🦻🏿 👩🏼🤝👩🏻 | 12.0 (फ़रवरी 2019) |
androidx.emoji2:emoji2
लाइब्रेरी, Android के पुराने वर्शन के साथ काम करने की सुविधा को आसान बनाती है. emoji2
लाइब्रेरी, AppCompat
लाइब्रेरी की डिपेंडेंसी है. इसे काम करने के लिए, किसी और कॉन्फ़िगरेशन की ज़रूरत नहीं होती.
'लिखें' सुविधा में इमोजी इस्तेमाल करने की सुविधा
मार्च 2023 का BOM (Compose UI 1.4), इमोजी के नए वर्शन के साथ काम करता है. इसमें, एपीआई 21 तक के पुराने Android वर्शन के साथ काम करने की सुविधा भी शामिल है. इस पेज पर, View सिस्टम में नए इमोजी को कॉन्फ़िगर करने का तरीका बताया गया है. ज़्यादा जानकारी के लिए, लिखने के दौरान इमोजी इस्तेमाल करना पेज देखें.
ज़रूरी शर्तें
यह पक्का करने के लिए कि आपका ऐप्लिकेशन नए इमोजी को सही तरीके से दिखाता है या नहीं, इसे 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 या उससे पहले के वर्शन पर काम करने वाले डिवाइस पर अपना ऐप्लिकेशन लॉन्च करके और नीचे दी गई टेस्ट स्ट्रिंग दिखाकर, अपने इंटिग्रेशन की जांच करें. पक्का करें कि सभी वर्ण सही तरीके से रेंडर हों.
- 14.0: 🫠, 🫱🏼🫲🏿, 🫰🏽
- 13.1: 😶🌫️, 🧔🏻♀️, 🧑🏿❤️🧑🏾
- 13.0: 🥲, 🥷🏿, 🐻❄️
- 12.1: 🧑🏻🦰, 🧑🏿🦯, 👩🏻🤝👩🏼
- 12.0: 🦩, 🦻🏿, 👩🏼🤝👩🏻
आपका ऐप्लिकेशन, उन सभी डिवाइसों पर पुराने वर्शन के साथ काम करने वाले इमोजी अपने-आप दिखाता है जिन पर emoji2
के साथ काम करने वाले डाउनलोड किए जा सकने वाले फ़ॉन्ट उपलब्ध होते हैं. जैसे, Google Play services के साथ काम करने वाले डिवाइस.
अगर आपका ऐप्लिकेशन AppCompat का इस्तेमाल कर रहा है, लेकिन tofu (☐) दिखाता है
कुछ मामलों में, आपका ऐप्लिकेशन सही इमोजी के बजाय टोफ़ू दिखा सकता है. भले ही, आपने AppCompat
लाइब्रेरी जोड़ी हो. इसकी संभावित वजहें और समाधान यहां दिए गए हैं.
आपने ऐप्लिकेशन को हाल ही में फ़्लैश किए गए डिवाइस या नए एमुलेटर पर चलाया हो
ऐप्लिकेशन के Google Play services का डेटा मिटाएं, ताकि स्टार्टअप के दौरान फ़ॉन्ट कैश मेमोरी में सेव न हो. आम तौर पर, कुछ घंटों के बाद यह समस्या ठीक हो जाती है.
ऐप्लिकेशन का डेटा मिटाने के लिए, यह तरीका अपनाएं:
Android डिवाइस पर सेटिंग खोलें.
ऐप्लिकेशन और सूचनाएं पर टैप करें.
सभी ऐप्लिकेशन देखें या ऐप्लिकेशन की जानकारी पर टैप करें.
ऐप्लिकेशन में स्क्रोल करें और Google Play services पर टैप करें.
डिवाइस का स्टोरेज और कैश मेमोरी पर टैप करें.
कैश मेमोरी मिटाएं पर टैप करें.
आपका ऐप्लिकेशन, AppCompat टेक्स्ट से जुड़ी क्लास का इस्तेमाल नहीं कर रहा है
ऐसा तब हो सकता है, जब AppCompatActivity
को एक्सटेंड न किया गया हो या कोड में TextView
जैसे किसी व्यू को इंस्टैंशिएट किया गया हो. इन बातों का ध्यान रखें:
- गतिविधि
AppCompatActivity
तक चलती है. - कोड में व्यू बनाते समय, सही
AppCompat
सब-क्लास का इस्तेमाल करें.
एक्सएमएल को फ़्लोर कराने पर, AppCompatActivity
TextView
के बजाय 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 या उससे पहले के वर्शन पर चलने वाले डिवाइस पर अपना ऐप्लिकेशन लॉन्च करें. साथ ही, यहां दी गई टेस्ट स्ट्रिंग दिखाएं. पक्का करें कि सभी वर्ण सही तरीके से रेंडर हों.
- 14.0: 🫠, 🫱🏼🫲🏿, 🫰🏽
- 13.1: 😶🌫️, 🧔🏻♀️, 🧑🏿❤️🧑🏾
- 13.0: 🥲, 🥷🏿, 🐻❄️
- 12.1: 🧑🏻🦰, 🧑🏿🦯, 👩🏻🤝👩🏼
- 12.0: 🦩, 🦻🏿, 👩🏼🤝👩🏻
विजेट के बिना EmojiCompat का इस्तेमाल करना
EmojiCompat
सही इमेज रेंडर करने के लिए, EmojiSpan
का इस्तेमाल करता है. इसलिए, इसे किसी भी दिए गए
CharSequence
ऑब्जेक्ट को EmojiSpan
ऑब्जेक्ट वाले
Spanned
ऑब्जेक्ट में बदलना होगा.
EmojiCompat क्लास, CharSequences
को Spanned
इंस्टेंस में बदलने के लिए process()
तरीका उपलब्ध कराती है. इस तरीके का इस्तेमाल करके, 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 या उससे पहले के वर्शन पर काम करने वाले डिवाइस पर अपना ऐप्लिकेशन लॉन्च करके, इंटिग्रेशन की जांच करें. इसके बाद, नीचे दी गई टेस्ट स्ट्रिंग दिखाएं. पक्का करें कि सभी वर्ण सही तरीके से रेंडर हों.
- 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()
को कॉल करने पर, EmojiCompat.load()
को एक साथ लोड किया जा सकता है.
ज़्यादातर ऐप्लिकेशन 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));
AppCompat
के साथ या इसके बिनाemojicompat
को शामिल करने के लिए, ऊपर दिए गए चरणों का पालन करके इंटिग्रेशन की जांच करें. पक्का करें कि टेस्ट स्ट्रिंग सही तरीके से दिख रही हो.- 14.0: 🫠, 🫱🏼🫲🏿, 🫰🏽
- 13.1: 😶🌫️, 🧔🏻♀️, 🧑🏿❤️🧑🏾
- 13.0: 🥲, 🥷🏿, 🐻❄️
- 12.1: 🧑🏻🦰, 🧑🏿🦯, 👩🏻🤝👩🏼
- 12.0: 🦩, 🦻🏿, 👩🏼🤝👩🏻
EmojiCompat के अपने-आप कॉन्फ़िगर होने का असर
सिस्टम, स्टार्टअप लाइब्रेरी,
EmojiCompatInitializer
, और
DefaultEmojiCompatConfig
का इस्तेमाल करके डिफ़ॉल्ट कॉन्फ़िगरेशन लागू करता है.
आपके ऐप्लिकेशन में पहली ऐक्टिविटी फिर से शुरू होने के बाद, इमोजी फ़ॉन्ट लोड करने की प्रोसेस को शुरू करने वाला टूल, इमोजी फ़ॉन्ट लोड करने का शेड्यूल तय करता है. इस छोटी सी देरी की वजह से, आपका ऐप्लिकेशन बैकग्राउंड थ्रेड में फ़ॉन्ट लोड होने की वजह से, बिना किसी इंतज़ार के अपना शुरुआती कॉन्टेंट दिखा पाता है.
DefaultEmojiCompatConfig
, सिस्टम में इंस्टॉल किए गए ऐसे फ़ॉन्ट की सेवा देने वाली कंपनी को ढूंढता है जिसने EmojiCompat
इंटरफ़ेस को लागू किया हो. जैसे, Google Play की सेवाएं. Google Play services की मदद से काम करने वाले डिवाइसों पर, यह फ़ॉन्ट को Google Play services का इस्तेमाल करके लोड करता है.
इमोजी फ़ॉन्ट को लोड करने के लिए, इनिशियलाइज़र एक बैकग्राउंड थ्रेड बनाता है. फ़ॉन्ट डाउनलोड होने में 10 सेकंड लग सकते हैं. फ़ॉन्ट डाउनलोड होने के बाद, बैकग्राउंड थ्रेड में EmojiCompat
को शुरू करने में करीब 150 मिलीसेकंड लगते हैं.
EmojiCompat
को शुरू करने में देरी करें. भले ही, आपने EmojiCompatInitializer
को बंद कर दिया हो. अगर आपने EmojiCompat
को मैन्युअल तरीके से कॉन्फ़िगर किया है, तो ऐप्लिकेशन की पहली स्क्रीन दिखने के बाद EmojiCompat.load()
को कॉल करें. इससे, पहली स्क्रीन लोड होने के दौरान बैकग्राउंड में होने वाली रुकावट से बचा जा सकता है.
लोड होने के बाद, EmojiCompat
इमोजी के मेटाडेटा को सेव करने के लिए, करीब 300 केबी रैम का इस्तेमाल करता है.