1. 概述
2. 用法
2.1. 怎樣安裝?
2.2. 怎樣錄制?
2.3. 怎樣播放?
2.4. 怎樣寫一個腳本?
2.5. 怎樣加密腳本?
2.6. 怎樣從電腦上傳腳本?
2.7. 怎樣購買授權?
2.8. 怎樣從商店中下載和購買腳本?
2.9. 怎樣將您的腳本發布在商店中?
3. 腳本
3.1. 基礎
3.2. 擴展函數
3.2.1. touchDown
3.2.2. touchMove
3.2.3. touchUp
3.2.4. tap
3.2.5. homeButtonDown
3.2.6. homeButtonUp
3.2.7. rootDir
3.2.8. usleep
3.2.9. log
3.2.10. alert
3.2.11. vibrate
3.2.12. screenshot
3.2.13. screenshotRegion
3.2.14. getScreenResolution
3.2.15. getScreenSize
3.2.16. getColor
3.2.17. findColor
3.2.18. findColorTap
3.2.19. findImage
3.2.20. findImageTap
3.2.21. appRun
3.2.22. appKill
3.2.23. appIsActive
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. 怎樣從電腦上傳腳本?
確保WIFI打開並與電腦處於同一局域網內,點擊工具欄中間的“Action”按鈕,然后選擇“上傳”來打開上傳界面,如啟動成功,界面上會顯示連接地址;
從電腦上用瀏覽器訪問上一步得到的連接地址,即可在打開的界面進行上傳.
2.7. 怎樣購買授權?
點擊“設置”界面的“授權”按鈕來打開授權信息界面;
當打開授權信息界面時會進行授權驗證;
如果授權驗證失敗,會顯示支付按鈕;
點擊支付按鈕會跳轉到瀏覽器窗口並打開支付頁面,請在那里完成支付。用支付寶支付的用戶請務必在支付頁面的“付款說明”中粘貼設備序列號;
當支付完成后,請在“設置”界面點擊“授權”來驗證;
當授權被驗證后,您將獲得無限播放時間和全部功能.
2.8. 怎樣從商店中下載和購買腳本?
您可以直接從商店中下載所有的腳本;
有些腳本是經過密碼加密的,你需要跟作者聯系來購買密碼;
腳本下載后會存放在你的腳本列表中,您可以像使用其它腳本一樣直接使用.
2.9. 怎樣將您的腳本發布在商店中?
您可以將腳本發布在商店中,以分享或銷售給其他人;
如果只想分享腳本,可以直接上傳.lua文件,如果不希望他人看到內容,可以進行無密碼加密;
如果想在商店中出售腳本,可以將腳本進行加密,並設置密碼。這樣需要的人會聯系您購買密碼.
3. 腳本
3.1. 基礎
您可以從這里學習Lua語言的使用:Lua Official Reference Manual.
3.2. 擴展函數
擴展函數用於擴展Lua語言,使具備模擬人類操作手機的一些能力。還提供截屏、顏色查找、顏色匹配、圖片匹配等能力。
3.2.1. touchDown(id, x, y)
在屏幕的(x, y)坐標按下.
參數
id: 手指的編號,默認為0即可.
x: 屏幕x坐標.
y: 屏幕y坐標.
返回值
無
示例
touchDown(0, 100, 200); -- 在坐標(100, 200)處按下.
3.2.2. touchMove(id, x, y)
移動手指到(x, y)坐標.
參數
id: 手指的編號,默認為0即可.
x: 屏幕x坐標.
y: 屏幕y坐標.
返回值
無
示例
touchDown(0, 100, 200); -- 在坐標(100, 200)處按下.
touchMove(0, 200, 200); -- 移動手指到坐標(200, 200)處.
3.2.3. touchUp(id, x, y)
從(x, y)坐標抬起按下的手指.
參數
id: 手指的編號,默認為0即可.
x: 屏幕x坐標.
y: 屏幕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).
參數
x: 屏幕x坐標.
y: 屏幕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秒.
參數
microseconds: 停頓多少微秒.
返回值
無
示例
usleep(1000000);
-- 停頓1秒
3.2.9. log(logContent)
記錄日志,可在日志界面查看。
參數
logContent: 需要記錄的日志內容.
返回值
無
示例
log("play here...");
3.2.10. alert(message)
彈出對話框顯示指定內容.
參數
message: 需要顯示的內容.
返回值
無
示例
alert("Hello world!");
3.2.11. vibrate()
震動一次.
參數
無
返回值
無
示例
vibrate(); -- 震動一次.
3.2.12. screenshot(filePath)
獲取當前截屏並存在指定地址.
參數
filePath: 截屏要存放的地址
返回值
無
示例
screenshot("/var/screenshot1.png");
3.2.13. screenshotRegion(filePath, x, y, width, height)
獲取指定區域的截屏,並存放在指定地址.
參數
filePath: 截屏要存放的地址
x: 截屏區域左上角x坐標.
y: 截屏區域左上角y坐標.
width: 截屏區域的寬度.
height: 解聘區域的高度.
返回值
無
示例
screenshotRegion("/var/screenshot2.png", 0, 0, 100, 100);
-- 對(0, 0, 100, 100)區域進行截屏並存放在指定地址.
3.2.14. getScreenResolution()
獲取屏幕分辨率.
參數
無
返回值
width: 屏幕分辨率寬度.
height: 屏幕分辨率高度.
示例
local w, h = getScreenResolution();
-- 分辨率寬度是1136, 分辨率高度是640.
3.2.15. getScreenSize()
獲取屏幕大小,這里是蘋果坐標系的大小。視網膜屏就是分辨率除以二的值.
參數
無
返回值
width: 屏幕寬度.
height: 屏幕高度.
示例
local width, height = getScreenSize();
-- iPhone 5:寬是320, 高是568
3.2.16. getColor(x, y)
在當前屏幕獲取指定坐標位置的顏色值.
參數
x: iOS坐標系中指定點的x坐標.
y: iOS坐標系中指定點的y坐標.
返回值
rgb: 指定坐標點的rgb顏色值.
示例
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.
參數
rgb: int類型的rgb值. (必需)
count: 最多查找多少個點,默認是0,表示查找所有匹配點。如果是1,表示查出第一個即可,若是2表示查出前兩個即可。查找的個數越少速度會越快. (可選).
返回值
locations: 找到的點的坐標。比如:{{x1, y1}, {x2, y2}, ...}.
示例
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秒進行點擊,並且不返回任何值.
參數
rgb: int類型的rgb值. (必需)
count: 最多查找多少個點,默認是0,表示查找所有匹配點。如果是1,表示查出第一個即可,若是2表示查出前兩個即可。查找的個數越少速度會越快. (可選).
返回值
無
示例
findColorTap(0x0000ff, 2); -- 找到顏色為0x0000ff的前兩個坐標點並依次間隔0.016秒點擊它們.
3.2.19. findImage {imagePath, count, fuzzy, ignoreColors}
在當前屏幕查找匹配指定圖片的區域,以table形式返回找到的所有區域的左上角坐標.
參數
imagePath: 需要查找的圖片的路徑. (必需)
count: 最多查找多少個區域,默認是0,表示查找所有匹配區域。如果是1,表示查出第一個即可,若是2表示查出前兩個即可。查找的個數越少速度會越快. (可選).
fuzzy: 查找的模糊度,默認是1,表示完全匹配,0.5表示匹配50%的像素點即可. (可選)
ignoreColors: 在查找中需要無視的顏色值,以數組形式提供(table in lua). (可選).
返回值
locations: 匹配區域左上角坐標的數組. 比如: {{x1, y1}, {x2, y2}, ...}.
示例
-- 示例 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秒進行點擊,並且不返回任何值.
參數
imagePath: 需要查找的圖片的路徑. (必需)
count: 最多查找多少個區域,默認是0,表示查找所有匹配區域。如果是1,表示查出第一個即可,若是2表示查出前兩個即可。查找的個數越少速度會越快. (可選).
fuzzy: 查找的模糊度,默認是1,表示完全匹配,0.5表示匹配50%的像素點即可. (可選)
ignoreColors: 在查找中需要無視的顏色值,以數組形式提供(table in lua). (可選).
返回值
無
示例
-- 示例 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啟動指定應用.
參數
appIdentifier: 應用標識,如"com.apple.mobilesafari". (必需)
返回值
無
示例
appRun("com.apple.mobilesafari");
-- 運行safari
3.2.22. appKill(appIdentifier)
用appIdentifier關閉指定應用.
參數
appIdentifier: 應用標識,如"com.apple.mobilesafari". (必需)
返回值
無
示例
appKill("com.apple.mobilesafari");
-- 關閉運行着的safari
3.2.23. appIsActive(appIdentifier)
檢查指定應用是否處於活躍和打開的狀態.
參數
appIdentifier: 應用標識,如"com.apple.mobilesafari". (必需)
返回值
ifAppIsActive: bool類型結果.
示例
b = appIsActive("com.apple.mobilesafari");
-- 檢查App打開狀態