โมดูล 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/ ด้วย
รูปแบบโมดูล
ใน 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
- TextClassifierconfig. ผ่านการทดสอบ CTS- cts/TextClassifierPolicyTest.java
- คำแนะนำการป้อนข้อความอัตโนมัติในบรรทัด ผ่านการทดสอบ CTS ใน - cts/inline/
