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"ตรวจสอบว่ากิจกรรมทั้งหมดที่แสดงข้อความขยายคลาส
AppCompatActivityKotlin
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-viewsbuild.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: แสดงถึงเวอร์ชันของข้อมูลเมตาอีโมจิที่แอปใช้ หากไม่มีคีย์นี้ แสดงว่าแอปไม่ได้ใช้EmojiCompatEDITOR_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-helperimplementation "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อนุมานว่าระบบสามารถ แสดงผลอีโมจิได้ ระบบจะไม่แทนที่อีโมจินั้น เมื่อตั้งค่าเป็นtrueEmojiCompatจะแทนที่อีโมจิทั้งหมดด้วยออบเจ็กต์EmojiSpansetEmojiSpanIndicatorEnabled(): ระบุว่าEmojiCompatจะแทนที่อีโมจิด้วยออบเจ็กต์EmojiSpanหรือไม่ เมื่อตั้งค่าเป็นtrueEmojiCompatจะวาดพื้นหลังสำหรับEmojiSpanโดยวิธีนี้ส่วนใหญ่จะใช้เพื่อวัตถุประสงค์ในการแก้ไขข้อบกพร่องsetEmojiSpanIndicatorColor: ตั้งค่าสีเพื่อระบุEmojiSpanค่าเริ่มต้นคือGREENregisterInitCallback(): แจ้งให้แอปทราบเกี่ยวกับสถานะการเริ่มต้น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และemoji2implementation "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 เพื่อจัดเก็บข้อมูลเมตาของอีโมจิ