การเชื่อมต่ออุปกรณ์ใหม่จะทริกเกอร์ชุดเหตุการณ์แบบไม่พร้อมกันซึ่งยังไม่ ชัดเจน แต่ก็ควรทำความเข้าใจ
เชื่อมต่อทางกายภาพ
Tradefed ใช้ไลบรารี ddmlib (ไลบรารี adb ของ Java) เพื่อให้การโต้ตอบพื้นฐานกับ adb และอุปกรณ์ ส่วนหนึ่งของโซลูชันนี้คืออินเทอร์เฟซ IDeviceChangeListener
 ซึ่งช่วยให้รับเหตุการณ์อุปกรณ์ใหม่ได้ เช่น
- deviceConnected: เมื่อ- adbพบอุปกรณ์ใหม่
- deviceDisconnected: เมื่ออุปกรณ์ไม่ได้รายงานไปยัง- adbอีกต่อไป
- deviceChanged: เมื่อเกิดสถานะอุปกรณ์ที่สำคัญ (เช่น อุปกรณ์ออฟไลน์หรือ อุปกรณ์ออนไลน์)
เหตุการณ์เหล่านี้เพียงพอที่ระดับ adb ในการตัดสินว่าอุปกรณ์เชื่อมต่อ ออนไลน์ หรือออฟไลน์หรือไม่
 แต่สำหรับชุดทดสอบ เราต้องมีสถานะที่แข็งแกร่งกว่านี้เพื่อให้มั่นใจว่าอุปกรณ์พร้อมที่จะเริ่มเรียกใช้การทดสอบจริงๆ โดยไม่ควรได้รับผลกระทบจากความไม่เสถียรของสถานะที่อาจเกิดขึ้นกับอุปกรณ์ที่เพิ่งเชื่อมต่อ
ลำดับเหตุการณ์ใน Tradefed มีดังนี้
- ระบบจดจำอุปกรณ์เป็น deviceConnectedและเปิดให้ใช้กิจกรรมปกติจากadb
- ระบบจะสร้างเหตุการณ์ Tradefed ภายในซึ่งจะดำเนินการต่อไปนี้ - ตรวจสอบว่ารู้จักอุปกรณ์อยู่แล้วหรือไม่ Tradefed จะเก็บข้อมูลอ้างอิงภายใน ของอุปกรณ์บางเครื่อง (โดยเฉพาะเครื่องที่จัดสรรในปัจจุบันและกำลังทดสอบ) เพื่อป้องกันไม่ให้ TF ติดตามอุปกรณ์เหล่านั้นแบบสุ่มไม่ได้
- ตรวจสอบว่าอุปกรณ์เป็น ONLINEหรือOFFLINE
 
- หากอุปกรณ์คือ - OFFLINE: อุปกรณ์จะเปลี่ยนเป็นสถานะ- CONNECTED_OFFLINETradefed ซึ่งยังไม่อนุญาตให้อุปกรณ์เรียกใช้การทดสอบ หากอุปกรณ์ ออนไลน์ในภายหลัง อุปกรณ์จะเข้าสู่รอบ- ONLINEหากเราได้รับ- deviceDisconnectระบบจะนำอุปกรณ์ออกจากรายการ
- ONLINE(ตามที่ adb เห็น): ระบบจะเปลี่ยนอุปกรณ์ไปอยู่ในสถานะ- CONNECTED_ONLINEและจะตรวจสอบความพร้อมใช้งานสำหรับการทดสอบ การจัดสรร:- checking_availability
 
- หากการตรวจสอบ - availabilityสำเร็จ ระบบจะทำเครื่องหมายอุปกรณ์ว่า พร้อมสำหรับการจัดสรรการทดสอบ และจะสามารถทำการทดสอบได้ หากไม่เป็นเช่นนั้น ระบบจะทำเครื่องหมายอุปกรณ์เป็น- unavailableเพื่อการจัดสรรและอุปกรณ์จะไม่สามารถรับการทดสอบใดๆ ได้
สถานะทั้งหมดเหล่านี้จะแสดงในคอนโซล Tradefed เมื่อแสดงรายการอุปกรณ์ผ่านtf> list devices
โปรดทราบว่าเมื่ออุปกรณ์ได้รับการจัดสรรสำหรับการทดสอบ
ส่วนใหญ่ข้างต้นจะไม่เกิดขึ้น และ Tradefed จะกำหนดสถานะอุปกรณ์
ภายใน ดังนั้นอุปกรณ์อาจหายไปจาก adb devices ขณะที่ Tradefed ยังแสดงอุปกรณ์อยู่ ซึ่งอาจเกิดขึ้นเมื่อการทดสอบรีบูตอุปกรณ์ เป็นต้น
อุปกรณ์เสมือนที่เชื่อมต่อด้วย adb connect
เมื่อสร้างอุปกรณ์เสมือนระยะไกล Tradefed จะเชื่อมต่อกับอุปกรณ์ดังกล่าวโดยใช้ adb
connect โดยปกติแล้ว การดำเนินการนี้จะทําให้อุปกรณ์แสดงใน adb devices เป็น
<some ip>:<port number> และจะทําตามลําดับเดียวกับอุปกรณ์ที่เชื่อมต่อจริง
การติดตามอุปกรณ์เมื่อเกิดเหตุการณ์ deviceConnected
เมื่อเกิด deviceConnected ddmlib จะสร้างการอ้างอิงใหม่
IDevice
เพื่อติดตามอุปกรณ์ที่เชื่อมต่อใหม่
Tradefed ใช้การอ้างอิงดังกล่าวและรวมไว้ในการติดตั้งใช้งานอินเทอร์เฟซอุปกรณ์
ของตัวเอง
ITestDevice
เพื่อให้บริการขั้นสูงยิ่งขึ้น แต่ IDevice พื้นฐานจะเป็น IDevice ที่มาจาก ddmlib เสมอ
ซึ่งหมายความว่าหากมีการเชื่อมต่ออุปกรณ์ใหม่ ระบบจะสร้าง ITestDevice ใหม่และเชื่อมโยงกับ IDevice เมื่อเกิดเหตุการณ์นี้ขึ้นระหว่างการเรียกใช้และมีการใช้ ITestDevice ระบบจะยังคงแทนที่ IDevice พื้นฐานเพื่อให้ การทดสอบดำเนินการต่อไปได้โดยใช้การอ้างอิงที่เหมาะสม ระบบจะดำเนินการนี้อย่างราบรื่นทุกครั้งที่ อุปกรณ์ถูกตัดการเชื่อมต่อ/เชื่อมต่ออีกครั้ง (เช่น ระหว่างการรีบูต)
