AutoGod:一款擁有AI視覺的安卓自動(dòng)化框架
一、背景
在安卓自動(dòng)化領(lǐng)域,傳統(tǒng)方案存在幾個(gè)痛點(diǎn):
- 元素定位脆弱:UI改版后腳本失效
- 兼容性差:不同設(shè)備需適配多套腳本
- 安全性低:腳本容易被反編譯
Auto God通過AI視覺識(shí)別 + VMP混淆引擎,重新定義了安卓自動(dòng)化。

AIGamePro特點(diǎn).png
二、核心技術(shù)架構(gòu)
2.1 多引擎OCR識(shí)別
支持三種識(shí)別引擎,根據(jù)場(chǎng)景靈活切換:
// 切換引擎
$ocr.v("ncnn"); // 速度最快,適合實(shí)時(shí)識(shí)別
$ocr.v("mlkit"); // 準(zhǔn)確率高,兼容性好(默認(rèn))
$ocr.v("ppv5"); // 支持中英文+特殊字符
// 初始化
$ocr.init();
// 灰度化識(shí)別(速度提升30%-50%)
var options = {
region: [0, 0, 500, 300],
gray: true
};
var result = $ocr.detect(options);
if (result.isSuccess()) {
var lines = result.getLines();
for (var i = 0; i < lines.size(); i++) {
console.log(lines.get(i).getText());
}
}
2.2 YOLO目標(biāo)檢測(cè)
支持YoloV5-V13全系列:
var yolo = $yolo.create(8); // 創(chuàng)建YoloV8
// 配置參數(shù)
yolo.setUseGpu(true); // GPU加速
yolo.setSize(640, 640); // 輸入尺寸(必須32的倍數(shù))
yolo.setProbThreshold(0.5); // 置信度閾值
// 加載自定義模型
// yolo.loadModel("/sdcard/custom.model");
// 執(zhí)行檢測(cè)
var img = $img.capture();
var detections = yolo.detect(img);
// 處理結(jié)果
for (var i = 0; i < detections.length; i++) {
var det = detections[i];
console.log("標(biāo)簽: " + det.label +
" 位置: (" + det.x + "," + det.y + ")" +
" 置信度: " + det.confidence);
}
2.3 擴(kuò)展庫加載
支持加載Dex、Jar、Apk、So文件:
// 加載單個(gè)dex文件
$ext.loadDex("/sdcard/custom.dex");
// 加載多個(gè)dex文件
$ext.loadDexs(["/sdcard/lib1.dex", "/sdcard/lib2.dex"]);
// 加載jar文件
$ext.loadJar("/sdcard/library.jar");
// 加載apk文件
$ext.loadApk("/sdcard/plugin.apk");
// 加載帶so庫的dex
var options = {
path: ["/sdcard/custom.dex"],
so: [
{path: "/sdcard/libnative.so", load: true}
]
};
$ext.loadDex(options);
三、應(yīng)用場(chǎng)景
3.1 自動(dòng)化測(cè)試
// 測(cè)試用例:登錄流程
function testLogin() {
// 識(shí)別并點(diǎn)擊登錄按鈕
var loginBtn = $ocr.getPoint("登錄", {
region: [0, 0, 1080, 500]
});
if (loginBtn == null) {
console.log("測(cè)試失敗:登錄按鈕未找到");
return false;
}
$act.click(loginBtn);
sleep(1000);
// 驗(yàn)證登錄結(jié)果
var result = $ocr.line({
region: [0, 200, 1080, 400],
gray: true
});
if (result.indexOf("歡迎") !== -1) {
console.log("測(cè)試通過");
return true;
}
return false;
}
testLogin();
3.2 游戲自動(dòng)化
// 初始化:創(chuàng)建并緩存YOLO對(duì)象
var storage = $storage.create("game_config");
var yoloId = storage.getStr("yolo_id", null);
if (yoloId == null || !$yolo.has(yoloId)) {
var yolo = $yolo.create(8);
yolo.setUseGpu(true);
yolo.setSize(640, 640);
storage.putStr("yolo_id", yolo.getId());
}
// 使用:獲取緩存的YOLO對(duì)象
var yolo = $yolo.get(storage.getStr("yolo_id"));
// 檢測(cè)游戲目標(biāo)
var screenImg = $img.capture();
var targets = yolo.detect(screenImg);
// 點(diǎn)擊目標(biāo)
for (var i = 0; i < targets.length; i++) {
$act.click(targets[i].x, targets[i].y);
sleep(500);
}
3.3 企業(yè)級(jí)RPA
// 自動(dòng)填寫表單
function fillForm(data) {
// 填寫姓名
var nameField = $ocr.getPoint("姓名");
if (nameField) {
$act.click(nameField);
$act.input(data.name);
}
// 填寫電話
var phoneField = $ocr.getPoint("電話");
if (phoneField) {
$act.click(phoneField);
$act.input(data.phone);
}
// 提交
var submitBtn = $ocr.getPoint("提交");
if (submitBtn) {
$act.click(submitBtn);
}
}
var formData = {
name: "張三",
phone: "13800138000"
};
fillForm(formData);
四、安全機(jī)制
4.1 VMP混淆引擎
腳本在執(zhí)行前會(huì)編譯成混淆碼:
- 函數(shù)名加密
- 字符串加密
- 字段混淆
- 無法還原源碼
4.2 云端驗(yàn)證
- 非對(duì)稱加密傳輸
- 本地+云端雙校驗(yàn)
- 防離線破解
五、并發(fā)編程支持
// 多線程截圖(Auto God支持并發(fā))
function task1() {
var img1 = $img.capture();
// 處理圖片...
}
function task2() {
var img2 = $img.capture();
// 處理圖片...
}
// 兩個(gè)線程可以同時(shí)截圖,互不干擾
var thread1 = new Thread(task1);
var thread2 = new Thread(task2);
thread1.start();
thread2.start();
六、總結(jié)
Auto God的優(yōu)勢(shì):
- ? AI視覺識(shí)別,無需固定坐標(biāo)
- ? 多引擎支持,靈活切換
- ? VMP混淆,安全性高
- ? 并發(fā)編程,穩(wěn)定可靠
- ? 擴(kuò)展性強(qiáng),支持第三方庫

畫圖-app截屏1.png