ชุดอีโมจิมาตรฐานจะได้รับการอัปเดตทุกปีโดย 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 เป็นทรัพยากร Dependency ของไลบรารี AppCompat และไม่จำเป็นต้องกำหนดค่าเพิ่มเติมเพื่อใช้งาน
การรองรับอีโมจิใน Compose
BOM เดือนมีนาคม 2023 (Compose UI 1.4) รองรับอีโมจิเวอร์ชันล่าสุด รวมถึงความเข้ากันได้แบบย้อนหลังกับ Android เวอร์ชันเก่าจนถึง API 21 หน้านี้จะอธิบายวิธีกำหนดค่าอีโมจิสมัยใหม่ในระบบ View ดูข้อมูลเพิ่มเติมได้ที่หน้าอีโมจิใน Compose
สิ่งที่ต้องมีก่อน
หากต้องการยืนยันว่าแอปแสดงอีโมจิใหม่ๆ อย่างถูกต้อง ให้เปิดแอปในอุปกรณ์ที่ใช้ 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 แสดงผลการกำหนดค่าที่ไม่ใช่ค่า Null
โปรแกรมจำลองในระดับ 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-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สรุปว่าระบบสามารถแสดงผลอีโมจิได้ ระบบจะไม่แทนที่อีโมจินั้น เมื่อตั้งค่าเป็นtrueEmojiCompatจะแทนที่อีโมจิทั้งหมดด้วยออบเจ็กต์EmojiSpansetEmojiSpanIndicatorEnabled(): ระบุว่าEmojiCompatจะแทนที่อีโมจิด้วยออบเจ็กต์EmojiSpanหรือไม่ เมื่อตั้งค่าเป็นtrueEmojiCompatจะวาดพื้นหลังสำหรับEmojiSpanวิธีนี้ใช้เพื่อวัตถุประสงค์ในการแก้ไขข้อบกพร่องเป็นหลักsetEmojiSpanIndicatorColor: ตั้งค่าสีเพื่อระบุEmojiSpanค่าเริ่มต้นคือGREENregisterInitCallback(): แจ้งให้แอปทราบเกี่ยวกับสถานะการเริ่มต้นEmojiCompat
เพิ่ม Listener การเริ่มต้น
คลาส 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
รองรับแบบอักษรที่รวมมากับ 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 เพื่อเก็บข้อมูลเมตาของอีโมจิ