初步了解一下Lua腳本

這件事要追溯到去年快下半年的時(shí)候了准颓,那時(shí)候各大短視頻都在推精簡(jiǎn)版App,如精簡(jiǎn)版快手、精簡(jiǎn)版抖音等棺妓,它們可以通過刷金幣來?yè)Q人民幣攘已,我之前傻里傻氣利用dispatchGesture+AccessibilityService來實(shí)現(xiàn)自動(dòng)刷新視頻,可以進(jìn)行跨應(yīng)用刷抖音怜跑、快手样勃、趣多多等視頻app,而且我還給我的軟件取名叫刷多多,但是低版本不能用,后來我才知道有很多可以自定腳本的手機(jī)自動(dòng)化輔助軟件,可以很簡(jiǎn)單的實(shí)現(xiàn)那種簡(jiǎn)單的輔助操作峡眶,如:按鍵精靈剧防、autojs、觸動(dòng)精靈等辫樱。

?本來我是想嘗試autojs的峭拘,它是使用JavaScript作為腳本語(yǔ)言,我也是比較熟悉的搏熄,但是感覺觸動(dòng)精靈可能更活躍一些棚唆,而且之前在玩Redis的時(shí)候,也簡(jiǎn)單的編寫了一些Lua腳本心例,所以就想嘗試基于觸動(dòng)精靈來做一個(gè)自動(dòng)刷視頻的腳本宵凌,在開始之前劳淆,我們需要先對(duì)Lua腳本了解一些簡(jiǎn)單常用的知識(shí)榄融。

Lua腳本的內(nèi)核非常小桥滨,在5.0.2版的Lua的內(nèi)核小于120KB尝苇,而且啟動(dòng)速度快,從而非常適合做嵌入到其他程序中拘泞,比如現(xiàn)在比較流行的Redis疯汁,還有現(xiàn)在很多游戲也是使用Lua腳本來實(shí)現(xiàn)熱更新涕蚤。

在開始之前自然是安裝環(huán)境了歉糜,大家可以先去Lua下載地址下載乘寒,當(dāng)然這個(gè)版本有些老了,所以這里匪补,我們嘗試來基于源碼進(jìn)行編譯伞辛、安裝。 這里我們需要這些東西:

a suitable C-compiler (TDM GCC)

Lua source package 首先下載安裝TDM GCC,安裝非常方便修改相應(yīng)的參數(shù)直接下一步即可?



?TDM GCC安裝成功后夯缺,就可以去Lua官網(wǎng)下載最新的源碼啦蚤氏,這里我下載的是lua-5.4.0,源碼直接解壓即可,這里踊兜,我的TDM GCC和解壓后的lua源碼都放在D盤根目錄下竿滨,現(xiàn)在我們需要?jiǎng)?chuàng)建一個(gè)cmd腳本,腳本的內(nèi)容如下:

@echo off

? ? ? ? :: ========================

? ? ? ? :: file build.cmd

? ? ? ? :: ========================

? ? ? ? setlocal

? ? ? ? :: you may change the following variable's value

? ? ? ? :: to suit the downloaded version

? ? ? ? set lua_version=5.4.0

? ? ? ? set work_dir=%~dp0

? ? ? ? :: Removes trailing backslash

? ? ? ? :: to enhance readability in the following steps

? ? ? ? set work_dir=%work_dir:~0,-1%

? ? ? ? set lua_install_dir=%work_dir%\lua

? ? ? ? set compiler_bin_dir=%work_dir%\TDM-GCC-64\bin

? ? ? ? set lua_build_dir=%work_dir%\lua-%lua_version%

? ? ? ? set path=%compiler_bin_dir%;%path%

? ? ? ? cd /D %lua_build_dir%

? ? ? ? mingw32-make PLAT=mingw

? ? ? ? echo.

? ? ? ? echo **** COMPILATION TERMINATED ****

? ? ? ? echo.

? ? ? ? echo **** BUILDING BINARY DISTRIBUTION ****

? ? ? ? echo.

? ? ? ? :: create a clean "binary" installation

? ? ? ? mkdir %lua_install_dir%

? ? ? ? mkdir %lua_install_dir%\doc

? ? ? ? mkdir %lua_install_dir%\bin

? ? ? ? mkdir %lua_install_dir%\include

? ? ? ? copy %lua_build_dir%\doc\*.* %lua_install_dir%\doc\*.*

? ? ? ? copy %lua_build_dir%\src\*.exe %lua_install_dir%\bin\*.*

? ? ? ? copy %lua_build_dir%\src\*.dll %lua_install_dir%\bin\*.*

? ? ? ? copy %lua_build_dir%\src\luaconf.h %lua_install_dir%\include\*.*

? ? ? ? copy %lua_build_dir%\src\lua.h %lua_install_dir%\include\*.*

? ? ? ? copy %lua_build_dir%\src\lualib.h %lua_install_dir%\include\*.*

? ? ? ? copy %lua_build_dir%\src\lauxlib.h %lua_install_dir%\include\*.*

? ? ? ? copy %lua_build_dir%\src\lua.hpp %lua_install_dir%\include\*.*

