我正在研究从相同的代码库有效地创建Android和iPhone目标应用程序的可能方法,无论是在C/C++ / C#/ Objective-C还是Java(使用VMKit).
LLVM看起来很有前景,但是我对于围绕不同ARM CPU实现的兼容性问题略感困惑,主要来自底层芯片组如何“解析”图形和声音代码(即我必须编写特定的ARM芯片组,或者像OpenGL这样的高级API是否足够?).
我对各种Cross Dev产品(即Airplay SDK,MoSync(GPL-GCC),Unity3d,XMLVM等)了解不多,但我真正想做的是用Java编写或使用C/C++引擎,如果可能,发出LLVM IR并创建兼容的ARM可执行文件.
如果上述任何内容含糊不清,请致歉.
谢谢
丰富
解决方法:
编译器不是问题.要为两者进行开发,您需要创建一个允许您在该层上编写单个应用程序的抽象层.然后有两个抽象层实现,一个是进行Android api调用,另一个是进行iPhone api调用.编译器无法帮助您.
LLVM IR在其可移植性方面可能感兴趣的地方是:
int a,b; a=7; b=a-4;
编译为IR然后采用相同的IR并为所有不同的处理器类型生成汇编程序并检查差异.
对于例如需要在显示器上写入像素的实际应用,存在寄存器,显示器的大小和其他差异的大量存在,并且这些差异不在IR和汇编器后端之间暴露但是暴露在主C程序和平台库定义的api调用中,所以你必须解决C中的问题而不是IR或汇编程序.