Lua脚本语言是一个很强大的轻量级脚本,嵌入在App中扩展开发很不错的。

1、Android与Lua的环境搭建直接下载网上编好的库(.so和.jar)放到libs下。下载地址

2、Android中调用Lua

1) 初始化以及变量赋值方法LuaState mLuaState;

mLuaState = LuaStateFactory.newLuaState();

mLuaState.openLibs();//加载库

mLuaState.LdoString("x = 101");//执行一段lua语言,这就是对变量x赋值了

LuaObject obj = mLuaState.getLuaObject("x"); // 取得参数,以LuaObject类返回到java中

System.out.println("result: "  + obj.toString());

2) Android类调用lua并回调

Android调用Lua函数,同时把类作为参数传递过去,然后再Lua中回调类的函数调用luamLuaState = LuaStateFactory.newLuaState();

mLuaState.openLibs();

mLuaState.LdoString(KKLua.loadAssetsString(mContext, "lua/swallow.lua"));//将lua转换为字符串

mLuaState.getField(LuaState.LUA_GLOBALSINDEX, "luaUpdate");//获取lua中的function

mLuaState.pushJavaObject(this);//传递参数

mLuaState.call(1, 0);//一个参数, 0个返回值回调接口public void luaDraw(int imageId, int x, int y, int scale) {//注意也必须要是public, lua才能调用到

System.out.println("imageId, x, y, scale: " + imageId + ", " + x + ", " + y + ", " + scale);

}lua代码function luaUpdate(luaCanvas)

luaCanvas:luaDraw(0, 1, 2, 1)

end

3、luajava介绍(在LuaJava库里面包含的)

lua中是没有类的,luajava库中有个luajava可以创建java中的类,并调用。下面介绍几个方法newInstance(className, ...)

说明:可以根据类名创建一个Java类,同时返回一个lua变量与Java类对应。这样在lua中就可以直接调用Java中的方法了。obj = luajava.newInstance("java.lang.Object")

-- obj is now a reference to the new object

-- created and any of its methods can be accessed.

-- this creates a string tokenizer to the "a,b,c,d"

-- string using "," as the token separator.

strTk = luajava.newInstance("java.util.StringTokenizer",

"a,b,c,d", ",")

while strTk:hasMoreTokens() do

print(strTk:nextToken())

endbindClass(className)

说明:可以让lua中的变量对应一个Java的类(是类,不是实例),这样就可以用lua的这个变量创建实例以及调用静态类sys = luajava.bindClass("java.lang.System")

print ( sys:currentTimeMillis() )

-- this prints the time returned by the function.new(javaClass)

说明:这个就是在bindClass的基础上创建的str = luajava.bindClass("java.lang.String")

strInstance = luajava.new(str)createProxy(interfaceNames, luaObject)

loadLib(className, methodName)

这两个方法目前还没用到,以后会用了再介绍

