我正在建设一个iPhone应用程序与钛移动1.0而且我看到它编制下一个当地的iPhone二进制的。这怎么工作的?看来似乎就采取了很多重分析JavaScript code和做一个直接翻译成目标-C没有具有超语言280北部的目标-J和卡布奇诺咖啡。

有帮助吗?

解决方案

钛需要你的Javascript代码,分析和预处理,然后将其预编译成一组基于应用程序解析的符号的钛的API的使用。从这个符号层次,我们可以建立一个映射到下面的钛库符号来了解哪些API(以及相关的依存关系,框架等),特别是你的应用程序需求的符号依赖矩阵。我使用这个词符号半通用的方法,因为它是基于语言略有不同。在iPhone,符号映射到最终映射到已经为ARM编译/ I386架构编译.o文件将一个真实的C符号。对于Java,嗯,这是或多或少的.class文件,等等。一旦前端能够理解你的相关性矩阵,我们再调用SDK编译器(即GCC为iPhone,Java的Android版),以便然后编译应用程序进入决赛本机二进制。

所以,想想一个简单的方法是,你的JS代码几乎是一个编译为一个成nativeland代表符号。目前仍然在解释模式下运行,否则类似的事情动态代码是行不通的解释。但是,它的速度更快,更加紧凑,它的大约接近纯天然的映射,你可以得到。

我们显然仍然有足够的空间来改善这一点,并正在研究这一点。因此,在我们最新的1.0测试至今,它几乎无法区分同一Objective-C的直接代码(因为在大多数情况下,这正是映射到)。从CompSci的角度来看,我们现在可以开始但优化的事情,人真的不能轻易做到这一点 - 很像GCC编译器现在已经这样做了。

其他提示

像jhaynie说,应用程序被编入司机代码,但仍有一名翻译在场运行的一些javascript,它允许申请是非常动态的。

appcelerator钛

如果我打包我的简单的充足代码,我收到了〜80MB的gzip压缩文件(原代码〜1kB的)。在这个包 - 等等 - 你可以找到我的HTML源文件和js文件。 也有很多库(SSL为例)随包(因为你可以在此框架内来了很多东西低级别的访问)的。

我觉得他们把你的代码和环绕某种解释软件和库。 在我的情况是,如果我收拾我的HTML和JS代码旁边有一个小小的浏览器只显示我的网站等。

如何过,只要代码工作的每个支持系统上以同样的方式它是一个很好的事情。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top