บริการภายนอก

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

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

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

บริการแฮชชิงดิสเพลย์

ใน 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 Test ใน /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 Test Suite (MTS) ยังมีการทดสอบ ExtServices หลายรายการอีกด้วย รายการการทดสอบ ExtServices ทั้งหมดมีดังนี้