LuaScriptCore一個可以讓你在你的Android工程中使用lua腳本的方式
集成
項(xiàng)目原地址 https://github.com/vimfung/LuaScriptCore
目前已經(jīng)有2.0版本和1.X版本的节腐,酌情選擇
通過Gradle
Gradle中加入集成
compile 'com.github.vimfung.luascriptcore:luascriptcore:1.3.1'
最后面的版本號可以更改栈暇,具體版本號可參見
https://github.com/vimfung/LuaScriptCore/wiki/%E6%9B%B4%E6%96%B0%E5%8E%86%E5%8F%B2
手動
查看wiki,個人配置了沒有問題饺律。
配置后桐罕,項(xiàng)目工程圖。
image.png
使用流程
//注冊上下文對象
LuaContext context = LuaContext.create(this);
//直接進(jìn)行簡單的lua交互式語言
context.evalScript("print('Hello World');");
//直接執(zhí)行l(wèi)ua文件
context.evalScriptFromFile("JustDoIt.lua");
而我主要是為了實(shí)現(xiàn)在lua中使用java語言創(chuàng)建的對象,我在2.0版本沒有實(shí)現(xiàn)酣胀,不知道是不是使用姿勢不對,于是采用1.3.5版本的娶聘。
首先自己對象類要繼承LuaObjectClass
image.png
然后在lua中使用闻镶。
首先需要對其進(jìn)行構(gòu)建。
local bili = Parame.create();
//取得對象中的變量
bili:x();
//調(diào)用內(nèi)部的方法
bili:haha();
當(dāng)然你也可以直接用從java方向返回回來的數(shù)據(jù)丸升,然后lua端接收铆农。
image.png
然后慎用lua中對象的create,因?yàn)樗麜加胘ni層的引用表狡耻,而jni的引用表最大占用是512墩剖,不能修改,lua中創(chuàng)建的對象不能動態(tài)銷毀夷狰,導(dǎo)致jni層報錯岭皂。