下载地址:https://www.pan38.com/share.php?code=pvvmX 提取码:8888 【仅供学习参考】
设备信息获取、基本操作、图像识别等功能。使用时需要确保已安装Auto.js应用并授予必要权限。
建议开发者关注:
模拟点击操作的简单自动化测试脚本,仅供学习测试用途
// Auto.js基础功能演示脚本
console.show(); // 显示控制台
// 设备信息获取
toast("设备准备中...");
sleep(1000);
var width = device.width;
var height = device.height;
console.log("屏幕分辨率: " + width + "x" + height);
// 基础操作演示
function demoBasicOperations() {
// 返回桌面
home();
sleep(1000);
// 打开应用抽屉
swipe(width/2, height-100, width/2, height/3, 500);
sleep(1000);
// 查找并点击设置图标
var settings = id("com.android.launcher3:id/icon").findOne();
if(settings) {
console.log("找到设置图标");
settings.click();
sleep(2000);
back();
}
}
// 图像识别功能
function demoImageRecognition() {
// 截图并保存
var img = captureScreen();
images.save(img, "/sdcard/Pictures/screenshot.jpg");
console.log("截图已保存");
// 简单的颜色识别
var point = findColor(img, "#ff0000", {
region: [0, 0, width, height],
threshold: 10
});
if(point) {
console.log("找到红色像素点: " + point);
}
}
// 主函数
function main() {
console.log("脚本开始运行");
demoBasicOperations();
demoImageRecognition();
console.log("脚本执行完毕");
toast("脚本完成");
}
// 执行主函数
main();
/**
* Auto.js多功能演示脚本
* 包含设备控制、UI操作、图像识别等模块
*/
// ========== 初始化模块 ==========
console.show(); // 显示控制台
device.keepScreenOn(); // 保持屏幕常亮
events.setKeyInterceptionEnabled("volume_up", true); // 拦截音量键
// 设备信息
var deviceInfo = {
width: device.width,
height: device.height,
brand: device.brand,
model: device.model,
sdk: device.sdkInt
};
console.log("设备信息:", deviceInfo);
// ========== 工具函数模块 ==========
function randomSleep(min, max) {
let duration = random(min, max);
console.log("随机等待:", duration + "ms");
sleep(duration);
}
function safeClick(selector, timeout) {
let target = selector.findOne(timeout || 2000);
if(target) {
console.log("找到目标控件");
target.click();
return true;
}
console.log("未找到目标控件");
return false;
}
// ========== UI自动化模块 ==========
function testUIAutomation() {
// 返回桌面
home();
randomSleep(1000, 1500);
// 打开应用抽屉
swipe(device.width/2, device.height-100,
device.width/2, device.height/3, 500);
randomSleep(1000, 1500);
// 查找并点击设置
let settings = text("设置").findOne(3000);
if(settings) {
console.log("进入设置");
settings.click();
randomSleep(2000, 2500);
// 在设置中操作
scrollDown();
randomSleep(1000, 1500);
back();
}
}
// ========== 图像识别模块 ==========
function testImageRecognition() {
// 截图并保存
let img = captureScreen();
let path = "/sdcard/Pictures/auto_demo_" + new Date().getTime() + ".jpg";
images.save(img, path);
console.log("截图保存至:", path);
// 颜色识别
let redPoint = findColor(img, "#ff0000", {
region: [0, 0, device.width, device.height],
threshold: 10
});
if(redPoint) {
console.log("发现红色像素点:", redPoint);
}
// 图片匹配
let template = images.read("/sdcard/Pictures/template.jpg");
if(template) {
let result = findImage(img, template);
if(result) {
console.log("找到匹配图片:", result);
click(result.x, result.y);
}
}
}
// ========== 定时任务模块 ==========
function scheduleTask() {
// 每5分钟执行一次任务
setInterval(() => {
console.log("定时任务执行:", new Date().toLocaleString());
// 这里可以添加定时执行的操作
}, 5 * 60 * 1000);
}
// ========== 主程序 ==========
function main() {
console.log("脚本开始运行");
try {
testUIAutomation();
testImageRecognition();
// scheduleTask(); // 如需定时任务可取消注释
} catch(e) {
console.error("发生错误:", e);
}
console.log("脚本执行完毕");
device.cancelKeepingAwake(); // 取消屏幕常亮
}
// 启动主程序
main();
// 初始化OCR引擎
let ocr = $ocr.create({
models: "slim" // 快速模式
});
// 启动监控线程
const monitorThread = threads.start(function() {
setInterval(() => {
let img = captureScreen();
let result = ocr.recognize(img, [0,0,device.width,200]);
if(result.includes("新消息")) {
threads.mainThread().emit("new_message");
}
}, 3000);
});
// 主处理线程
threads.start(function() {
events.on("new_message", () => {
let img = captureScreen();
let text = ocr.recognize(img);
files.write("/sdcard/log.txt", text + "\n", "a");
});
});
// 安全退出控制
events.on("exit", () => {
monitorThread.interrupt();
$ocr.release();
});
Koa = require('koa');
const { execSync } = require('child_process');
const app = new Koa();
app.use(async ctx => {
if(ctx.path === '/ocr') {
const { imgPath } = ctx.request.body;
const result = execSync(`paddleocr --image ${imgPath}`);
ctx.body = { text: result.toString() };
}
});
app.listen(34567, () => {
console.log('OCR服务已启动');
});
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。