android脚本需语言,Android中使用脚本语言Lua相关推荐

  1. arcgis python脚本之家_arcgis中Python脚本的使用

    [初学入门]ArcGIS中Python脚本的使用 By:飞天小猪 目录 写在前面的话 (2) 前言 (2) 一.PYTHON语言基础 (3) 1数学运算符 (3) 2字符串操作 (4) 3模块的使用( ...

  2. c# winform项目多语言实现(支持简/繁/英三种语言),Winform中多国语言窗体设计.doc...

    Winform中多国语言窗体设计.doc Winform中多国语言窗体的设计以及.NET中资源文件的使用 最近在做一些多国语言的软件,就学习了一下.NET中的多国语言相应知识,受益不少,下面我就简单介 ...

  3. java 是脚本语言_java中使用脚本语言

    1. 脚本语言的特点 * 灵活:脚本语言一般都是动态类型,可以不用声明变量类型而直接使用,也可以在运行期改变类型. * 便捷:脚本语言是一种解释型语言,不需要编译成二进制代码,也不需要向java一样生 ...

  4. C语言程序中调用脚本,C语言调用SHELL脚本

    在Linux 环境下Shell脚本具有非常强大的功能!使用Shell可以很方便的使用和管理Linux系统,最近学习了一点shell知识,所以一直在 想要是可以在C/C++中调用shell脚本那该有多 ...

  5. 记录linux启动次数的脚本,类UNIX系统中启动脚本记录

    #程序运行时进程名称(唯一) EXE_NAME="" #此语句表示先杀掉存在的进程 for PID in `ps -ef | grep -v grep | grep Java | ...

  6. 删除html中所有的脚本,从HTML内容中删除脚本标记

    翻过高山走不出你 使用PHP DOMDocument解析器.$doc = new DOMDocument();// load the HTML string we want to strip$doc- ...

  7. C语言字符串中运算符,c语言字符串中找到一个运算符,怎样实现运算

    1.一个字符串里面包含运算符,要转成正常运算的运算符,可以用 宏指令.相当于直接执行语句.宏指令在不同语言中执行方式不同的. 2.例程: //基本的堆栈思想 #include #include typ ...

  8. C语言输入中10A20B,C语言实验报告第3章答案.doc

    C语言实验报告第3章答案.doc 3.2基础实验一.程序分析1.以下程序若输入a,则输入格式为c1a:运行结果为_a,A_.includestdio.hintmain char c1,c2;scanf ...

  9. jira 切换 语言_JIRA中的标记语言的语法参考

    前言 看到网上有的文章说JIRA是使用Textile这门标记语言,有些语法和Wikitext和Markdown相像.JIRA在2017年进行了一次大更新,某些语法可能和以前不大一样,这里纪录一下常用的 ...

  10. android 代码写命令,monkey基本命令及脚本编写(示例代码)

    Monkey 是Android自带的黑盒测试工具,一般通过随机触发界面事件,来确定应用是否会发生异常,多用于android应用的稳定性.压力测试 基本命令: adb shell monkey [opt ...

最新文章

  1. LeetCode:144_Binary Tree Preorder Traversal | 二叉树的前序遍历 | Medium
  2. (十三) 构建dubbo分布式平台-dubbo管控台安装
  3. mysql mongodb binlog_订阅MongoDB的数据变更比解析mysql的binlog更简单
  4. 【数据格式】Jackson 美化输出JSON,优雅的输出JSON数据,格式化输出JSON数据
  5. jdbc mysql url写法_MySQL第04篇:JDBC
  6. 服务器系统事件报错4103,IIS信息服务器排错指导
  7. int 转为字节后 低字节在前_NumPy 字节交换
  8. php生成站点地图,php生成百度站点地图sitemap.xml
  9. HDU 5009 Paint Pearls
  10. 实战 Nginx 与 PHP(FastCGI)的安装、配置与优化
  11. QPSK、16QAM、64QAM
  12. 100个日常实用脚本
  13. 多媒体架构---display介绍
  14. 计算机行业绩效管理,【计算机仿真论文】计算机信息系统在绩效管理中的应用(共4413字)...
  15. 计算机无法安装操作系统的原因,关于电脑无法安装IE浏览器的原因有哪些
  16. MQ入门之看MQ项目源码 XXL-MQ
  17. 【RNAseq】差异分析
  18. win10睡眠模式 屏幕熄灭主机仍然运行
  19. 什么是android SDK和API
  20. DolphinPHP 框架wangeditor编辑器图片路径改为绝对链接

热门文章

  1. 【转载】win10右下角图标模糊如何解决_win10系统右下角图标突然变模糊怎么办-win7之家
  2. Python3 用turtle库学画画——(一)美国队长盾牌
  3. TA技术美术学习路线
  4. vim - 格式化JSON
  5. paypal支付开发接口(转)
  6. 机器人行业毕业相关小结
  7. css基础 CSS 布局 – Overflow、Float 浮动、CSS 布局 – 水平 垂直居中对齐
  8. (8.1)基于牛顿-欧拉公式的动力学方程
  9. 【洛谷1137】旅行计划【拓扑排序模板】
  10. regester正则用法_Regester下载