首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Appcelerator Titanium是如何工作的?

Appcelerator Titanium是如何工作的?
EN

Stack Overflow用户
提问于 2010-03-15 06:17:08
回答 3查看 41.8K关注 0票数 79

我正在使用Titanium Mobile1.0构建一个iPhone应用程序,我发现它可以编译成本机iPhone二进制文件。这是怎么回事?在没有像280North的Objective-J和Cappuccino这样的超集语言的情况下,分析JavaScript代码并将其直接转换为Objective-C似乎需要很多繁重的工作。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-03-19 00:53:16

it提取您的Javascript代码,对其进行分析和预处理,然后将其预编译为一组符号,这些符号将根据您的应用程序对Titanium的使用情况进行解析。从这个符号层次结构中,我们可以构建一个符号依赖矩阵,该矩阵映射到底层的Titanium库符号,以了解您的应用程序具体需要哪些app (以及相关的依赖项、框架等)。我以一种半泛型的方式使用了符号这个词,因为它在不同的语言中略有不同。在iPhone中,符号映射到真正的C符号,最终映射到已为ARM/i386体系结构编译的编译.o文件。一旦前端可以理解你的依赖矩阵,我们就会调用.class编译器(比如iPhone的GCC,安卓的Java ),然后将你的应用编译成最终的本机二进制文件。

因此,考虑这个问题的一个简单方法是,您的JS代码几乎一对一地编译成原生语言中的代表性符号。仍然有一个解释器在解释模式下运行,否则像动态代码这样的东西将无法工作。然而,它更快,更紧凑,它几乎是你能得到的最接近纯原生映射的映射。

显然,我们仍然有足够的空间来改进这一点,并在那方面努力。到目前为止,在我们最新的1.0测试中,它与同样的objective-c直接代码几乎没有区别(因为在大多数情况下,它都被精确地映射到那里)。然而,从CompSci的角度来看,我们现在可以开始优化人类确实不容易做到的事情-就像今天的GCC编译器已经做的那样。

票数 147
EN

Stack Overflow用户

发布于 2011-04-28 23:39:17

正如jhaynie所说,应用程序被编译成本机代码,但仍然有一个解释器来运行一些javascript,这使得应用程序非常动态。

appcelerator titanium

票数 3
EN

Stack Overflow用户

发布于 2010-03-17 04:09:48

如果我打包我的简单而丰富的代码,我会得到一个大约80MB的gzip归档(原始代码~1kB)。在这个包中,你可以找到我的源html和js文件。包中还附带了很多库(例如ssl)(因为您可以对此框架中的许多内容进行低级访问)。

我认为他们会把你的代码打包成某种解释器、软件和库。在我的例子中,就像我把html和js代码打包到一个只显示我的站点的小浏览器旁边。

无论如何,只要代码在每个支持的系统上以相同的方式工作,这是一件很好的事情。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2444001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档