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