Appceleratortitanium移动如何工作?

我正在使用Titanium Mobile 1.0构build一个iPhone应用程序,我发现它编译到本机iPhone二进制文件。 这个怎么用? 似乎要花费很多繁重的工作来分析JavaScript代码,并直接转换为Objective-C,而不需要像280 North Objective-J和Cappuccino这样的超级语言。

Titanium采用您的Javascript代码,对其进行分析和预处理,然后将其预编译为一组根据您的应用程序使用Titanium API而parsing的符号。 从这个符号层次结构中,我们可以构build一个符号依赖matrix,映射到底层的Titanium库符号,以明确您的应用需要哪些API(以及相关的依赖关系,框架等)。 由于基于语言有点不同,我使用的是半通用的单词符号。 在iPhone中,符号映射到一个真正的C符号,最终映射到已经为ARM / i386体系结构编译的编译.o文件。 对于Java来说,它或多或less是一个.class文件等。一旦前端能够理解你的依赖matrix,我们就调用SDK编译器(即GCC for iPhone,Android for Java),然后将你的应用程序编译成最终的本地二进制。

所以,一个简单的方法就是把你的JS代码几乎一对一地编译成本土的代表符号。 还有一个解释器运行在解释模式,否则像dynamic代码将无法正常工作。 然而,它更快,更紧凑,它接近于纯粹的本地映射,你可以得到。

我们显然还有很大的空间来改进这个工作。 到目前为止,在我们最新的1.0testing中,它几乎与同一个objective-c直接代码没有区别(因为在大多数情况下,它正好映射到那个代码上)。 然而,从CompSci的angular度来看,我们现在可以开始优化人们真正无法轻易做到的事情 – 就像GCC编译器今天已经做的那样。

就像jhaynie说的,应用程序被编译成本地代码,但仍然有一个解释器就地运行一些JavaScript,这使得应用程序非常dynamic。

加速器titanium

如果我打包简单的代码,我会得到一个〜80MB的gzip压缩文件(原始代码〜1kB)。 在包中 – 其中包括 – 你可以find我的源html和js文件。 还有很多库(例如ssl)随软件包一起提供(因为在这个框架中你可以低级访问很多东西)。

我认为他们拿你的代码,并包装某种口译软件和图书馆。 在我的情况下,它会像我打包我的HTML和JS代码旁边的一个小型的浏览器,只显示我的网站。

只要代码在每个支持的系统上工作,就像它是一件好事一样。