AutoTouch用来录制和回放您在移动设备上的各种触摸和点击操作,它还可以运行事先用Lua语言写好的脚本,通过模拟人的触摸操作,来实现更多意想不到的功能。您可以用它自动玩游戏打怪赚取金币、批量编辑照片、进行程序自动化测试或者自动登入邮箱等等。
现在AutoTouch已经具备了录制和回放大多数人类操作的能力,比如触摸,点击Home实体键,点击音量实体键,点击声音开关实体键、锁屏实体键等等。并且达到了精确和顺滑的效果。它还提供了诸如截屏、区域截屏、颜色查找、颜色匹配、图片匹配等一些列扩展函数,具备了更大可挖掘的潜力。结合这些奇异的能力,能限制您的只有想象力了。
您可以从这里学习Lua语言的使用:Lua Official Reference Manual.
扩展函数用于扩展Lua语言,使具备模拟人类操作手机的一些能力。还提供截屏、颜色查找、颜色匹配、图片匹配等能力。
在屏幕的(x, y)坐标按下.
touchDown(0, 100, 200); -- 在坐标(100, 200)处按下.
移动手指到(x, y)坐标.
touchDown(0, 100, 200); -- 在坐标(100, 200)处按下. touchMove(0, 200, 200); -- 移动手指到坐标(200, 200)处.
从(x, y)坐标抬起按下的手指.
touchDown(0, 100, 200); -- 在坐标(100, 200)处按下. touchMove(0, 200, 200); -- 移动手指到坐标(200, 200)处. touchUp(0, 200, 200); -- 在坐标(200, 200)处抬起按下的手指.
点击坐标点(x, y).
tap(100, 200); -- 点击坐标点(100, 200).
按下Home实体键.
homeButtonDown(); -- 按下Home键.
抬起按下的Home键.
homeButtonUp(); -- 抬起按下的Home键.
获得脚本存放的默认地址.
local dirPath = rootDir(); -- dirPath = "/var/mobile/Library/AutoTouch/Scripts/"
停顿若干个微秒,即1/1000000秒.
usleep(1000000); -- 停顿1秒
记录日志,可在日志界面查看。
log("play here...");
弹出对话框显示指定内容.
alert("Hello world!");
震动一次.
vibrate(); -- 震动一次.
获取当前截屏并存在指定地址.
screenshot("/var/screenshot1.png");
获取指定区域的截屏,并存放在指定地址.
screenshotRegion("/var/screenshot2.png", 0, 0, 100, 100);
-- 对(0, 0, 100, 100)区域进行截屏并存放在指定地址.
获取屏幕分辨率.
local w, h = getScreenResolution(); -- 分辨率宽度是1136, 分辨率高度是640.
获取屏幕大小,这里是苹果坐标系的大小。视网膜屏就是分辨率除以二的值.
local width, height = getScreenSize(); -- iPhone 5:宽是320, 高是568
在当前屏幕获取指定坐标位置的颜色值.
local rgb = getColor(100, 200);
alert("rgb:" .. rgb);
-- rgb:16777215
在当前屏幕获取所有匹配指定颜色的坐标点. 注意: 您应当这样使用find(0x0000ff, 5), 而非这样:find(rgb=0x0000ff, count=5), 这与findImage函数不同, 因为findImage的参数整体是一个table.
local result = findColor(0x0000ff, 2);
for i, v in pairs(result) do
log("x:" .. v[1] .. "y:" .. v[2]);
end
该函数与findColor基本相同,区别在于findColorTap找到那些点并依次间隔0.016秒进行点击,并且不返回任何值.
findColorTap(0x0000ff, 2); -- 找到颜色为0x0000ff的前两个坐标点并依次间隔0.016秒点击它们.
在当前屏幕查找匹配指定图片的区域,以table形式返回找到的所有区域的左上角坐标.
-- 示例 1:
local result = findImage {imagePath="/var/spirit.png", count=5};
for i, v in pairs(result) do
log("x:" .. v[1] .. "y:" .. v[2]);
end
-- 示例 2:
local result = findImage {imagePath="/var/spirit.png", fuzzy=0.6};
for i, v in pairs(result) do
log("x:" .. v[1] .. "y:" .. v[2]);
end
-- 示例 3:
local result = findImage {imagePath="/var/spirit.png", ignoreColors={0xffffff, 0x2b2b2b}};
for i, v in pairs(result) do
log("x:" .. v[1] .. "y:" .. v[2]);
end
-- 示例 4:
local result = findImage {imagePath="/var/spirit.png", count=1, fuzzy=0.9, ignoreColors={0x0000ff}};
for i, v in pairs(result) do
log("x:" .. v[1] .. "y:" .. v[2]);
end
该函数与findImage基本相同,区别在于findImageTap找到那些区域并依次间隔0.016秒进行点击,并且不返回任何值.
-- 示例 1:
findImageTap {imagePath="/var/spirit.png", count=5};
-- 示例 2:
findImageTap {imagePath="/var/spirit.png", fuzzy=0.6};
-- 示例 3:
findImageTap {imagePath="/var/spirit.png", ignoreColors={0xffffff, 0x2b2b2b}};
-- 示例 4:
findImageTap {imagePath="/var/spirit.png", count=1, fuzzy=0.9, ignoreColors={0x0000ff}};
用appIdentifier启动指定应用.
appRun("com.apple.mobilesafari");
-- 运行safari
用appIdentifier关闭指定应用.
appKill("com.apple.mobilesafari");
-- 关闭运行着的safari
检查指定应用是否处于活跃和打开的状态.
b = appIsActive("com.apple.mobilesafari");
-- 检查App打开状态