รองรับอีโมจิสมัยใหม่

ชุดอีโมจิมาตรฐานมีการรีเฟรชทุกปีโดย 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 เป็นทรัพยากร Dependency ของ ไลบรารี AppCompat และไม่จำเป็นต้องมี การกำหนดค่าเพิ่มเติมเพื่อให้ทำงานได้

การรองรับอีโมจิใน Compose

BOM มีนาคม 2023 (Compose UI 1.4) รองรับอีโมจิล่าสุด ซึ่งรวมถึงความเข้ากันได้แบบย้อนหลังกับ Android เวอร์ชันเก่ากว่า API 21 หน้านี้จะครอบคลุมวิธีกำหนดค่าอีโมจิสมัยใหม่ในระบบมุมมอง โปรดดู ของหน้าอีโมจิในการเขียนเพื่อดูข้อมูลเพิ่มเติม

สิ่งที่ต้องมีก่อน

หากต้องการยืนยันว่าแอปแสดงอีโมจิที่ใหม่กว่านี้ได้ ให้เปิดอีโมจิในอุปกรณ์ ที่ใช้ Android 10 (API ระดับ 29) หรือต่ำกว่า หน้านี้มีอีโมจิสมัยใหม่ที่คุณ แสดงสำหรับการทดสอบได้

ใช้ AppCompat เพื่อรองรับอีโมจิล่าสุด

AppCompat 1.4 มีการรองรับอีโมจิ

หากต้องการใช้AppCompatเพื่อรองรับอีโมจิ ให้ทำดังนี้

  1. ตรวจสอบว่าโมดูลของคุณใช้เวอร์ชันไลบรารี AppCompat หรือไม่ 1.4.0-alpha01 หรือ สูงขึ้น

    build.gradle
    
    // Ensure version is 1.4.0-alpha01 or higher.
    implementation "androidx.appcompat:appcompat.$appcompatVersion"
    
  2. ตรวจสอบให้แน่ใจว่ากิจกรรมทั้งหมดที่แสดงข้อความขยาย AppCompatActivity

    Kotlin

    MyActivity.kt
    
    class MyActivity: AppCompatActivity {
    ...
    }
    

    Java

    MyActivity.java
    
    class MyActivity extends AppCompatActivity {
    ...
    }
    
  3. ทดสอบการผสานรวมโดยการเปิดตัวแอปในอุปกรณ์ที่ใช้ Android 10 หรือต่ำกว่า และแสดงสตริงทดสอบต่อไปนี้ ตรวจสอบว่าอักขระทั้งหมด แสดงผลอย่างถูกต้อง

    • 14.0: 🫠, 🫱🏼 🫲🏿, 🫰🏽
    • 13.1: 😶 🌫️, 🧔🏻 ♀️, 🧑🏿 ❤️ 🧑🏾
    • 13.0: 🥲 🥷🏿, 🐻 หน้าร้าน
    • 12.1: 🧑🏻 🦰, 🧑🏿 🦯, 👩🏻 🤝 👩🏼
    • 12.0: 🦩, 🦻🏿, 👩🏼 🤝 👩🏻

แอปจะแสดงอีโมจิที่เข้ากันได้แบบย้อนหลังโดยอัตโนมัติในอุปกรณ์ทุกเครื่องที่ ระบุผู้ให้บริการแบบอักษรที่ดาวน์โหลดได้ของ emoji2 ที่เข้ากันได้ เช่น อุปกรณ์ ขับเคลื่อนโดยบริการ Google Play

หากแอปใช้ AppCompat แต่แสดงเต้าหู้ (☐)

ในบางกรณี แอปของคุณอาจแสดงเต้าหู้แทนอีโมจิที่ถูกต้อง แม้ว่า คุณเพิ่มไลบรารี AppCompat ต่อไปนี้เป็นคำอธิบายที่เป็นไปได้และ Google Cloud

คุณกำลังเรียกใช้แอปในอุปกรณ์ที่กะพริบเมื่อเร็วๆ นี้หรือโปรแกรมจำลองใหม่

ล้างข้อมูลบริการ Google Play ของแอปเพื่อล้างการแคชแบบอักษรที่อาจ เกิดขึ้นระหว่างการเริ่มต้นใช้งาน โดยปกติจะแก้ไขปัญหาได้หลังจากผ่านไป 2-3 ชั่วโมง

หากต้องการล้างข้อมูลแอป ให้ทำดังนี้

  1. เปิดการตั้งค่าในอุปกรณ์ที่ใช้ Android

  2. แตะแอปและการแจ้งเตือน

  3. แตะดูแอปทั้งหมดหรือข้อมูลแอป

  4. เลื่อนดูแอป แล้วแตะบริการ Google Play

  5. แตะ พื้นที่เก็บข้อมูลและ แคช

  6. แตะล้างแคช

แอปของคุณไม่ได้ใช้คลาสที่เกี่ยวข้องกับข้อความ AppCompat

กรณีนี้เกิดขึ้นได้หากคุณไม่ขยาย AppCompatActivity หรือหากคุณสร้างอินสแตนซ์ ดูในโค้ด เช่น TextView ตรวจสอบสิ่งต่อไปนี้

AppCompatActivity จะเพิ่มจำนวน AppCompatTextView โดยอัตโนมัติแทนที่ TextView เมื่อเพิ่มขนาด XML คุณจึงไม่จำเป็นต้องอัปเดต XML

โทรศัพท์ทดสอบไม่รองรับแบบอักษรที่ดาวน์โหลดได้

