Lua 从 APK 中引用

我需要从 APK 中引用(加载)Lua 脚本文件,同时又不想改变 Lua 源代码。

我的第一个想法是复制 loadliblibaux,然后在那里使用 AAsset_* 函数,但是后来我发现 getc 被使用了。我猜想 fopen 是以文本模式打开文件,而 AAsset_* 函数只能以二进制模式打开文件(我猜测)。所以,这里的事情变得复杂了。

你们如何支持从 APK 中引用 Lua 脚本文件?

点赞
用户5675002
用户5675002

请参考http://www.lua.org/manual/5.2/manual.html#pdf-package.searchers

你可以实现自己的搜索器,以最方便的方式从你的 assets/vfs 加载代码块,用你自己的搜索器替换 package.searchers 中的第二个搜索器,然后可能删除第二个搜索器之后的所有搜索器。也就是说,只应该有两个搜索器,第一个搜索器(默认)用来寻找缓存的模块,而第二个搜索器将是你自己的。

类似的功能也适用于 Lua 5.1:http://www.lua.org/manual/5.1/manual.html#pdf-package.loaders

2016-07-30 18:23:05