你可能想看看我的示例項目AndroLua。它包含一個使用Android NDK直接嵌入Android應用程序的Lua解釋器。成功將其嵌入到Android應用程序中,只需進行非常小的更改即可。
爲了從您的應用程序中實際使用Lua,LuaJava也被捆綁在一起,允許您從Java使用Lua,反之亦然。
查看應用程序以查看示例,瞭解如何覆蓋print
函數以允許輸出到TextView
而不是控制檯。
更新:加載模塊
我假設你要加載在Lua實現的模塊。模塊加載的標準Lua技術像往常一樣工作 - 您只需將package.path
修改爲您的應用程序數據目錄(或任何要存儲腳本/模塊的位置)。
假設你有一個應用程序的數據目錄中稱爲hello.lua
模塊:
$ adb shell
# cd /data/data/sk.kottman.androlua
# cat hello.lua
module(..., package.seeall)
function greet(name)
print('Hello ' .. name)
end
#
然後嘗試在解釋器運行此代碼:
-- add the data directory to the module search path
package.path = '/data/data/sk.kottman.androlua/?.lua;'..package.path
-- load the module
require 'hello'
-- run a function, should show "Hello Lua!"
hello.greet('Lua!')
你能否澄清如何使用AndroLua向加載一個lua模塊並從該模塊中調用一個函數。謝謝 – Androider 2011-12-19 22:27:37
我已經證實,這個工程。我也有興趣能夠從資源文件加載lua腳本,所以我已經發布這個作爲一個單獨的問題:http://stackoverflow.com/questions/8584678/does-andolua-have-a-way-to-pass -lua的腳本從 - 資源的文件 – Androider 2011-12-21 03:19:06