操作指南

1. 概述
2. 用法
3. 脚本

1. 概述

AutoTouch用来录制和回放您在移动设备上的各种触摸和点击操作,它还可以运行事先用Lua语言写好的脚本,通过模拟人的触摸操作,来实现更多意想不到的功能。您可以用它自动玩游戏打怪赚取金币、批量编辑照片、进行程序自动化测试或者自动登入邮箱等等。

现在AutoTouch已经具备了录制和回放大多数人类操作的能力,比如触摸,点击Home实体键,点击音量实体键,点击声音开关实体键、锁屏实体键等等。并且达到了精确和顺滑的效果。它还提供了诸如截屏、区域截屏、颜色查找、颜色匹配、图片匹配等一些列扩展函数,具备了更大可挖掘的潜力。结合这些奇异的能力,能限制您的只有想象力了。

2. 用法

2.1. 怎样安装?

  1. 确保您已经添加了BigBoss源到Cydia中;
  2. 在Cydia中搜索“AutoTouch”,找到并安装;
  3. 如果之前未安装过“Activator”插件,则安装AutoTouch时会自动安装此插件,该插件用于手势控制。请勿卸载它,否则AutoTouch会被一并卸载。

2.2. 怎样录制?

  1. 在任何您想开始录制的界面,长按音量减键(或您设置的其它Activator控制动作),来弹出控制面板,控制面板上包含一个录制按钮和一个脚本列表;
  2. 点击控制面板上的“录制”按钮,它将震动提示并开始录制;
  3. 接下来就请做您想做的触摸或其它操作了,比如打怪等;
  4. 当您想要停止录制时,长按音量减键(或前述的其它控制动作),直到弹出提示框显示“录制结束”,它会震动提示并停止;
  5. 接下来您就可以到AutoTouch中查看、管理或者播放刚才录制的脚本了。脚本默认用创建时间作为名称,你可修改为更友好的名称.

2.3. 怎样播放?

  1. 在您希望开始播放的界面,长按音量减键(或您设置的其它控制动作)来调出控制面板;
  2. 在控制面板上点击选择您想播放的脚本;
  3. 通常接下来(除非您曾将此脚本设置为直接播放)会弹出播放设置对话框以询问循环播放次数、间隔和速度;
  4. 点击“立即运行”后它将依据您刚才的设置立即进行播放,此时会有震动提示开始。播放完成后会自动停止并弹出对话框提示结束(您可在设置中关闭对话框提示)。您还可通过长按音量件键(或前述其它动作)来中断播放;
  5. 如果您点击了“稍后运行”,它将进入“准备运行”的状态,在此状态中,可通过点击(不是长按,不可修改)音量减键来重复多次地启动或中断播放,且不会有任何询问对话框再来打断您。再次长按(或前述其它动作)来退出“准备播放”状态;
  6. 您可在“播放设置”界面将脚本设为“直接播放”并为其设置默认的播放设置,这样当选择此脚本时将直接据此设置进行播放,不会再弹出播放设置对话框进行询问.

2.4. 怎样写一个脚本?

  1. 点击工具栏中间的“Action”按钮,选择“新建文件”即可打开脚本新建窗口;
  2. 在脚本编辑界面编写代码;
  3. 然后点击“保存”按钮并输入名称进行保存.

2.5. 怎样加密脚本?

  1. 在AutoTouch点击脚本,选择“加密”;
  2. 输入加密密码,无需密码留空即可;
  3. 点击确定即可完成加密,并生成一个同名但.lua.e结尾的加密文件.
  4. 可以选择加密脚本进行播放,设有密码的根据提示输入密码即可.

2.6. 怎样从电脑上传脚本?

  1. 确保WIFI打开并与电脑处于同一局域网内,点击工具栏中间的“Action”按钮,然后选择“上传”来打开上传界面,如启动成功,界面上会显示连接地址;
  2. 从电脑上用浏览器访问上一步得到的连接地址,即可在打开的界面进行上传.

2.7. 怎样购买授权?

  1. 点击“设置”界面的“授权”按钮来打开授权信息界面;
  2. 当打开授权信息界面时会进行授权验证;
  3. 如果授权验证失败,会显示支付按钮;
  4. 点击支付按钮会跳转到浏览器窗口并打开支付页面,请在那里完成支付。用支付宝支付的用户请务必在支付页面的“付款说明”中粘贴设备序列号;
  5. 当支付完成后,请在“设置”界面点击“授权”来验证;
  6. 当授权被验证后,您将获得无限播放时间和全部功能.

2.8. 怎样从商店中下载和购买脚本?

  1. 您可以直接从商店中下载所有的脚本;
  2. 有些脚本是经过密码加密的,你需要跟作者联系来购买密码;
  3. 脚本下载后会存放在你的脚本列表中,您可以像使用其它脚本一样直接使用.

