初识Lua

Lua介绍

其他

学习

阅读

工具

总结

基础的机制与原理

lua的理解

  • lua 只有一种通用数据结构 table
  • 由于 lua 的数据结构很简单,所以我们可以认为沙盒中放着一张只有 function 和 table 两种复杂数据类型构成的图。

lua 代码结构及部分理解

文件

  • 全局
    • 全局变量
    • 全局方法
  • 本地(local定义的本地变量和方法)
    • 本地变量
    • 本地方法
    • 本地变量-表
      • 表的实例方法
      • 表的类方法
    • return 外部要用到的变量
  • 数组 = 表
  • 字典 = 表
  • 对象 = 表
  • 类 = 对象 (没有类的概念只有对象(表),具有clone自身的对象可以看做类)

Lua问题

  • lua是编译型还是解释型 :解释型
  • 怎么理解local BaseApplication = require "VersionController" (VersionController.lua)
  • :和. 分别代表什么意思?前者实例方法可以调用Self,后者静态方法没有Self隐式变量
    :如 Application:init_app
  • Lua 作用域
  • 如下代码
  • VersionController.lua

技术点

动态更新
  • 冷更
    • 更新时机:重新进入应用或者插件才会更新
    • 具体方法
      • 预建设
        • 建一个 app版本和脚本版本映射的关系表。
        • 脚本版本,如 3.2.1 (主版本号.子版本号.补丁版本号)
      • 更新
        • 进入应用时检查脚本是否有更新,有更新下载最新脚本,实现动态更新。
  • 热更

    • 更新时机:应用和插件运行期间也可以更新
    • 具体方法
      • 预建设(同冷更)
      • 目标:针对应用版本和本地脚本的版本需要更新的
      • 更新
        • 更新时机
          • 1、合适时机如应用启动端上请求是否更新;2、服务端通知客户端更新
        • 实现,下载更新脚本,修改内存中已经加载过的对象
  • 热更的实现@如何实现,有待验证

与c++相互通信
移动端使用的安全隐患
继承和多继承的实现

阅读

Lua集成和使用

  • 1、下载lua源码:download source code

  • 2、打开src目录,将Makefile、lua.c、luac.c三个文件删除掉(src文件夹下为Lua的源码文件)重命名src为"lua版本号",如lua5.3.5。

  • 3、将lua5.3.5文件直接拖拽到xcode中。

  • 4、编译会报如下错误。
    'system' is unavailable: not available on iOS

    #if defined(__APPLE__)
        #include "TargetConditionals.h"
        #if TARGET_OS_IOS || TARGET_OS_WATCH || TARGET_OS_TV
        #define system(s) ((s)==NULL ? 0 : -1)
        #endif // end iOS
    #elif defined(__ANDROID__)
    
        #define system(s) ((s)==NULL ? 0 : -1)
    #endif
    

    参考:http://lua-users.org/lists/lua-l/2017-09/msg00242.html

    - String 表示一个不可变的字节序列。?

开发工具

  • ideal
  • android studio
  • xcode
  • subline
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。