ชุดอีโมจิมาตรฐานจะได้รับการอัปเดตเป็นประจำทุกปีโดย Unicode เนื่องจากการใช้งานอีโมจิเพิ่มขึ้นอย่างรวดเร็วสำหรับแอปทุกประเภท
หากแอปแสดงเนื้อหาอินเทอร์เน็ตหรือให้ป้อนข้อความ เราขอแนะนําอย่างยิ่งให้รองรับแบบอักษรอีโมจิล่าสุด มิเช่นนั้น อีโมจิที่ตามมาอาจแสดงเป็นสี่เหลี่ยมจัตุรัสเล็กๆ ที่เรียกว่า tofu (☐) หรือลำดับอีโมจิอื่นๆ ที่แสดงผลไม่ถูกต้อง
Android เวอร์ชัน 11 (API ระดับ 30) และต่ำกว่าอัปเดตแบบอักษรอีโมจิไม่ได้ แอปที่แสดงอีโมจิในเวอร์ชันดังกล่าวจึงต้องอัปเดตด้วยตนเอง
ตัวอย่างอีโมจิสมัยใหม่มีดังนี้
ตัวอย่าง | เวอร์ชัน |
---|---|
🫠 🫱🏼🫲🏿 🫰🏽 | 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 เวอร์ชันเก่าได้จนถึง API 21 หน้านี้อธิบายวิธีกำหนดค่าอีโมจิสมัยใหม่ในระบบ View ดูข้อมูลเพิ่มเติมได้ที่หน้าอีโมจิในโหมดเขียน
สิ่งที่ต้องมีก่อน
หากต้องการยืนยันว่าแอปแสดงอีโมจิใหม่อย่างถูกต้อง ให้เปิดแอปในอุปกรณ์ที่ใช้ Android 10 (API ระดับ 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
หากแอปของคุณใช้ AppCompat แต่แสดง Tofu (☐)
ในบางกรณี แอปอาจแสดงเต้าหู้แทนอีโมจิที่เหมาะสม แม้ว่าคุณจะเพิ่มคลัง AppCompat
แล้วก็ตาม คำอธิบายและวิธีแก้ปัญหาที่เป็นไปได้มีดังนี้
คุณเรียกใช้แอปในอุปกรณ์ที่เพิ่งแฟลชหรือโปรแกรมจำลองใหม่
ล้างข้อมูลบริการ Google Play ของแอปเพื่อล้างแคชแบบอักษรที่อาจเกิดขึ้นระหว่างการเริ่มต้น ซึ่งโดยปกติแล้วปัญหาจะได้รับการแก้ไขหลังจากผ่านไป 2-3 ชั่วโมง
หากต้องการล้างข้อมูลแอป ให้ทำดังนี้
เปิดการตั้งค่าในอุปกรณ์ที่ใช้ระบบปฏิบัติการ Android
แตะแอปและการแจ้งเตือน
แตะดูแอปทั้งหมดหรือข้อมูลแอป
เลื่อนดูแอปต่างๆ แล้วแตะบริการ Google Play
แตะพื้นที่เก็บข้อมูลและแคช
แตะล้างแคช
แอปของคุณไม่ได้ใช้คลาสที่เกี่ยวข้องกับข้อความของ AppCompat
กรณีนี้อาจเกิดขึ้นหากคุณไม่ได้ขยาย AppCompatActivity
หรือสร้างอินสแตนซ์ของมุมมองในโค้ด เช่น TextView
ตรวจสอบสิ่งต่อไปนี้
- กิจกรรมขยายเวลา
AppCompatActivity
- หากสร้างมุมมองในโค้ด ให้ใช้
AppCompat
คลาสย่อยที่ถูกต้อง
AppCompatActivity
จะขยาย AppCompatTextView
แทน
TextView
โดยอัตโนมัติเมื่อขยาย XML คุณจึงไม่ต้องอัปเดต XML
โทรศัพท์ที่ใช้ทดสอบไม่รองรับแบบอักษรที่ดาวน์โหลดได้
ยืนยันว่า DefaultEmojiCompatConfig.create
แสดงผลการกำหนดค่าที่ไม่ใช่ค่าว่าง
โปรแกรมจำลองใน API ระดับก่อนหน้ายังไม่ได้อัปเกรดบริการ Google Play
เมื่อใช้โปรแกรมจำลองใน API ระดับก่อนหน้า คุณอาจต้องอัปเดตบริการ Google Play ที่รวมไว้สำหรับ emoji2
เพื่อค้นหาผู้ให้บริการแบบอักษร โดยให้เข้าสู่ระบบ 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
ในแอปที่มีAppCompat
เนื่องจากแอปดังกล่าวใช้EmojiCompat
อยู่แล้วใน XML และโค้ด ไม่ว่าคุณจะใช้
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
หนึ่งๆ ให้เป็นออบเจ็กต์ 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
วิธีเพิ่มคลัง
emoji2-views-helper
implementation "androidx.emoji2:emoji2-views-helper:$emojiVersion"
ทำตามวิธีการเพื่อใส่
EmojiTextViewHelper
หรือEmojiEditTextHelper
ในมุมมองที่กำหนดเองของแอปทดสอบการผสานรวมโดยเปิดแอปในอุปกรณ์ที่ใช้ Android 10 หรือต่ำกว่า และแสดงสตริงทดสอบต่อไปนี้ ตรวจสอบว่าตัวละครทั้งหมดแสดงผลอย่างถูกต้อง
- 14.0: 🫠, 🫱🏼🫲🏿, 🫰🏽
- 13.1: 😶🌫️, 🧔🏻♀️, 🧑🏿❤️🧑🏾
- 13.0: 🥲, 🥷🏿, 🐻❄️
- 12.1: 🧑🏻🦰, 🧑🏿🦯, 👩🏻🤝👩🏼
- 12.0: 🦩, 🦻🏿, 👩🏼🤝👩🏻
ฟีเจอร์เสริมสำหรับการจัดการอีโมจิ2
หลังจากรวมไลบรารี emoji2
ไว้ในแอปแล้ว คุณจะเพิ่มฟีเจอร์ที่ไม่บังคับตามที่อธิบายไว้ในส่วนนี้ได้
กำหนดค่า emoji2 ให้ใช้แบบอักษรอื่นหรือผู้ให้บริการแบบอักษรที่ดาวน์โหลดได้
หากต้องการกำหนดค่า emoji2
ให้ใช้แบบอักษรหรือผู้ให้บริการแบบอักษรที่ดาวน์โหลดได้แบบอื่น ให้ทำดังนี้
ปิดใช้
EmojiCompatInitializer
โดยเพิ่มข้อมูลต่อไปนี้ลงในไฟล์ Manifest<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.Config
เพื่อแก้ไขลักษณะการทํางานของ EmojiCompat
ได้
ตัวเลือกการกําหนดค่าที่สําคัญที่สุดคือ setMetadataLoadStrategy()
ซึ่งควบคุมเวลาที่ EmojiCompat
จะโหลดแบบอักษร การโหลดแบบอักษรจะเริ่มขึ้นทันทีที่มีการเรียกใช้ EmojiCompat.load()
ซึ่งจะทริกเกอร์การดาวน์โหลดที่จำเป็น ระบบจะสร้างชุดข้อความสำหรับการดาวน์โหลดแบบอักษร เว้นแต่ว่าแอปของคุณจะมีชุดข้อความอยู่แล้ว
LOAD_STRATEGY_MANUAL
ช่วยให้คุณควบคุมได้เมื่อเรียกใช้ EmojiCompat.load()
และทำให้ระบบเริ่มโหลดแบบซิงค์กันในการเรียกใช้ EmojiCompat.init()
LOAD_STRATEGY_DEFAULT
แอปส่วนใหญ่ใช้ 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 MB เราขอแนะนำอย่างยิ่งให้แอปของคุณใช้แบบอักษรที่ดาวน์โหลดได้หากเป็นไปได้ ออบเจ็กต์ 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
ตรวจสอบว่าสตริงทดสอบแสดงอย่างถูกต้อง- 14.0: 🫠, 🫱🏼🫲🏿, 🫰🏽
- 13.1: 😶🌫️, 🧔🏻♀️, 🧑🏿❤️🧑🏾
- 13.0: 🥲, 🥷🏿, 🐻❄️
- 12.1: 🧑🏻🦰, 🧑🏿🦯, 👩🏻🤝👩🏼
- 12.0: 🦩, 🦻🏿, 👩🏼🤝👩🏻
ผลกระทบของการกำหนดค่า EmojiCompat อัตโนมัติ
ระบบจะใช้การกำหนดค่าเริ่มต้นโดยใช้ไลบรารีเริ่มต้น EmojiCompatInitializer
และ DefaultEmojiCompatConfig
หลังจากกิจกรรมแรกกลับมาทำงานในแอปแล้ว ตัวเริ่มต้นจะกำหนดเวลาการโหลดแบบอักษรอีโมจิ ความล่าช้าสั้นๆ นี้ช่วยให้แอปแสดงเนื้อหาเริ่มต้นได้โดยไม่เกิดความล่าช้าที่อาจเกิดขึ้นเนื่องจากการโหลดแบบอักษรในเธรดเบื้องหลัง
DefaultEmojiCompatConfig
จะค้นหาผู้ให้บริการแบบดาวน์โหลดได้ซึ่งติดตั้งในระบบและใช้อินเทอร์เฟซ EmojiCompat
เช่น บริการของ Google Play ในอุปกรณ์ที่ขับเคลื่อนโดยบริการ Google Play การดำเนินการนี้จะโหลดแบบอักษรโดยใช้บริการ Google Play
ตัวเริ่มต้นจะสร้างเธรดพื้นหลังเพื่อโหลดแบบอักษรอีโมจิ และการดาวน์โหลดแบบอักษรอาจใช้เวลาถึง 10 วินาทีก่อนที่จะหมดเวลา หลังจากดาวน์โหลดแบบอักษรแล้ว ระบบจะใช้เวลาประมาณ 150 มิลลิวินาทีในเธรดเบื้องหลังเพื่อเริ่มต้น EmojiCompat
เลื่อนเวลาเริ่มต้นEmojiCompat
แม้ว่าคุณจะปิดใช้EmojiCompatInitializer
ก็ตาม หากคุณกําหนดค่าด้วยตนเอง
EmojiCompat
ให้เรียกใช้ EmojiCompat.load()
หลังจากที่แสดงหน้าจอแรกของแอปเพื่อหลีกเลี่ยงการแย่งกันใช้ทรัพยากรเบื้องหลังกับการโหลดหน้าจอแรก
หลังจากโหลด EmojiCompat
จะใช้ RAM ประมาณ 300 KB เพื่อเก็บข้อมูลเมตาของอีโมจิ