Lua之实现跨平台移动开发

Lua为什么可以在移动开发实现跨平台?


答:

Lua底层是通过C编写实现的,

Android通过JNI技术调用C,

iOS也是完全兼容C语言。



先来看看一个Andorid和iOS项目,初步理解一下Lua在项目的配置。

下面是android项目使用Lua的工程配置,其中luajava.jar是Java代码封装包,libluajava-1.1.so在底层封装了.C 文件,实现了lua相关底层功能。

Lua之实现跨平台移动开发_第1张图片

Lua之实现跨平台移动开发_第2张图片


ios使用Lua配置如下:

Lua之实现跨平台移动开发_第3张图片




iOS允许开发者使用C语言文件和objective-c文件混合编程。但是,如果你在Objective-C的代码中调用C文件中的函数,你不能直接将.c文件import到你的OC文件中,这样是不起作用的。你需要先创建一个.h 头文件 里面包含你的函数申明,同时将这个.h 头文件import到.c文件中,.c文件负责实现要调用的函数。最后将你新创建的.h头文件import到OC文件中,这样你就可以在OC的文件中调用C的方法了。下面是我随便写的一个例子,在OC的.m文件中调用.c中的打印函数。c语言的.h文件

[objc]  view plain  copy
  1. //  
  2. //  TestPrint.h  
  3. //  TestDemo  
  4.   
  5. #ifndef TestDemo_TestPrint_h  
  6. #define TestDemo_TestPrint_h  
  7.   
  8. void printlog();  
  9.   
  10. #endif  
C语言中.c文件
[objc]  view plain  copy
  1. //  
  2. //  TestPrint.c  
  3. //  TestDemo  

  4. #include   
  5. #include "TestPrint.h"  
  6.   
  7. void printlog(){  
  8.     printf("hello world !!!");  
  9. }  
OC的.m文件
[objc]  view plain  copy
  1. //  
  2. //  AClass.m  
  3. //  TestDemo  
  4.   
  5. #import "AClass.h"  
  6. #import "TestPrint.h"  
  7.   
  8. @implementation AClass  
  9. - (void)printfhello{  
  10.     printlog();  
  11. }  
  12. @end  

你可能感兴趣的:(Lua)