前往
大廳
主題

雷電 Android模擬器 操作錄製 達成在termux輸入指令執行

czh | 2023-09-13 17:02:08 | 巴幣 0 | 人氣 274

官方似乎不歡迎編輯操作錄製,所以完全沒任何內容說明,我也找了三個地方的客服都說不能編輯部能提供資料,所以只好自行研究。
官方教學的用法就是紀錄點擊過程與間隔時間,網路上找到的現成腳本也都只有這些。
點一下會得到以下內容,座標建議都錄製後抄來用即可,沒必要自己算對應。
{
    "operations": [ //錄製啟動
        {
            "timing": 1, //時間都是毫秒
            "operationId": "PutMultiTouch", //按下去瞬間
            "points": [
                {
                    "id": 1,
                    "x": 6810, //座標
                    "y": 2890,
                    "state": 1
                }
            ]
        },
        {
            "timing": 1, //點擊有落有起所以都會跟著這個
            "operationId": "PutMultiTouch",
            "points": []
        },
        {
            "timing": 100, //按多久,至少給個100毫秒否則會沒反應
            "operationId": "PutMultiTouch", //會有第二次是因為MultiTouch要做反應
            "points": [
                {
                    "id": 1,
                    "x": 6810, //因為單擊沒拖移所以座標一樣
                    "y": 2890,
                    "state": 0
                }
            ]
        },
        {
            "timing": 100, //基本上點一下就是這四個動作,兩動設為同一時間即可。1
            "operationId": "PutMultiTouch",
            "points": []
        }
    ],
    "recordInfo": {  //以下都是設定項在UI中都能設
        "loopType": 0,
        "loopTimes": 1,
        "circleDuration": 1600,
        "loopInterval": 0,
        "loopDuration": 0,
        "accelerateTimes": 1,
        "accelerateTimesEx": 1,
        "recordName": "錄製名稱不輸入就是檔名",
        "createTime": "錄製時間不能輸入中文",
        "playOnBoot": false,
        "rebootTiming": 0
    }
}




接下來就是進階用法,用分隔線分組像積木一樣取想要的功能去組合即可。


這組的用法就是間隔2600毫秒按下Enter,有兩次是因為有按下與放開,時間可以設為一樣也能作用。
code就是鍵盤按鍵碼,網路上有很多對照表可以查,真懶得查錄製好抄過來即可。
        {
            "timing": 2600,
            "operationId": "PutScancode",
            "code": 28,
            "down": true
        },
        {
            "timing": 2600,
            "operationId": "PutScancode",
            "code": 28,
            "down": false
        },


按Home鍵,三大天王都可以這樣做,都能錄到就不贅述。
        {
            "timing": 3700,
            "operationId": "AndroidHome"
        },


執行termux,任何APP填入ID都能這樣執行。
        {
            "timing": 2900,
            "operationId": "StartApp",
            "app": "com.termux"
        },


關閉termux,任何APP填入ID都能這樣執行。
        {
            "timing": 3000,
            "operationId": "StopApp",
            "app": "com.termux"
        },


在剪貼簿放入字串
        {
            "timing": 3000,
            "operationId": "ImeClipboard",
            "text": "在這裡輸入想放的字串"
        },


取用剪貼簿的字串
        {
            "timing": 3100,
            "operationId": "ImeCommitClipboard"
        },


最後就是按鍵加剪貼簿的複合應用,可以達成在termux輸入指令執行
時間間隔自行參考範例,時間長短要看設備好壞,電腦越強間隔就不需要太久,我的電腦是12900K,沒反應的話自行延長時間間隔。
這範例是連續輸入100次ok測試反應是否正常
{
    "operations": [
        {
            "timing": 1,
            "operationId": "StartApp",
            "app": "com.termux"
        },
        {
            "timing": 40,
            "operationId": "ImeClipboard",
            "text": "echo ok"
        },
        {
            "timing": 80,
            "operationId": "PutScancode",
            "code": 29,
            "down": true
        },
        {
            "timing": 120,
            "operationId": "ImeCommitClipboard"
        },
        {
            "timing": 160,
            "operationId": "PutScancode",
            "code": 29,
            "down": false
        },
        {
            "timing": 160,
            "operationId": "PutScancode",
            "code": 28,
            "down": true
        },
        {
            "timing": 160,
            "operationId": "PutScancode",
            "code": 28,
            "down": false
        },
        {
            "timing": 160,
            "operationId": "AndroidHome"
        }
    ],
    "recordInfo": {
        "loopType": 0,
        "loopTimes": 100,
        "circleDuration": 200,
        "loopInterval": 0,
        "loopDuration": 0,
        "accelerateTimes": 1,
        "accelerateTimesEx": 1,
        "recordName": "t",
        "createTime": "test",
        "playOnBoot": false,
        "rebootTiming": 0
    }
}


要注意每個功能間都要有逗號,最後一組功能要把逗號拿掉,在介面上看不到編輯後的腳本就是哪裡的語法有問題被無視了。

創作回應

更多創作