上一篇文章粗略的说了在Android中使用Lua脚本实现模拟按键的方法,之前做lua拓展用的方法都是把自己的拓展代码放到lua源码里面一块编译,自己一直想拓展部分代码单独的编译成一个so文件,然后通过require的方式去加载自己的拓展库,由于开始对lua不熟悉,所以只能暂时把代码放一块编译了。
现在终于找到解决办法,require函数调用是会去对应package.path和package.cpath定义好的目录下寻找对应名字的.lua或者.so文件,查看源码知道这两个属性定义的目录如下:
但是Android的应用安装的后,so文件一般会存放在/data/app/应用包名/lib/下面,这个路径我们可以通过
获取到。要使得脚本调用require函数是能搜索到我们的so库,就要把nativeLibraryDir设置到package.cpath中去,代码如下: