สำหรับ Android 11 หรือสูงกว่า โมดูลตัวช่วยโต้ตอบของอุปกรณ์ชุดทดสอบความเข้ากันได้ (CTS) ให้คุณปรับแต่งวิธีที่การทดสอบ CTS บางอย่างโต้ตอบกับอินเทอร์เฟซผู้ใช้ (UI) บนอุปกรณ์เฉพาะได้ ซึ่งหมายความว่าการดำเนินการต่างๆ เช่น การแทนที่องค์ประกอบ UI ที่ไม่ครอบคลุมอยู่ใน เอกสารคำจำกัดความความเข้ากันได้ของ Android (CDD) หรือเอกสาร API สามารถทำได้ในขณะที่ยังคงผ่าน CTS
OEM ที่ต้องการปรับแต่ง UI ของ Android ในระหว่างการพัฒนาผลิตภัณฑ์และจำเป็นต้องผ่าน CTS อาจสามารถใช้โมดูลตัวช่วยได้ หากคุณใช้การใช้งาน Android เริ่มต้น ก็ไม่จำเป็นต้องดำเนินการใดๆ เพิ่มเติม
การใช้โมดูลตัวช่วย
ข้อกำหนดในการปรับแต่ง UI
ตรวจสอบโมดูล CDD หรือ Mainline เพื่อดูข้อกำหนด UI ใดๆ หาก 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 for 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 โดยไม่มีการใช้งานตัวช่วย คุณมีสองตัวเลือก:
- ลบคุณสมบัติ
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
ที่เปลี่ยนคุณสมบัติที่คาดไว้ชั่วคราวสำหรับการทดสอบหนึ่งครั้ง เช่น--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