ExtServices

โมดูล ExtServices จะอัปเดตคอมโพเนนต์เฟรมเวิร์กสำหรับฟังก์ชันหลักของระบบปฏิบัติการ เช่น การจัดอันดับการแจ้งเตือน กลยุทธ์การจับคู่ข้อความสำหรับการป้อนข้อความอัตโนมัติ แคชพื้นที่เก็บข้อมูล โปรแกรมตรวจสอบแพ็กเกจ และบริการอื่นๆ ที่ทำงานอย่างต่อเนื่อง โมดูลนี้อัปเดตได้ ซึ่งหมายความว่าสามารถรับการอัปเดตฟังก์ชันการทำงานนอกรอบการเผยแพร่ Android ปกติได้

คอมโพเนนต์ของบริการ

โมดูล ExtServices มีบริการต่อไปนี้

DisplayHashingService

ใน Android 12 จะใช้ DisplayHashingService เพื่อ สร้างอินสแตนซ์ของ DisplayHash สำหรับบัฟเฟอร์ที่ระบุ นอกจากนี้ ยังใช้เพื่อยืนยันว่าระบบสร้างแฮชการแสดงผลที่เฉพาะเจาะจง เมื่อ สร้างแฮชการแสดงผล ผู้เรียกใช้จะระบุได้ว่าจะใช้อัลกอริทึม การแฮชที่รองรับใด

TextClassifierService

คอมโพเนนต์บริการ TextClassifierService รองรับ TextClassifier API และฟีเจอร์ Android เช่น การเลือกข้อความอัจฉริยะและคำแนะนำอัจฉริยะในการแจ้งเตือน โมดูล ExtServices มีเครื่องมือคัดข้อความเริ่มต้น ซึ่งได้รับการยืนยันโดยการทดสอบ CTS TextClassifierPolicyTest.java

หากจำเป็น คุณสามารถกำหนดค่าบริการเครื่องมือคัดแยกข้อความที่กำหนดเองได้โดยการระบุ config_defaultTextClassifierPackage ใน config.xml เครื่องมือแยกประเภทข้อความที่กำหนดเองอาจขึ้นอยู่กับเครื่องมือแยกประเภทข้อความเริ่มต้นโดยการเรียกใช้ TextClassifierService.getDefaultTextClassifierImplementation(Context) เพื่อรับอินสแตนซ์ของเครื่องมือดังกล่าว

InlineSuggestionRenderService

InlineSuggestionRenderService คอมโพเนนต์บริการช่วยให้แสดงคำแนะนำในบรรทัด ในแถบคำแนะนำของแป้นพิมพ์ได้ บริการนี้จะเรียกใช้เพื่อแสดงผลออบเจ็กต์ที่เก็บคำแนะนำในบรรทัดสำหรับขั้นตอนการป้อนข้อความอัตโนมัติในบรรทัดใหม่View การติดตั้งใช้งานเริ่มต้นสำหรับบริการโปรแกรมแสดงผลนี้จะเรียกใช้ androidx.autofill.inline.Renderer เพื่อแสดงผลคำแนะนำ ลักษณะการทำงานนี้ได้รับการยืนยันโดยการทดสอบ CTS ใน /autofillservice/cts/inline/

ชื่อแพ็กเกจ

อุปกรณ์ที่ใช้ Android 11 ต้องตั้งค่า config_servicesExtensionPackage (ใน frameworks/base/core/res/res/values/config.xml) เป็นชื่อแพ็กเกจ ExtServices (com.android.ext.services) การเปลี่ยนแปลงการกำหนดค่านี้ได้รับการยืนยันโดย การทดสอบ CTS cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java

ขอบเขตของโมดูล

ใน Android 12 ระบบได้ย้ายโค้ดโมดูล ExtServices จาก frameworks/base/apex/extservices (ซึ่งเป็นไดเรกทอรีย่อยของ frameworks/base project) และ packages/modules/ExtServices

โครงสร้างโปรเจ็กต์ใหม่สำหรับ packages/modules/ExtServices มีดังนี้

  • apex/ (ไฟล์จาก frameworks/base/apex/extservices)
  • java/ (ไฟล์จาก packages/modules/ExtServices/res packages/modules/ExtServices/src, packages/modules/ExtServices/tests และไฟล์สำหรับฟีเจอร์ใหม่)
  • jni/ (ไฟล์สำหรับฟีเจอร์ใหม่)
  • native/ (ไฟล์สำหรับฟีเจอร์ใหม่)

ขอบเขตโมดูล ExtServices อยู่ใน packages/modules/ExtServices Android 11 ยังย้ายTextClassifierการใช้งาน คลาสหลายรายการออกจาก frameworks/base/core/ ด้วย

รูปแบบโมดูล

ใน Android 11 โมดูล ExtServices (com.android.ext.services) จะอยู่ในรูปแบบ APEX ใน Android 10 โมดูลนี้จะอยู่ในรูปแบบ APK

การปรับแต่ง

ใน Android 11 คุณสามารถกำหนดค่าบริการตัวแยกประเภทข้อความที่กำหนดเองซึ่งเรียกใช้ตัวแยกประเภทข้อความเริ่มต้นได้ (แต่ไม่แนะนำ) ใน Android 10 โมดูล ExtServices ไม่มี ตัวเลือกการปรับแต่ง

การทดสอบ

ชุดเครื่องมือทดสอบความเข้ากันได้ของ Android (CTS) จะยืนยันฟังก์ชันการทำงานของโมดูล ExtServices โดยการเรียกใช้ชุดทดสอบ CTS ที่ครอบคลุมในทุกๆ การเผยแพร่โมดูล นอกจากนี้ ชุดทดสอบ Mainline (MTS) ยังมีการทดสอบ ExtServices อีกหลายรายการด้วย รายการการทดสอบ ExtServices ทั้งหมดมีดังนี้