โมดูล 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 ไม่มีตัวเลือกการปรับแต่ง
การทดสอบ
ชุดเครื่องมือทดสอบความเข้ากันได้ (CTS) ของ Android จะยืนยันฟังก์ชันการทำงานของโมดูล ExtServices โดยเรียกใช้ชุดการทดสอบ CTS ที่ครอบคลุมในทุกๆ การเผยแพร่โมดูล นอกจากนี้ ชุดเครื่องมือทดสอบ Mainline (MTS) ยังมีการทดสอบ ExtServices หลายรายการด้วย รายการการทดสอบ ExtServices ทั้งหมดมีดังนี้
การเปลี่ยนแปลงการกำหนดค่า ยืนยันโดยการทดสอบ CTS
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.javaการกำหนดค่า
TextClassifierยืนยันโดยการทดสอบ CTScts/TextClassifierPolicyTest.javaคำแนะนำแบบอินไลน์สำหรับการป้อนข้อความอัตโนมัติ ยืนยันโดยการทดสอบ CTS ใน
cts/inline/