lua 调用android方法,android下调用lua脚本方法

在android里使用lua的文章网上已经有很多,这里就不具体说了。但网上大多数的例子只是简单的在java里调用了LdoString,很少有提到如何加载lua脚本文件。所以,这里主要说一下如何直接调用lua脚本文件的方法。我在网上查找到的方法以及自己研究后的结果整理如下:

lua脚本是文本文件,为了不让android将其编译成二进制的形式,一般将其放到res/raw下面或者assets下面。但在android里所有这些资源都是在apk包里的(本人经验不是很多,这是我目前所以理解的),所以不能够直接通过文件路径的方法访问,于是luajava的LdoFile也无法正常加载lua文件。那么只好通过变通的方式执行lua脚本了。

假设我们的lua文件为/res/raw/hello.lua(放在assets下也是同样的道理)

一、利用流读取lua脚本的内容并将其赋值给String变量,通过LdoString执行。

网上有类似的方法,整理如下:

Java代码 38022573_1.pngL.LdoString(readStream(getResources().openRawResource(R.raw.hello)));

其中getResources().openRawResource(R.raw.hello))返回的是hello.lua的文件流。

readStream是读取全部文件内容,并以String的类型返回,代码如下

Java代码 38022573_1.pngprivateString readStream(InputStream is) {

try{

ByteArrayOutputStream bo = newByteArrayOutputStream();

inti = is.read();

while(i != -1) {

bo.write(i);

i = is.read();

}

returnbo.toString();

} catch(IOException e) {

Log.e("ReadStream","读取文件流失败");

return"";

}

}

这样就可以通过LdoString的方式执行lua脚本了。

二、将lua脚本复制到files文件夹下,再执行LdoFile

该方法主要是将apk中的lua文件复制出来,以便让程序能够通过文件路径的方式访问到脚本,进而可以执行LdoFile方法。

Java代码 38022573_1.pngprivatevoidcopyResourcesToLocal() {

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值