DustinChu Blog

android使用懸浮窗體製作腳本

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

畫面

實際RUN的過程就不演示了

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

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

實現思路

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//讀取畫面的座標點 的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}
};

文章標題:android使用懸浮窗體製作腳本

文章作者:Dustinchu

發布時間:2018年01月06日 - 20:01

最後更新:2018年05月10日 - 21:05

原始連結:https://dustinchu.github.io/2018/01/06/android使用懸浮窗體製作腳本/

許可協議: 屬名-非商業性使用-禁止編譯 4.0 國際 轉載請保留原文連結及作者。

相關文章: