玩过“愤怒的小鸟”的程序猿都应该清楚,这个游戏每一关的脚本都是用lua来写的。你如果不信就下载一个angrybird.apk文件解压后查看它的文件结构。就会发现,这个文件中多了一个lib文件夹,里面有两个文件夹,这两个文件夹中包含了分别有一个.so的文件,熟悉Linux的人应该知道linux下的动态链接库(和windows下的.dll动态链接库类似)。这就是为什么Android是基于linux的证明之一。下面简单的介绍一下,在Android中嵌入lua的步骤。
1,下载lua5.1.4源码和luajava源码。
2,用android ndk编译 lua源码和luajava源码。生成一个.so文件。(具体步骤可以参考亚历山大兄弟博客园,再此不加赘述)
3,按照一下步骤:
1,将lib文件夹直接拷贝到你新建工程的根目录下。
2,luajava下的org文件夹拷贝到工程src目录下。
然后在你的android工程目录下新建一个.java的源文件
输入以下代码(仅供参考)
==================以下代码==================
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TextView tv =(TextView)findViewById(R.id.txt);
LuaState L = LuaStateFactory.newLuaState(); //打开Lua
L.openLibs(); //打开标准库
L.LdoString("text = 'Hello Android, I am Lua.'");
L.getGlobal("text");
String text = L.toString(-1);
tv.setText(text);
}
==================以上代码==================
当然,你还需要在你的main.xml中写一个TextView id 为txt。
按照以上的步骤,运行一个简单的luaAndroid应用程序应该没有任何问题。
简单的贴几个图看看效果吧。