สําหรับ Android 11 ขึ้นไป โมดูลตัวช่วยการโต้ตอบกับอุปกรณ์ของชุดเครื่องมือทดสอบความเข้ากันได้ (CTS) ช่วยให้คุณปรับแต่งวิธีที่การทดสอบ CTS บางรายการโต้ตอบกับอินเทอร์เฟซผู้ใช้ (UI) ในอุปกรณ์ที่เฉพาะเจาะจงได้ ซึ่งหมายความว่า คุณสามารถดำเนินการต่างๆ เช่น การแทนที่องค์ประกอบ UI ที่ไม่ได้ระบุไว้ใน เอกสารนิยามความเข้ากันได้ของ Android (CDD) หรือเอกสาร API ได้โดยที่ยังผ่านการทดสอบ CTS
ผู้ผลิตอุปกรณ์ดั้งเดิม (OEM) ที่ต้องการปรับแต่ง UI ของ Android ระหว่างการพัฒนาผลิตภัณฑ์และต้องผ่านการทดสอบ CTS อาจสามารถใช้โมดูลตัวช่วยได้ หากใช้การติดตั้งใช้งาน Android เริ่มต้น คุณก็ไม่จำเป็นต้องดำเนินการใดๆ เพิ่มเติม
การติดตั้งใช้งานโมดูลตัวช่วย
ข้อกำหนดในการปรับแต่ง UI
ตรวจสอบข้อกำหนด UI ใน CDD หรือโมดูล Mainline หาก UI ที่ต้องการระบุไว้ใน CDD หรือโมดูล Mainline คุณจะปรับแต่ง UI นั้นไม่ได้
หากการทดสอบ CTS ที่โต้ตอบกับ UI ที่ต้องการไม่ได้ใช้เฟรมเวิร์กตัวช่วย คุณจะปรับแต่ง UI นั้นไม่ได้ โปรดทำงานร่วมกับเจ้าของการทดสอบเพื่อแปลงโมดูลการทดสอบก่อนที่จะเปลี่ยน UI ได้
มิฉะนั้น คุณจะปรับแต่ง UI ได้
เวิร์กโฟลว์การติดตั้งใช้งาน
- ปรับแต่ง UI ตามที่ต้องการสำหรับผลิตภัณฑ์ที่เฉพาะเจาะจง
- กำหนดโมดูลตัวช่วย AOSP ที่มีอยู่เป็นคลาสย่อยสำหรับโมดูลการทดสอบ CTS ที่ต้องโต้ตอบกับ UI แทนที่การโต้ตอบที่จำเป็นตามความเหมาะสมสำหรับ UI ที่ปรับแต่ง การแทนที่จะแตกต่างกันไปตามประเภทของการเปลี่ยนแปลง
- คลาสย่อย OEM จะอยู่ในแพ็กเกจ OEM เช่น
com.[oem].cts.helpers - คลาสย่อย OEM แต่ละรายการจะมีคำนำหน้าทั่วไปที่แยกความแตกต่างจากการติดตั้งใช้งาน AOSP ซึ่งมีคำนำหน้า
Default
- คลาสย่อย OEM จะอยู่ในแพ็กเกจ OEM เช่น
- สร้างตัวช่วยเป็น APK ตามรูปแบบการเรียกใช้การทดสอบต่อไปนี้
Android.bpควรประกาศandroid_test_helper_appที่มีชื่อเดียวกับแพ็กเกจที่รวมอยู่AndroidManifest.xmlสำหรับ APK ต้องประกาศพร็อพเพอร์ตี้ข้อมูลเมตาที่ชื่อinteraction-helpers-prefixที่มีค่าเป็นคำนำหน้าคลาสที่เลือกไว้ในรายการก่อนหน้า- แอปควรขึ้นอยู่กับ
cts-helpers-core,cts-helpers-interfacesและcom.android.cts.helpers.aospหากตัวช่วย OEM ติดตั้งใช้งานอินเทอร์เฟซที่เกี่ยวข้องทั้งหมดอย่างสมบูรณ์com.android.cts.helpers.aospจะไม่บังคับ
- ตั้งค่าพร็อพเพอร์ตี้
ro.vendor.cts_interaction_helper_packagesในอิมเมจอุปกรณ์ให้มีชื่อ APK หากต้องการแยกการติดตั้งใช้งานตัวช่วยใน APK หลายรายการ พร็อพเพอร์ตี้นี้จะมีรายการแพ็กเกจที่คั่นด้วยโคลอน - ตรวจสอบว่า APK อยู่ในไดเรกทอรี
testcasesเมื่อเรียกใช้ Tradefed สำหรับ CTS หากจำเป็น ให้ยืนยันว่ามีการเลือกคลาสการติดตั้งใช้งานตัวช่วยที่คาดไว้โดยการตรวจสอบข้อความ logcat - ไม่บังคับ แต่แนะนำอย่างยิ่ง: ส่งการติดตั้งใช้งานตัวช่วยไปยัง AOSP หรือทำให้พร้อมใช้งานสำหรับการทดสอบของบุคคลที่สาม
ตัวอย่างการติดตั้งใช้งานตัวช่วย
เช่น CtsPrintTestCases คาดหวังตัวช่วยที่มีอินเทอร์เฟซที่กำหนดไว้ใน ICtsPrintHelper การติดตั้งใช้งาน AOSP เรียกว่า com.android.cts.helpers.aosp.DefaultCtsPrintHelper
หากปรับแต่ง UI การพิมพ์ คุณจะสร้าง com.oem.cts.helpers.OemCtsPrintHelper ที่เป็นคลาสย่อยของ DefaultCtsPrintHelper ได้
android_test_helper_app ใน Android.bp มีชื่อว่า com.oem.cts.helpers,
ซึ่งสร้าง com.oem.cts.helpers.apk,
และประกาศ interaction-helpers-prefix เป็น Oem ใน AndroidManifest.xml
พร็อพเพอร์ตี้อุปกรณ์ ro.vendor.cts_interaction_helper_packages ตั้งค่าเป็น com.oem.cts.helpers
การติดตั้งใช้งานการอ้างอิง
การติดตั้งใช้งานการอ้างอิงรวมถึงอินเทอร์เฟซภายใต้ cts/libs/helpers และตัวช่วย AOSP เริ่มต้นภายใต้ cts/helpers อินเทอร์เฟซระดับบนสุดมีการระบุไว้ใน cts/libs/helpers/core/src/com/android/cts/helpers/ICtsDeviceInteractionHelper.java
หากต้องการเชื่อมต่อการทดสอบ CTS กับตัวช่วย เจ้าของการทดสอบสามารถใช้คำจำกัดความ @Rule ที่ระบุไว้ใน cts/libs/helpers/core/src/com/android/cts/helpers/DeviceInteractionHelperRule.java
โมดูล CTS แต่ละโมดูลที่ใช้เฟรมเวิร์กและลักษณะการทำงานของตัวช่วยที่คาดไว้มีการระบุไว้ในอินเทอร์เฟซที่กำหนดไว้ภายใต้ cts/libs/helpers/core/src/com/android/cts/helpers
การเรียกใช้การทดสอบ CTS
การทดสอบโดยไม่มีตัวช่วย
นอกเหนือจากพร็อพเพอร์ตี้รายการเดียวแล้ว ตัวเลือกในการทดสอบโดยไม่มีตัวช่วยจะไม่มีอยู่ขณะรันไทม์ในอุปกรณ์ แต่จะปรับเปลี่ยนวิธีที่การทดสอบ CTS โต้ตอบกับอุปกรณ์โดยไม่บังคับ หากต้องการเรียกใช้ CTS โดยไม่มีการติดตั้งใช้งานตัวช่วย คุณมี 2 ตัวเลือกดังนี้
- นำพร็อพเพอร์ตี้
ro.vendor.cts_interaction_helper_packagesออกจากอุปกรณ์ ซึ่งจะป้องกันไม่ให้ใช้ตัวช่วยในบิลด์นั้นโดยสมบูรณ์ - นำ APK ตัวช่วยออกจากไดเรกทอรี
testcasesก่อนเรียกใช้ CTS ซึ่งจะป้องกันไม่ให้การเรียกใช้ใดๆ ใช้ตัวช่วยจนกว่าจะมีการกู้คืน APK ไปยังtestcases
คุณสามารถเปลี่ยนการตั้งค่าเริ่มต้นได้ด้วยอาร์กิวเมนต์ Tradefed และการควบคุมพร็อพเพอร์ตี้ ro.vendor.cts_interaction_helper_packages ซึ่งเป็นตำแหน่งที่จะโหลด APK ตัวช่วย
ดูค่าหรือช่วงที่คาดไว้สำหรับการตั้งค่าที่มีอยู่แต่ละรายการได้ดังนี้
ro.vendor.cts_interaction_helper_packagesคือสตริงที่คั่นด้วยโคลอนซึ่งมีชื่อแพ็กเกจ โดยสามารถใช้ค่าใดก็ได้ที่เป็นตัวเลือกแพ็กเกจที่ถูกต้องสำหรับการติดตั้งใช้งานตัวช่วยของผู้ผลิตอุปกรณ์ดั้งเดิม (OEM)cts-tradefedยอมรับอาร์กิวเมนต์device-interaction-helper:property-nameที่เปลี่ยนพร็อพเพอร์ตี้ที่คาดไว้ชั่วคราวสำหรับการเรียกใช้การทดสอบ 1 ครั้ง เช่น--module-arg 'CtsPrintTestCases:{device-interaction-helper}property-name:debug.cts.hlp'ค่าของชื่อพร็อพเพอร์ตี้อาจเป็นพร็อพเพอร์ตี้ใดก็ได้ที่คุณตั้งค่าในอุปกรณ์ ค่าของพร็อพเพอร์ตี้จะเป็นไปตามข้อจำกัดเดียวกันกับพร็อพเพอร์ตี้ro.vendor.cts_interaction_helper_packagesที่อธิบายไว้ข้างต้น
การทดสอบด้วยการปรับแต่ง
โดยค่าเริ่มต้น การติดตั้งใช้งานการอ้างอิงจะผ่านการทดสอบ CTS ใน Android สต็อก ตรวจสอบว่าการติดตั้งใช้งานของพาร์ทเนอร์ผ่านการทดสอบ CTS ด้วยการปรับแต่ง UI เรียกใช้โมดูล CTS ที่ครอบคลุม UI หรือฟีเจอร์ที่คุณปรับแต่ง
โมดูลหรือตัวช่วย CTS บางรายการอาจยังไม่รองรับการปรับแต่งบางอย่าง
- โมดูล CTS ที่โต้ตอบกับ UI ที่คุณต้องการปรับแต่งอาจไม่ได้ใช้เฟรมเวิร์กตัวช่วย โมดูล CTS คาดว่าจะแปลงเป็นเฟรมเวิร์กตัวช่วยตามความต้องการและลำดับความสำคัญของเจ้าของการทดสอบ ส่งคำขอไฟล์สำหรับการแปลงในช่วงต้นของกระบวนการเพื่อให้แน่ใจว่าการแปลงเป็นไปตามกำหนดเวลา ซึ่งคล้ายกับการขอเปลี่ยนแปลง CTS เพื่อรองรับฟีเจอร์ที่วางแผนไว้
- ฟังก์ชันที่ตัวช่วยที่มีอยู่อาจไม่ตอบสนองการปรับแต่งที่คุณต้องการทำอย่างเต็มที่ ฟังก์ชันตัวช่วยควรแยกการอ้างอิง UI ออก หากฟังก์ชันตัวช่วยมีการอ้างอิง UI โดยอ้อม ระบบจะถือว่าฟังก์ชันนี้คล้ายกับข้อบกพร่องใน CTS