Unicode จะรีเฟรชชุดอีโมจิมาตรฐานทุกปี เนื่องจากมีการใช้อีโมจิเพิ่มขึ้นอย่างรวดเร็วในแอปทุกประเภท
หากแอปแสดงเนื้อหาจากอินเทอร์เน็ตหรือให้ป้อนข้อความ เราขอแนะนำเป็นอย่างยิ่ง ให้รองรับแบบอักษรอีโมจิล่าสุด มิเช่นนั้น อีโมจิรุ่นใหม่ๆ อาจแสดงเป็นกล่องสี่เหลี่ยมขนาดเล็กที่เรียกว่าเต้าหู้ (☐) หรือลำดับอีโมจิอื่นๆ ที่แสดงผลไม่ถูกต้อง
Android เวอร์ชัน 11 (API ระดับ 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 เวอร์ชันเก่าจนถึง 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 หรือต่ำกว่า แล้วแสดงสตริงทดสอบต่อไปนี้ ตรวจสอบว่าอักขระทั้งหมด แสดงอย่างถูกต้อง
- 16.0: , , 🇨🇶
- 15.1: 🐦🔥, 🧑🧑🧒🧒, 👩🏽🦽➡️, 🇲🇶
- 15.0: 🩷, 🫸🏼, 🐦⬛
- 14.0: 🫠, 🫱🏼🫲🏿, 🫰🏽
- 13.1: 😶🌫️, 🧔🏻♀️, 🧑🏿❤️🧑🏾
- 13.0: 🥲, 🥷🏿, 🐻❄️
- 12.1: 🧑🏻🦰, 🧑🏿🦯, 👩🏻🤝👩🏼
- 12.0: 🦩, 🦻🏿, 👩🏼🤝👩🏻
แอปจะแสดงอีโมจิที่เข้ากันได้แบบย้อนหลังโดยอัตโนมัติในอุปกรณ์ทั้งหมดที่
มีผู้ให้บริการแบบอักษรที่ดาวน์โหลดได้ซึ่งเข้ากันได้กับ emoji2
เช่น อุปกรณ์ที่
ขับเคลื่อนโดยบริการ Google Play
หากแอปใช้ AppCompat แต่แสดงสี่เหลี่ยม (☐)
ในบางกรณี แอปอาจแสดงเต้าหู้แทนอีโมจิที่ถูกต้อง แม้ว่าคุณจะเพิ่มไลบรารี 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
เนื่องจากมีการติดตั้งใช้งาน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 หรือต่ำกว่า และแสดงสตริงทดสอบต่อไปนี้ ตรวจสอบว่าอักขระทั้งหมด แสดงอย่างถูกต้อง
- 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
เพิ่มไลบรารี
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
โดยเพิ่มรายการต่อไปนี้ลงในไฟล์ 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()
และ
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
เพิ่ม Listener การเริ่มต้น
คลาส 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
ตรวจสอบว่าสตริงทดสอบ แสดงอย่างถูกต้อง- 16.0: , , 🇨🇶
- 15.1: 🐦🔥, 🧑🧑🧒🧒, 👩🏽🦽➡️, 🇲🇶
- 15.0: 🩷, 🫸🏼, 🐦⬛
- 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 เพื่อจัดเก็บข้อมูลเมตาของอีโมจิ