โมดูล ExtServices จะอัปเดตคอมโพเนนต์เฟรมเวิร์กสำหรับฟังก์ชันหลักของระบบปฏิบัติการ เช่น การจัดอันดับการแจ้งเตือน กลยุทธ์การจับคู่ข้อความแบบป้อนข้อความอัตโนมัติ แคชพื้นที่เก็บข้อมูล เครื่องมือตรวจสอบแพ็กเกจ และบริการอื่นๆ ที่ทำงานอย่างต่อเนื่อง โมดูลนี้อัปเดตได้ ซึ่งหมายความว่าจะได้รับการอัปเดตฟังก์ชันการทำงานนอกรอบการเผยแพร่ปกติของ Android
คอมโพเนนต์บริการ
โมดูล ExtServices มีบริการต่อไปนี้
DisplayHashingService
ตั้งแต่ Android 12 เป็นต้นไปTextClassifierService
ตั้งแต่ Android 11 เป็นต้นไปInlineSuggestionsRenderService
ตั้งแต่ Android 11 เป็นต้นไปAutofillFieldClassificationService
ตั้งแต่ Android 10 เป็นต้นไปNotificationAssistantService
ตั้งแต่ Android 10 เป็นต้นไปResolverRankerService
ตั้งแต่ Android 10 เป็นต้นไปCacheQuotaService
ตั้งแต่ Android 10 เป็นต้นไป
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/
หลายคลาสออกจาก 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 ทั้งหมดมีดังนี้
การเปลี่ยนแปลงการกําหนดค่า ยืนยันโดยผลการทดสอบ CTS
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
TextClassifier
config ยืนยันโดย CTS ทดสอบcts/TextClassifierPolicyTest.java
คำแนะนำแบบแทรกอัตโนมัติ ยืนยันโดยผลการทดสอบ CTS ใน
cts/inline/