你可能想看看我的示例项目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