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