背景:
stf是乙個非常優秀的安卓真機管理平台,近期團隊同學在看安卓真機適配方面的事情,想到如果採用stf來進行多機同屏控制那將是一件非常nice的事情。
動手:
初步看了一下stf的**,前端主要是採用websocket與後端進行通訊,那我們只要找到通訊類,在他原來的send上面加上foreach,那麼就完美了。
簡單嘗試,週末用ubuntu裝了個開發環境,初步實現了多台安卓機的同屏控制,但有些細節方面還需要優化,比如不同解析度需要做縮放。
1. 找到前後端通訊模組, stf/control, 將整個資料夾複製乙份,生成:stf/batch-control, 其中control-service.js 改名為:batch-control-service.js
2. 開啟stf/batch-control/index.js,修改原來的control為batchcontrol:
module.exports = angular.module('stf/batch-control', [
require('stf/socket').name,
require('stf/transaction').name,
require('stf/keycodes').name
]) .factory('batchcontrolservice', require('./batch-control-service'))
3. 開啟改名後的:batch-control-service.js, 同樣修改原來的controlservice為batchcontrolservice.
4. 定義devicecontrolarray,用來存放多機同屏的機器列表,注意這裡為了簡單實現,僅僅用了api獲取了全部機器,實際操作建議按裝置list選擇後存入array。
var devicecontrolarray = new array()
if (devicecontrolarray.length == 0)})}
5. 繼續修改batch-control-service.js,可以看到傳送ws訊息方法為:sendoneway,就在這裡給他套個foreach
function sendoneway(action, data) )
}
要做不同解析度適配的,可以考慮在這裡的data做點手腳。
6.做個多機同屏操作介面吧,同樣把control-panes資料夾複製乙份,自行修改為其他名字,然後把其中原來應用stf/control的地方全部修改為我們的 stf/batch-control,這樣在這裡操作的任何指令將**到所有機器。
7.新增多機螢幕顯示
上面已經實現了指令**,接下來就可以把其他手機的螢幕嵌入頁面顯示了,最簡單的方法當然是standalone了。這樣我們在頁面上面只要嵌入standalone的iframe就一切都搞定了。
進入standalone模式只要在url最後加上?standalone 即可
比如原來的單機控制url是:
那麼standalone模式的url就是:
?standalone
把這個url嵌入iframe就好啦。
最後:實際找了4台安卓手機,再修改後的**上面進行執行,發現同屏操作幾乎無延遲,改造完成。
修改安卓UA User Agent
2,直接修改ua websettings settings webview.getsettings settings.setuseragentstring name zaibuzai 12 全部修改,列印出來的ua是這樣的 zaibuzai 它的原來用webview載入h5時,載入h5頁面沒問題,不...
安卓修改開機畫面
今天在修改智慧型主機開機畫面的過程中出現了問題。首先是adb不能push覆蓋開機畫面的bootanimation.zip。表現如下 adb push failed to copy to read only file system 之後通過查閱資料,解決方法 adb root restarting a...
安卓的多PDN連線
pdn 公用資料網 public data network pdn連線過程是手機接入分組資料網的乙個重要過程,其目的是在ue和分組資料網路間建立乙個預設承載 pdp 分組資料協議 packet data protocol pdp上下文 pdp上下文是在ms和gsn節 點中儲存的與sm有關的資訊。這些...