天天看點

STF簡單修改實作安卓多機同屏控制

背景:

stf是一個非常優秀的安卓真機管理平台,近期團隊同學在看安卓真機适配方面的事情,想到如果采用stf來進行多機同屏控制那将是一件非常nice的事情。

動手:

初步看了一下stf的代碼,前端主要是采用websocket與後端進行通信,那我們隻要找到通信類,在他原來的send上面加上foreach,那麼就完美了。

簡單嘗試,周末用ubuntu裝了個開發環境,初步實作了多台安卓機的同屏控制,但有些細節方面還需要優化,比如不同分辨率需要做縮放。

1.  找到前後端通信子產品, stf/control, 将整個檔案夾複制一份,生成:stf/batch-control, 其中control-service.js 改名為:batch-control-service.js

STF簡單修改實作安卓多機同屏控制

2. 打開stf/batch-control/index.js,修改原來的control為batchcontrol:

3. 打開改名後的:batch-control-service.js, 同樣修改原來的controlservice為batchcontrolservice.

4. 定義devicecontrolarray,用來存放多機同屏的機器清單,注意這裡為了簡單實作,僅僅用了api擷取了全部機器,實際操作建議按裝置list選擇後存入array。

5. 繼續修改batch-control-service.js,可以看到發送ws消息方法為:sendoneway,就在這裡給他套個foreach

 要做不同分辨率适配的,可以考慮在這裡的data做點手腳。

6.做個多機同屏操作界面吧,同樣把control-panes檔案夾複制一份,自行修改為其他名字,然後把其中原來應用stf/control的地方全部修改為我們的 stf/batch-control,這樣在這裡操作的任何指令将群發到所有機器。

STF簡單修改實作安卓多機同屏控制

7.添加多機螢幕顯示

上面已經實作了指令群發,接下來就可以把其他手機的螢幕嵌入頁面顯示了,最簡單的方法當然是standalone了。這樣我們在頁面上面隻要嵌入standalone的iframe就一切都搞定了。

進入standalone模式隻要在url最後加上?standalone 即可

比如原來的單機控制url是:

http://192.168.1.100:7100/#!/control/06157df6a99bc02e

那麼standalone模式的url就是:

http://192.168.1.100:7100/#!/control/06157df6a99bc02e?standalone

把這個url嵌入iframe就好啦。

最後:

實際找了4台安卓手機,再修改後的代碼上面進行運作,發現同屏操作幾乎無延遲,改造完成。

繼續閱讀