由於筆者需要使用USB有線的方式做多支手機平行控制, 通常做平行處理都是使用multiple thread 的方式進行,
就很天真地認為多支手機控制應該也可以使用 Uiautomator2 (手機控制的Fraemwork) x multiple thread 的方式進行
but ....
這樣做之後, PC的USB port 就掰了.
連結架構圖及作法:
USB Hub 使用市面上USB 2.0/3.0/ 3.1的Hub 連接到PC端的USB 2.0/ 3.0/ 3.1的port 都可以
pip3 install -U weditor
行為:
(1) 回到Android Home
(2) 打開設定頁面
(3) 新增Wi-Fi profile
(4) 確定是否建立profile 成功
以下是Demo code片段:
詳細的python程式碼, 請參考ironmen2020 demo code
2. 將phoneControl function 加入multiple thread 中並開始執行
3. 程式執行到一半發現, 連線中的手機自動掉線而無法控制/ 無法再被系統偵測到
4. 檢查裝置管理員, 手機遺失. USB重插拔無效
5. 使用其他裝置插入, 發現也沒有作用
6. 確定系統的USB port 宣告陣亡 ...
======================
事後,拆掉主機板上的水銀電池及徹底放電後. 系統的 USB port 才又恢復正常. 但執行程式後又遇到一樣的狀況.
主要原因:
UIautomator2 預設是只有使用一個port 在控制手機. 如下圖所示:
PS: 本身不支援一次控制多支手機
所以, 當用多執行緒去執行多手機控制時, 造成程式以為要在同一個port上控制多支手機的窘境, 接著就發生power surge (電流暴衝)的現象而導致那個USB port 無法使用
當造成power surge (電流暴衝)後的常見現象有以下幾種:
結論:
參考資源:
Weditor - 手機腳本錄製工具
Uiautomator2 - Github
itronmen 2020 demo source code