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