操作指南

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打開狀態