AsLua 是什么?
AsLua 是一个面向 Android 平台的 Lua 运行与桥接框架,用来在宿主应用中嵌入 Lua 脚本能力,并通过 LuaKt API 访问 Java / Kotlin 世界。
它的目标不是把 Lua 当成独立应用运行环境,而是让 Lua 成为 Android App 内部的一层轻量脚本系统,适合处理以下场景:
- 动态业务逻辑
- 配置驱动流程
- 自动化任务
- 插件式扩展
- 原生能力脚本封装
核心组成
AsLua 主要由三部分组成:
| 组件 | 作用 |
|---|---|
| LuaJIT | 提供脚本运行时、标准库、JIT 和 FFI 能力 |
| LuaKt | 提供 Lua 与 Java / Kotlin 的桥接能力 |
| 宿主 App | 提供上下文、生命周期、线程、文件和业务对象 |
整体调用关系可以理解为:
txt
Android App
-> AsLua Runtime
-> LuaJIT
-> LuaKt
-> Java / Kotlin APIs适用场景
适合
- 需要动态下发或更新一部分业务逻辑
- 希望把部分规则系统写成脚本
- 需要快速编写 Android 侧自动化能力
- 希望在不频繁发版的情况下调整流程行为
- 需要以 Lua 封装 Java / Kotlin 能力供业务复用
不适合
- 需要完整 UI 框架替代原生 Android
- 需要强隔离的多租户脚本沙箱但宿主没有做权限限制
- 需要完全兼容最新 Lua 5.4 语法
当前支持
| 能力 | 状态 |
|---|---|
| LuaJIT | 已支持 |
| Lua 5.1 语法兼容 | 已支持 |
| FFI | 已支持 |
| Java / Kotlin 桥接 | 已支持 |
| Android ARM64 | 已支持 |
| 其他 Lua 版本 | 计划中 |
文档结构
- LuaJIT 使用文档:LuaJIT 语法、模块、FFI、协程、调试与性能建议
- LuaKt 文档:Lua 调用 Java / Kotlin 的桥接说明
推荐阅读顺序
- 先阅读本页,了解 AsLua 的定位与组成。
- 阅读 LuaJIT 使用文档,掌握脚本运行时。
- 阅读 LuaKt 文档,掌握桥接层调用方式。
- 再结合宿主项目,封装自己的
log、java、android和业务模块。
最小心智模型
可以把 AsLua 理解成一句话:
在 Android 应用里,用 LuaJIT 执行脚本,用 LuaKt 访问 Java / Kotlin,用宿主 App 提供生命周期和系统能力。
如果你是第一次接触这个项目,从 LuaJIT 使用文档 开始会比较顺手。