ยืนยันว่า DefaultEmojiCompatConfig.create แสดงผลการกำหนดค่าที่ไม่เป็นค่าว่าง

โปรแกรมจำลองในระดับ API ก่อนหน้านี้ไม่ได้อัปเกรดบริการ Google Play

เมื่อใช้โปรแกรมจำลองในระดับ API ก่อนหน้านี้ คุณอาจต้องอัปเดต รวมบริการ Google Play สำหรับ emoji2 เพื่อค้นหาผู้ให้บริการแบบอักษร วิธีการคือ ลงชื่อเข้าสู่ระบบ Google Play Store ในโปรแกรมจำลอง

หากต้องการยืนยันว่าติดตั้งเวอร์ชันที่เข้ากันได้แล้ว ให้ทำดังนี้

  1. เรียกใช้คำสั่งต่อไปนี้

    adb shell dumpsys package com.google.android.gms | grep version
    
  2. ตรวจสอบว่าversionCodeสูงกว่า 211200000

รองรับอีโมจิโดยไม่ใช้ AppCompat

หากแอปใส่ AppCompat ไม่ได้ แอปจะใช้ emoji2 ได้โดยตรง ช่วงเวลานี้ ต้องดําเนินการมากขึ้น ดังนั้นให้ใช้วิธีนี้เฉพาะเมื่อแอปไม่สามารถใช้ AppCompat ได้

หากต้องการรองรับอีโมจิโดยไม่มีคลัง AppCompat ให้ทำดังนี้

  1. ในไฟล์ 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

  2. ใน XML และโค้ด ไม่ว่าคุณจะใช้ TextView, EditText หรือ Button—ใช้ EmojiTextView, EmojiEditText หรือ EmojiButton แทน

    activity_main.xml
    
    <androidx.emoji2.widget.EmojiTextView ... />
    <androidx.emoji2.widget.EmojiEditText ... />
    <androidx.emoji2.widget.EmojiButton ... />
    

    การรวมโมดูล emoji2 ไว้ด้วย ระบบจะใช้ค่าเริ่มต้นของโปรแกรมที่ดาวน์โหลดได้ ผู้ให้บริการแบบอักษรเพื่อโหลดแบบอักษรอีโมจิ โดยอัตโนมัติหลังจากเริ่มต้นแอปได้ไม่นาน ยังไม่ได้ติดต่อ ต้องมีการกำหนดค่าเพิ่มเติม

  3. หากต้องการทดสอบการผสานรวม ให้เปิดแอปในอุปกรณ์ที่ใช้ 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

  1. เพิ่มไลบรารี emoji2-views-helper:

    implementation "androidx.emoji2:emoji2-views-helper:$emojiVersion"
    
  2. ทำตามวิธีการเพื่อรวม EmojiTextViewHelper หรือ EmojiEditTextHelper ในมุมมองที่กำหนดเองของแอป

  3. ทดสอบการผสานรวมโดยการเปิดตัวแอปในอุปกรณ์ที่ใช้ Android 10 หรือต่ำกว่า และแสดงสตริงทดสอบต่อไปนี้ ตรวจสอบว่าอักขระทั้งหมด แสดงผลอย่างถูกต้อง

    • 14.0: 🫠, 🫱🏼 🫲🏿, 🫰🏽
    • 13.1: 😶 🌫️, 🧔🏻 ♀️, 🧑🏿 ❤️ 🧑🏾
    • 13.0: 🥲 🥷🏿, 🐻 หน้าร้าน
    • 12.1: 🧑🏻 🦰, 🧑🏿 🦯, 👩🏻 🤝 👩🏼
    • 12.0: 🦩, 🦻🏿, 👩🏼 🤝 👩🏻

ฟีเจอร์เสริมสำหรับการจัดการอีโมจิ2

หลังจากใส่ไลบรารี emoji2 ในแอปแล้ว คุณสามารถเพิ่ม ฟีเจอร์ที่อธิบายในส่วนนี้

กำหนดค่าอีโมจิ2 เพื่อใช้แบบอักษรหรือผู้ให้บริการแบบอักษรที่ดาวน์โหลดได้อื่น

หากต้องการกำหนดค่า emoji2 ให้ใช้แบบอักษรหรือผู้ให้บริการแบบอักษรที่ดาวน์โหลดได้รายอื่น ให้ทำดังนี้ ดังต่อไปนี้

  1. ปิดใช้ 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>
  2. ทำสิ่งใดสิ่งหนึ่งต่อไปนี้

    • ใช้การกำหนดค่าเริ่มต้นโดยการเรียกใช้ 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() เมธอดในการลงทะเบียนและยกเลิกการลงทะเบียน 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 ให้ทำดังนี้

  1. รวมอาร์ติแฟกต์ emoji2-bundled และ emoji2:

    implementation "androidx.emoji2:emoji2:$emojiVersion"
    implementation "androidx.emoji2:emoji2-bundled:$emojiVersion"
    
  2. กำหนดค่า emoji2 เพื่อใช้การกำหนดค่าแบบรวมกลุ่มดังนี้

    Kotlin

    EmojiCompat.init(BundledEmojiCompatConfig(context))
    

    Java

    EmojiCompat.init(new BundledEmojiCompatConfig(context));
    
  3. ทดสอบการผสานรวมโดยทําตามขั้นตอนก่อนหน้าเพื่อรวม 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 ในการเก็บอีโมจิ ข้อมูลเมตา