โมดูลตัวช่วยการโต้ตอบอุปกรณ์ CTS

สำหรับ 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 ได้

ขั้นตอนการดำเนินงาน

  1. ปรับแต่ง UI ตามที่จำเป็นสำหรับผลิตภัณฑ์เฉพาะของคุณ
  2. กำหนดโมดูลตัวช่วย AOSP ที่มีอยู่เป็นคลาสย่อยสำหรับโมดูลทดสอบ CTS ที่จำเป็นต้องโต้ตอบกับ UI แทนที่การโต้ตอบที่จำเป็นอย่างเหมาะสมสำหรับ UI ที่กำหนดเอง การเปลี่ยนจะแตกต่างกันไปขึ้นอยู่กับประเภทของการเปลี่ยนแปลง
    • คลาสย่อย OEM อยู่ในแพ็คเกจ OEM เช่น com.[oem].cts.helpers
    • คลาสย่อย OEM แต่ละรายการได้รับการตั้งชื่อด้วยคำนำหน้าทั่วไปที่แยกความแตกต่างจากการใช้งาน AOSP ซึ่งมีคำนำหน้า Default
  3. สร้างตัวช่วยให้เป็น 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 ก็เป็นทางเลือก
  4. ตั้งค่าคุณสมบัติ ro.vendor.cts_interaction_helper_packages ในอิมเมจอุปกรณ์เพื่อรวมชื่อของ APK หากคุณต้องการแยกการใช้งานตัวช่วยของคุณใน APK หลายรายการ พร็อพเพอร์ตี้นี้สามารถมีรายการแพ็คเกจที่คั่นด้วยเครื่องหมายโคลอน
  5. ตรวจสอบให้แน่ใจว่า APK มีอยู่ในไดเรกทอรี testcases เมื่อเรียกใช้ Tradefed for CTS หากจำเป็น ให้ยืนยันว่าได้เลือกคลาสการใช้งานตัวช่วยที่คาดไว้โดยการตรวจสอบข้อความ Logcat
  6. ทางเลือกแต่แนะนำอย่างยิ่ง: ส่งการใช้งานตัวช่วยของคุณไปยัง 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