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

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

เวิร์กโฟลว์การติดตั้งใช้งาน

  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 สำหรับ 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 โดยไม่มีการติดตั้งใช้งานตัวช่วย คุณมี 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