ชุดอีโมจิมาตรฐานมีการรีเฟรชทุกปีด้วย 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_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()
สำหรับลงทะเบียนและยกเลิกการลงทะเบียน Callback ของการเริ่มต้น แอปของคุณใช้ Callback เหล่านี้เพื่อรอจนกว่า EmojiCompat
จะเริ่มทำงาน คุณจึงจะประมวลผลอีโมจิบนชุดข้อความในเบื้องหลังหรือในมุมมองที่กำหนดเอง
หากต้องการใช้เมธอดเหล่านี้ ให้สร้างอินสแตนซ์ของคลาส EmojiCompat.InitCallback
เรียกใช้เมธอดเหล่านี้และส่งผ่านอินสแตนซ์ของคลาส EmojiCompat.InitCallback
เมื่อเริ่มต้นใช้งานสำเร็จแล้ว คลาส EmojiCompat
จะเรียกใช้เมธอด onInitialized()
หากไลบรารีเริ่มต้นไม่สำเร็จ คลาส EmojiCompat
จะเรียกใช้เมธอด onFailed()
หากต้องการตรวจสอบสถานะการเริ่มต้นได้ทุกเมื่อ ให้เรียกใช้เมธอด getLoadState()
เมธอดนี้จะแสดงผลค่าใดค่าหนึ่งต่อไปนี้
LOAD_STATE_LOADING
,
LOAD_STATE_SUCCEEDED
หรือ
LOAD_STATE_FAILED
รองรับแบบอักษรที่มาพร้อมอีโมจิ2
คุณใช้อาร์ติแฟกต์ 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 เพื่อเก็บข้อมูลเมตาของอีโมจิ