手机平台下使用lua模拟器的经验总结

4 篇文章 0 订阅

1. 对于一种新的语言,会有很多不明白的地方。解释方案:有针对性地进行测试,在测试中学习lua的语法、函数使用方法。
2. 项目常常是比较紧急,而且有很多新的东西要学习(例如,现在lua要从头开始学习)。这对软件开发都有几点的要求:条理分明,思维敏捷。
3. 测试方案:写一个专门用于测试的文件。遇到不懂的就多测试,尽可能地测试。
4. lua脚本程序是很大的,通常1000行左右代码的文件大小是40K左右(即使是编译后的脚本程序也很大的,跟源文件差不多).在手机等移动

设备平台下,可能由于代码越来越多而导致内存不足而程序无法加载.另外lua虚拟机至少也要用到几十K的空间,而脚本程序在运行时也要分配

一定的内存(这个视乎脚本程序的内容).因此如果将lua移植到这样的平台,就要先考虑一下工程有多大,系统资源是否能满足.
5. 在手机平台下用lua模拟器,写代码的时候一定要小心。它跟写PC平台下的C程序有很大的差别,主要表现为:PC机下的C语言调试很方

便;代码写错了,编译过程中会进行词法和语法等等的检查,所以很快也很容易地发现错误;即使写错了,改了之后再编译一次也很快,大部

分情况下几秒或者十几秒就可以看到改动的结果了。相比之下,在手机平台下lua脚本程序一般是没有调试器的.手机平台下改动一点代码,直

到运行,这个过程要花费很长的时间;另外一方面,lua编译器本身是非常简单的,它把源文件编译成lua虚拟机能执行的目标文件,词法和语

法检查较少,因此要fix一个bug常常要改动很多次,这样就花费很多的时间。针对这一.情况的解决方案:一。做程序时要先做好设计。二。写

代码时要尽量小心,以减少改动。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在Android平台使用Lua调用Java代码,可以使用LuaJava库来实现。下面是经验总结: 1. 下载LuaJava库和Java的jar包,并将其放置到Android工程的libs目录下。 2. 在Java代码中,需要先将Java对象注册到Lua中,以便Lua可以调用该对象的方法和属性。可以使用LuaState对象的pushJavaObject()方法将Java对象推入栈中,再使用LuaState对象的setGlobal()方法将该对象注册到Lua中。例如: ``` LuaState L = LuaStateFactory.newLuaState(); L.openLibs(); JavaObject obj = new JavaObject(); L.pushJavaObject(obj); L.setGlobal("javaObj"); ``` 3. 在Lua脚本中,使用require()函数引入LuaJava库,并使用Java对象的方法和属性。例如: ``` require("luajava") javaObj:sayHello("Hello from Lua!") ``` 4. 使用LuaJava库调用Java代码时,需要注意Java方法的参数类型和返回值类型。如果参数类型或返回值类型与Lua中的类型不匹配,则需要进行类型转换。可以使用LuaJava库的toJavaObject()和toLuaObject()方法进行类型转换。例如: ``` -- 调用Java方法 local str = "Hello from Lua!" local obj = luajava.newInstance("java.lang.String", str) local result = javaObj:callMethod("toUpperCase", obj) -- 转换返回值类型 local strResult = luajava.toJavaObject(result, "java.lang.String") -- 转换Lua类型 local table = {1, 2, 3} local array = luajava.toJavaObject(table, "int[]") ``` 5. 在Android Studio中,需要在build.gradle文件中添加以下依赖: ``` implementation 'org.keplerproject:luajava:1.2.1' implementation files('libs/javassist.jar') ``` 以上就是使用Lua调用Java代码的经验总结,希望对您有所帮助。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值