android脚本需语言,Android中使用脚本语言Lua
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相关推荐
- arcgis python脚本之家_arcgis中Python脚本的使用
[初学入门]ArcGIS中Python脚本的使用 By:飞天小猪 目录 写在前面的话 (2) 前言 (2) 一.PYTHON语言基础 (3) 1数学运算符 (3) 2字符串操作 (4) 3模块的使用( ...
- c# winform项目多语言实现(支持简/繁/英三种语言),Winform中多国语言窗体设计.doc...
Winform中多国语言窗体设计.doc Winform中多国语言窗体的设计以及.NET中资源文件的使用 最近在做一些多国语言的软件,就学习了一下.NET中的多国语言相应知识,受益不少,下面我就简单介 ...
- java 是脚本语言_java中使用脚本语言
1. 脚本语言的特点 * 灵活:脚本语言一般都是动态类型,可以不用声明变量类型而直接使用,也可以在运行期改变类型. * 便捷:脚本语言是一种解释型语言,不需要编译成二进制代码,也不需要向java一样生 ...
- C语言程序中调用脚本,C语言调用SHELL脚本
在Linux 环境下Shell脚本具有非常强大的功能!使用Shell可以很方便的使用和管理Linux系统,最近学习了一点shell知识,所以一直在 想要是可以在C/C++中调用shell脚本那该有多 ...
- 记录linux启动次数的脚本,类UNIX系统中启动脚本记录
#程序运行时进程名称(唯一) EXE_NAME="" #此语句表示先杀掉存在的进程 for PID in `ps -ef | grep -v grep | grep Java | ...
- 删除html中所有的脚本,从HTML内容中删除脚本标记
翻过高山走不出你 使用PHP DOMDocument解析器.$doc = new DOMDocument();// load the HTML string we want to strip$doc- ...
- C语言字符串中运算符,c语言字符串中找到一个运算符,怎样实现运算
1.一个字符串里面包含运算符,要转成正常运算的运算符,可以用 宏指令.相当于直接执行语句.宏指令在不同语言中执行方式不同的. 2.例程: //基本的堆栈思想 #include #include typ ...
- C语言输入中10A20B,C语言实验报告第3章答案.doc
C语言实验报告第3章答案.doc 3.2基础实验一.程序分析1.以下程序若输入a,则输入格式为c1a:运行结果为_a,A_.includestdio.hintmain char c1,c2;scanf ...
- jira 切换 语言_JIRA中的标记语言的语法参考
前言 看到网上有的文章说JIRA是使用Textile这门标记语言,有些语法和Wikitext和Markdown相像.JIRA在2017年进行了一次大更新,某些语法可能和以前不大一样,这里纪录一下常用的 ...
- android 代码写命令,monkey基本命令及脚本编写(示例代码)
Monkey 是Android自带的黑盒测试工具,一般通过随机触发界面事件,来确定应用是否会发生异常,多用于android应用的稳定性.压力测试 基本命令: adb shell monkey [opt ...
最新文章
- LeetCode:144_Binary Tree Preorder Traversal | 二叉树的前序遍历 | Medium
- (十三) 构建dubbo分布式平台-dubbo管控台安装
- mysql mongodb binlog_订阅MongoDB的数据变更比解析mysql的binlog更简单
- 【数据格式】Jackson 美化输出JSON,优雅的输出JSON数据,格式化输出JSON数据
- jdbc mysql url写法_MySQL第04篇:JDBC
- 服务器系统事件报错4103,IIS信息服务器排错指导
- int 转为字节后 低字节在前_NumPy 字节交换
- php生成站点地图,php生成百度站点地图sitemap.xml
- HDU 5009 Paint Pearls
- 实战 Nginx 与 PHP(FastCGI)的安装、配置与优化
- QPSK、16QAM、64QAM
- 100个日常实用脚本
- 多媒体架构---display介绍
- 计算机行业绩效管理,【计算机仿真论文】计算机信息系统在绩效管理中的应用(共4413字)...
- 计算机无法安装操作系统的原因,关于电脑无法安装IE浏览器的原因有哪些
- MQ入门之看MQ项目源码 XXL-MQ
- 【RNAseq】差异分析
- win10睡眠模式 屏幕熄灭主机仍然运行
- 什么是android SDK和API
- DolphinPHP 框架wangeditor编辑器图片路径改为绝对链接