android使用懸浮窗體製作腳本

android使用懸浮窗體製作腳本 — 圖 1

有時候玩遊戲 或是需要一直持續重複動作的事情太浪費時間了 所以做了一個腳本使用ADB來讓他自動完成一些事情

畫面

實際RUN的過程就不演示了

畫面 — 圖 2

也可將UI顯示成多個格子來顯示距離 來計算每個距離需要點擊多久 前陣子微信的小遊戲跳一跳 也可以用這方法來實現 來得到滿分

畫面 — 圖 3

中國手機有些廠家也有使用懸浮窗體的方式結合OCR 來將圖像辨識 選擇區域後會將文字大爆炸顯示出來 讓你複製等等之類的功能

實現思路

這邊只說明其中一部分 顏色辨識的部分 如果要辨識許多文字 或是數字 可以考慮先學習一份ocr用學習的來辨識會比較好一些


//讀取畫面的座標點 的RGB數值  將R G B 分開讀出的值 減掉允許的+-誤差值 來確定是否當前是你要的畫面
//確定後 在使用ADB來去做你要做的事情 類似代碼如下

pixel=bitmap.getPixel(GameColorUtils.getDialog_checkbtntwo()[0],GameColorUtils.getDialog_checkbtntwo()[1]);
     if ((GameColorUtils.getColors()[3][0] - Color.red(pixel) >= GameColorUtils.getAx()[1][0] && GameColorUtils.getColors()[3][0] - Color.red(pixel) <= GameColorUtils.getAx()[0][0]) &&
             (GameColorUtils.getColors()[3][1] - Color.green(pixel) >= GameColorUtils.getAx()[1][1] && GameColorUtils.getColors()[3][1] - Color.green(pixel) <= GameColorUtils.getAx()[0][1])&&
             (GameColorUtils.getColors()[3][2] - Color.blue(pixel) >= GameColorUtils.getAx()[1][2] && GameColorUtils.getColors()[3][2] - Color.blue(pixel) <= GameColorUtils.getAx()[0][2])) {
         CommandResult result = Shell.SU.run("input tap 695 515");
         Log.i("PalyGame", " sleep 5 ms");
         return 400;
     }

//畫面座標值
static int[][] colors = {
      {152, 117, 60},//廣告
        {255, 240, 214}, // 主畫面

};

// 允許的誤差
static int[][] ax = {
        {10, 10, 10},
        {-10, -10, -10}
};