android lua require第三方扩展库有三种方式:
1. 用c实现独立的lua模块作为android的第三方动态库来引入,优点是lua扩展库独立方便更新替换,缺点是需要修改虚拟机,开启宏支持dlopen调用的方式,并且还需要设置lua寻找so路径才能正确加载。具体操作流程看这里。
2. 用c实现lua模块作为lua虚拟机动态库的一部分,优点代码实现简单方便,缺点是需要修改虚拟机,不方便lua虚拟机的更新替换。具体操作流程看这里。
3. 用c实现独立的lua模块,在c层或者其他层使用lua虚拟机模块的导出函数来注册lua模块,优点是方便虚拟机的更新替换,缺点是lua拓展库更新替换不方便,若lua拓展库更新并不频繁可采用此种方法,具体步骤分为:
a. 利用luaL_newlib和luaL_Reg来实现lua模块
b. 利用luaL_requiref来注册lua模块