在安卓应用中调用Lua/Python脚本
我需要从一个字符串或者文件中调用Lua或Python脚本,并且希望能够把Java对象绑定到这些脚本里,这样我就可以直接在脚本中使用它们。
大概是这样的:
e.bind("varname", object);
e.call("object.toString()");
可惜的是,Jython虽然很适合我的需求,但在dalvik虚拟机上无法运行。
我也试过kahlua,但看起来我无法在那里面将对象绑定到脚本中。
2 个回答
0
我终于找到了一种脚本语言,特别适合我的需求。
它叫做BeanShell,简单得不能再简单了,几乎就像Java一样。
你可以去看看它的官方网站:BeanShell
这个语言的原作者不再继续开发了,但有一个在Google Code上的活跃项目叫做beanshell2,是BeanShell的继承者。
你可以在这里找到它:BeanShell2
1
假设SL4A不能满足你的需求,你就需要把Python变成一个库(Lua已经是一个库了),然后通过NDK把它连接到你的应用程序里。
而且,因为Lua和Python都不了解Java,所以你需要写一些“胶水代码”来把你的Java对象和Lua、Python脚本连接起来。我猜这应该是可行的,但这只是我的猜测。
这项工作可能不会很简单。