ExtServices

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

องค์ประกอบบริการ

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

DisplayHashingService

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

บริการจำแนกประเภทข้อความ

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 แอนดรอยด์ 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 ที่ครอบคลุมในทุกรุ่นของโมดูล นอกจากนี้ ชุดทดสอบเมนไลน์ (MTS) ยังมี การทดสอบ ExtServices รายการการทดสอบ ExtServices ทั้งหมดมีดังนี้