2.9. 怎样将您的脚本发布在商店中?

  1. 您可以将脚本发布在商店中,以分享或销售给其他人;
  2. 如果只想分享脚本,可以直接上传.lua文件,如果不希望他人看到内容,可以进行无密码加密;
  3. 如果想在商店中出售脚本,可以将脚本进行加密,并设置密码。这样需要的人会联系您购买密码.

3. 脚本

3.1. 基础

您可以从这里学习Lua语言的使用:Lua Official Reference Manual.


3.2. 扩展函数

扩展函数用于扩展Lua语言,使具备模拟人类操作手机的一些能力。还提供截屏、颜色查找、颜色匹配、图片匹配等能力。


3.2.1. touchDown(id, x, y)

在屏幕的(x, y)坐标按下.

touchDown(0, 100, 200); -- 在坐标(100, 200)处按下.

3.2.2. touchMove(id, x, y)

移动手指到(x, y)坐标.

touchDown(0, 100, 200); -- 在坐标(100, 200)处按下.
touchMove(0, 200, 200); -- 移动手指到坐标(200, 200)处.

3.2.3. touchUp(id, x, y)

从(x, y)坐标抬起按下的手指.

touchDown(0, 100, 200); -- 在坐标(100, 200)处按下.
touchMove(0, 200, 200); -- 移动手指到坐标(200, 200)处.
touchUp(0, 200, 200); -- 在坐标(200, 200)处抬起按下的手指.

3.2.4. tap(x, y)

点击坐标点(x, y).

tap(100, 200); -- 点击坐标点(100, 200).

3.2.5. homeButtonDown()

按下Home实体键.

homeButtonDown();
-- 按下Home键.

3.2.6. homeButtonUp()

抬起按下的Home键.

homeButtonUp();
-- 抬起按下的Home键.

3.2.7. rootDir()

获得脚本存放的默认地址.

local dirPath = rootDir();
-- dirPath = "/var/mobile/Library/AutoTouch/Scripts/"

3.2.8. usleep(microseconds)

停顿若干个微秒,即1/1000000秒.

usleep(1000000);
-- 停顿1秒

3.2.9. log(logContent)

记录日志,可在日志界面查看。

log("play here...");

3.2.10. alert(message)

弹出对话框显示指定内容.

alert("Hello world!");

3.2.11. vibrate()

震动一次.

vibrate(); -- 震动一次.

3.2.12. screenshot(filePath)

获取当前截屏并存在指定地址.

screenshot("/var/screenshot1.png"); 

3.2.13. screenshotRegion(filePath, x, y, width, height)

获取指定区域的截屏,并存放在指定地址.

screenshotRegion("/var/screenshot2.png", 0, 0, 100, 100);
-- 对(0, 0, 100, 100)区域进行截屏并存放在指定地址.

3.2.14. getScreenResolution()

获取屏幕分辨率.

local w, h = getScreenResolution();
-- 分辨率宽度是1136, 分辨率高度是640.

3.2.15. getScreenSize()

获取屏幕大小,这里是苹果坐标系的大小。视网膜屏就是分辨率除以二的值.

local width, height = getScreenSize();
-- iPhone 5:宽是320, 高是568

3.2.16. getColor(x, y)

在当前屏幕获取指定坐标位置的颜色值.

local rgb = getColor(100, 200);
alert("rgb:" .. rgb);
-- rgb:16777215

3.2.17. findColor(rgb, count)

在当前屏幕获取所有匹配指定颜色的坐标点. 注意: 您应当这样使用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

3.2.18. findColorTap(rgb, count)

该函数与findColor基本相同,区别在于findColorTap找到那些点并依次间隔0.016秒进行点击,并且不返回任何值.

findColorTap(0x0000ff, 2); -- 找到颜色为0x0000ff的前两个坐标点并依次间隔0.016秒点击它们.

3.2.19. findImage {imagePath, count, fuzzy, ignoreColors}

在当前屏幕查找匹配指定图片的区域,以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

3.2.20. findImageTap {imagePath, count, fuzzy, ignoreColors}

该函数与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}};
      

3.2.21. appRun(appIdentifier)

用appIdentifier启动指定应用.

appRun("com.apple.mobilesafari");
-- 运行safari
      

3.2.22. appKill(appIdentifier)

用appIdentifier关闭指定应用.

appKill("com.apple.mobilesafari");
-- 关闭运行着的safari
      

3.2.23. appIsActive(appIdentifier)

检查指定应用是否处于活跃和打开的状态.

b = appIsActive("com.apple.mobilesafari");
-- 检查App打开状态