用 Lua 写 Android 应用?AutoLua 做到了

10 阅读1分钟

用 Lua 写 Android 应用?AutoLua 做到了

做了个小工具,技术栈 LuaJava + Lua 5.3。核心思路是把完整 Lua 运行时和 Android API 桥接,让脚本能直接调原生能力。

技术层面几个点

  • Lua 5.3 完整运行时,不是阉割版、不是类 Basic 语法。Goto、协程、位运算全有
  • import "android.graphics.Bitmap" 原生调用,零中间层。想调什么调什么,不等封装、不等更新
  • .alp 压缩工程格式,透明不加密,脚本归属权是用户自己的。随时导出、分享、备份
  • 内置 AES/RSA/MD5/Base64 加解密,网络请求、多线程全支持

一段代码说清楚

-- import 直接用,零封装
import "android.widget.*"
import "android.content.Intent"
import "android.net.Uri"

-- 布局表构建 UI,不是拖控件
layout = {
    LinearLayout,
    orientation = "vertical",
    { Button, text = "点我", id = "btn" },
}
activity.setContentView(LoadLayout(layout))

-- 事件绑定 — getter/setter 简写
btn.onClick = function(v)
    print("clicked")
    -- 直接调系统 API
    local intent = Intent(Intent.ACTION_VIEW)
    intent.setData(Uri.parse("https://www.autolua.top"))
    activity.startActivity(intent)
end

对比同类工具

AutoLua按键精灵TaskerAuto.js
语言Lua 5.3 完整类 Basic可视化JavaScript
调 Java APIimport 直接用不支持支持支持
UI 构建代码自由画录制/模板模板模板

自由度不在一个维度。 Lua 不只是脚本语言,加 LuaJava 桥接后它成了 Android 的一等公民。

内测 & 文档

还在内测阶段,搞机玩家和技术同好来玩。