Dar*_*don 78 javascript objective-c titanium
我正在使用Titanium Mobile 1.0构建iPhone应用程序,我发现它可以编译为本机iPhone二进制文件.这是如何运作的?似乎需要花费大量精力来分析JavaScript代码并直接翻译成Objective-C,而不需要像280 North的Objective-J和Cappuccino这样的超集语言.
jha*_*nie 147
钛需要你的Javascript代码,分析和预处理,然后将其预编译成一组是根据您的应用程序解决了钛的API使用的符号.从这个符号层次结构,我们可以构建一个符号依赖矩阵,映射到底层的Titanium库符号,以了解您的应用程序需要哪些API(以及相关的依赖项,框架等).我以半通用方式使用单词符号,因为它根据语言略有不同.在iPhone中,符号映射到真正的C符号,该符号最终映射到已为ARM/i386体系结构编译的已编译.o文件.对于Java,它或多或少是.class文件等.一旦前端可以理解你的依赖矩阵,我们然后调用SDK编译器(即iPhone的GCC,Android的Java)然后将你的应用程序编译到最后原生二进制.
因此,考虑它的一个简单方法是将您的JS代码几乎一对一地编译到nativeland中的代表符号中.还有一个解释器在解释模式下运行,否则像动态代码这样的东西就行不通.然而,它更快,更紧凑,并且接近纯粹的原生映射,你可以得到.
我们显然仍然有足够的空间来改进这个并开展工作.因此,在我们最新的1.0测试至今,它几乎无法区分同一Objective-C的直接代码(因为在大多数情况下,这正是映射到).从CompSci的角度来看,我们现在可以开始优化人类真正无法轻易做到的事情 - 就像今天的GCC编译器一样.
归档时间: |
|
查看次数: |
41610 次 |
最近记录: |