20140102-lua binder另一只轮子的雏形】的更多相关文章

书接上一回,说到要继续丰富对类型的处理.那么如何才能做到呢,应该是要支持自定义的,所以这一回要讲的就是在前面的基础上,增加支持自定义部分,其中包含以下几个部分 函数的默认参数设置,包括有几个默认参数和如何设置这些默认参数: 可以做为返回值的参数下标(Lua支持多值返回): 如何将函数的结果和当做返回值的函数的参数压入到Lua: 如何将函数的结果压入到Lua中(看起来和上一点重复,默认情况下是调用上一条进行压入Lua): 将当做返回值的函数的参数(所有需要返回的)压入Lua: 如何确定中间存放函数…
Binder在Android系统中江湖地位非常之高.在Zygote孵化出system_server进程后,在system_server进程中出初始化支持整个Android framework的各种各样的Service,而这些Service从大的方向来划分,分为Java层Framework和Native Framework层(C++)的Service,几乎都是基于BInder IPC机制. Java framework:作为Server端继承(或间接继承)于Binder类,Client端继承(或间…
Lua可作为扩展性语言(Lua可以作为程序库用来扩展应用的功能),同时也是个可扩展的语言(Lua程序中可以注册由其他语言实现的函数). C和Lua交互的部分称为C API.C API是一个C代码与Lua进行交互的函数集.他由以下部分组成:读写Lua全局变量的函数.调用Lua函数的函数.运行Lua代码片断的函数.注册C函数然后可以在Lua中被调用的函数,等等. API中有些函数为了方便以宏的方式实现. 当在Lua和C之间交换数据时我们面临着两个问题:动态与静态类型系统的不匹配和自动与手动内存管理的…
1.functions.lua (framework->functions.lua) 提供一组常用函数,以及对 Lua 标准库的扩展 1.printf 2.checknumber checkint checkbool checktable isset3.深度克隆一个值 clone 4.创建一个类 class 5.载入一个模块 import() 与 require() 功能相同,但具有一定程度的自动化特性 6.将 Lua 对象及其方法包装为一个匿名函数  在 quick-cocos2d-x 中,许…
通过上一篇的热身,我们对C++调用lua变量有了一个认识,现在让我们再深入一点,去探索一下如何调用lua的函数.表. Lua与宿主通讯的关键--栈 lua是个动态脚本语言,它的数据类型如何映射到C++这种静态类型语言中?lua是有GC机制的,这与C++手动管理内存相悖.如何解决这些问题呢?lua用一个抽象的栈与宿主语言交互,栈中的每一条记录都可以保存lua值.无论何时,我们想要从lua请求一个值,调用lua,被请求的值将会被压入栈. 栈是由lua来管理的,垃圾回收器知道哪个值正在被C使用(如果从…
  以下资料摘录整理自老罗的Android之旅博客,是对老罗的博客关于Android底层原理的一个抽象的知识概括总结(如有错误欢迎指出)(侵删): http://blog.csdn.net/luoshengyang/article/details/8923485 http://blog.csdn.net/luoshengyang/article/details/12957169   整理by Doing   Binder机制介绍 传统的IPC ,例如Pipe和Socket,执行一次通信需要两次数…
通过c++调用lua 脚本,    环境VC++6.0    lua  sdk 5.1.4 在调用前先认识几个函数.1.调用lua_open()将创建一个指向Lua解释器的指针.2. luaL_openlibs()函数加载Lua库.3.使用luaL_dofile()加载脚本并运行脚本.4. lua_close()来关闭Lua指向解释器的指针. 5.调用lua_getglobal()将add()函数压入栈顶,add()为lua函数.6.第一个参数x,通过调用lua_pushnumber()入栈.7…
最近在看<Redis入门指南>第二版,感觉收获挺大,推荐大家有时间看一看.其中有一章讲Lua脚本,感觉挺实用,把总结整理一下. Redis在2.6中推出了脚本功能,允许开发者使用Lua语言编写脚本传到Redis中执行.Lua脚本可以调用大部分的Redis命令,使用Lua脚本的好处是: 1)减少网络开销,作为内存型数据库redis的性能开销主要花在发送指令和接收结果的网络开销上,把多条redis指令写在1个Lua脚本里,只需要通过网络发送1次就可以了 2)原子操作 Redis将整个脚本作为1个整…
原文:Lua Performance Tips 偶然找到<Lua Performance Tips>这篇关于Lua的优化文章,个人认为相较于多数泛泛而谈要好不少.尽管Lua已经到5.2版本了,但里面的技术依然能用到,通过翻译自己也能更深入的去了解文中提到技巧.第一次翻译,错误不当之处自然不会少,欢迎指正,谢谢-- 以下为正文 在Lua中,像其他任何编程语言,我们应该总是遵从一下两条优化程序的格言: 规则1:不要优化. 规则2:仍然不要优化(专家除外) 当用Lua编程时,这些规则尤其重要.Lua…
思路 像所有语言一样,绑定回调主要是执行的任务执行到特定情形的时候,调用对用回调方法. 这里也一样.核心思路是,当c代码执行到特定特定情形的时候,调用lua的方法 我这里使用的是用lua_stack直接调用lua的方法,没有使用cocos2dx封装的那个dispatcher,因为熟悉那个格式太墨迹了 主要步骤如下 缓存lua函数在lua环境中的引用 在c代码的地方用c的方式设置好回调 在c代码回调函数执行的时候,调用lua函数 实现 c代码绑定回调,调用lua函数 void ArmatureNo…