สำหรับ 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 - ไม่บังคับแต่แนะนำอย่างยิ่ง: ส่งการใช้งาน Helper ไปยัง 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 ที่ทำงานอยู่
การทดสอบโดยไม่ใช้ตัวช่วย
นอกเหนือจากพร็อพเพอร์ตี้ 1 รายการแล้ว ตัวเลือกในการทดสอบโดยไม่มีตัวช่วยนั้นไม่มีอยู่ขณะรันไทม์ในอุปกรณ์ แต่จะแก้ไขวิธีที่การทดสอบ 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
คือสตริงที่คั่นด้วยโคลอนซึ่งมีชื่อแพ็กเกจ อาจใช้ค่าใดก็ได้ที่เป็นตัวเลือกแพ็กเกจที่ถูกต้องสำหรับการใช้งานตัวช่วยของ OEMcts-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 จะแปลงเป็นเฟรมเวิร์ก Helper ตามดีมานด์และลำดับความสำคัญของเจ้าของการทดสอบ ยื่นคำขอสำหรับการแปลงตั้งแต่เนิ่นๆ ของกระบวนการเพื่อให้มั่นใจว่าการแปลงเป็นไปตามกำหนดเวลา เช่นเดียวกับการขอการเปลี่ยนแปลง CTS เพื่อรองรับฟีเจอร์ที่วางแผนไว้
- ฟังก์ชันที่ได้จากตัวช่วยที่มีอยู่อาจไม่รองรับการปรับแต่งทั้งหมดที่คุณต้องการทำ ฟังก์ชันตัวช่วยควรแยกทรัพยากร ของ UI ออก หากฟังก์ชันตัวช่วยมีการพึ่งพา UI โดยอ้อม ระบบจะจัดการปัญหานี้คล้ายกับข้อบกพร่องใน CTS