? ? ? ? echo.

? ? ? ? echo **** BINARY DISTRIBUTION BUILT ****

? ? ? ? echo.

? ? ? ? %lua_install_dir%\bin\lua.exe -e"print [[Hello!]];print[[Simple Lua test successful!!!]]"

? ? ? ? echo.

? ? ? ? pause

雙擊腳本捏境,即可自動(dòng)編譯lua源碼了?


?那么于游,這里我們最好是手動(dòng)把lua添加到環(huán)境變量中?

?添加至環(huán)境變量后,就可以在cmd命令窗口中執(zhí)行l(wèi)ua命令了典蝌,接下來就開始lua的一些常用語(yǔ)法熟悉吧曙砂。

這里我還是用VS CODE來作為lua腳本的編輯器,首先我新建了一個(gè)demo.lua的腳本文件骏掀,然后在vs code中安裝lua插件,這里我安裝了一個(gè)名為L(zhǎng)ua Debug的插件。好了截驮,按照慣例笑陈,先來個(gè)print("Hello World!")?

http://lua-users.org/wiki/BuildingLuaInWindowsForNewbies

變量

lua是腳本語(yǔ)言,所以變量是沒有類型葵袭,只有你給它賦值之后才會(huì)確定類型涵妥,另外lua中默認(rèn)是全局變量,全局變量會(huì)污染全局坡锡,覆蓋變量

name='eyiadmin'

age=100

print(name,age)

name='admin'

print(name,age)

?如果我們想要定義為局部變化的話蓬网,需要在變量名前面加一個(gè)local,如:local name='eyiadmin'

基本數(shù)據(jù)類型

Lua 有一下8種基本類型:

nil:空值

string:字符串

number:數(shù)值

boolean:布爾值,只有true和false

function:函數(shù)類型

userdata

thread:線程類型

table:關(guān)系表類型鹉勒,可以是數(shù)組或者字典

下面我們就來簡(jiǎn)單演示一下各個(gè)常用類型吧,

name='eyiadmin'

age=100

isMan=true

print(name,age,isMan)

function printInfo(info)

? ? print(info)

end

printInfo('my name is eyiadmin')

table={'my','name','is','eyiadmin'}

for循環(huán)

語(yǔ)法格式如下:

for i=起始值, 結(jié)束值[,累計(jì)值(可忽略)] do

? ? 語(yǔ)句塊

end


?遍歷table,

table={'my','name','is','eyiadmin'}

for index,item in ipairs(table) do

? ? print(item)

end

注釋帆锋、語(yǔ)句塊

lua也有單行和多行注釋,單行使用--禽额,多行使用--[[和]]?

?關(guān)于語(yǔ)句塊锯厢,一般程序的語(yǔ)句塊是通過成對(duì)的{}來實(shí)現(xiàn),Python中是通過空格占位符來實(shí)現(xiàn)脯倒,在lua中是通過do xxx end來實(shí)現(xiàn)?

好了实辑,今天就先到這里吧,一般簡(jiǎn)單是腳本可以應(yīng)付了藻丢,如果下次我們使用觸動(dòng)精靈來編寫腳本有遇到新知識(shí)剪撬,我們?cè)賮碛涗洶伞T谶@里我聲明一下悠反,我和觸動(dòng)精靈無任何關(guān)系残黑,只是最近想刷刷視頻,突然找到這個(gè)東西问慎。

我只是記錄我的學(xué)習(xí)過程萍摊,由于書讀得少,可能很多地方表述或者是理解得不對(duì)如叼,請(qǐng)輕噴并指正冰木。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市笼恰,隨后出現(xiàn)的幾起案子踊沸,更是在濱河造成了極大的恐慌,老刑警劉巖社证,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逼龟,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡追葡,警方通過查閱死者的電腦和手機(jī)腺律,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門奕短,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人匀钧,你說我怎么就攤上這事翎碑。” “怎么了之斯?”我有些...
    開封第一講書人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵日杈,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我佑刷,道長(zhǎng)莉擒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任瘫絮,我火速辦了婚禮涨冀,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘檀何。我一直安慰自己蝇裤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開白布频鉴。 她就那樣靜靜地躺著栓辜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪垛孔。 梳的紋絲不亂的頭發(fā)上藕甩,一...
    開封第一講書人閱讀 51,482評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音周荐,去河邊找鬼狭莱。 笑死,一個(gè)胖子當(dāng)著我的面吹牛概作,可吹牛的內(nèi)容都是我干的腋妙。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼讯榕,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼骤素!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起愚屁,我...
    開封第一講書人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤济竹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后霎槐,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體送浊,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年丘跌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了袭景。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片唁桩。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖浴讯,靈堂內(nèi)的尸體忽然破棺而出朵夏,到底是詐尸還是另有隱情蔼啦,我是刑警寧澤榆纽,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站捏肢,受9級(jí)特大地震影響奈籽,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鸵赫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一衣屏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧辩棒,春花似錦狼忱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至者吁,卻和暖如春窘俺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背复凳。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工瘤泪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人育八。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓对途,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親髓棋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子实檀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354