脚本开头 require 的是什么
require "import" 的真实身份
每个脚本第一行都是它。import 是内置的功能模块,干两件事:提供 import 这个函数本身(把安卓类搬进脚本),以及把一批实用函数变成全局变量直接可用。帮助文档里写得很直白:AndroLua+ 的库函数都在 import 模块里,为了方便用全部做成全局变量——这就是为什么 loadlayout、task 这些函数不用导入就能调。
内置模块全家福
除了 import,随包内置的还有这些(按用途分组):
| 用途 | 模块 |
|---|---|
| 数据格式 | cjson(JSON 读写)、bson、xml、zlib(压缩) |
| 网络 | http、socket、ftp、smtp |
| 图形 | canvas、gl(OpenGL) |
| 硬件 | sensor(传感器) |
| 工具 | md5(哈希) |
用到哪个 import 哪个:import "http"、import "cjson"。没有用到的模块不加载,脚本保持轻快。
记不住清单怎么办
不用记。这组文档就是速查表:网络请求看网络请求,耗时操作看异步线程,调 Java 看 Java 桥。至于 canvas 和 gl 这两个绘图模块,示例代码较长,社区资料也多,需要时再按名检索。
模块之外的全局函数
import 模块带来的全局函数里,最高频的几个:
| 函数 | 干什么 |
|---|---|
| loadlayout(t) | 布局表 → 真实界面 |
| loadbitmap(s) | 载入图片(路径可以是相对、绝对或网络) |
| task / thread | 异步执行(见异步线程) |
| each / enum | 遍历 Java 集合的迭代器 |
| new_env | 造一个干净的运行环境表 |
它们不用 require 就能用,但前提是脚本第一行 require 过 import——很多「函数不存在」的报错,根子是忘了第一行。