โมดูลตัวช่วยการโต้ตอบกับอุปกรณ์ 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 ที่ทำงานอยู่

การทดสอบโดยไม่ใช้ตัวช่วย

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