gpt4 book ai didi

javascript - Appcelerator Titanium Mobile 如何工作?

转载 作者:IT老高 更新时间:2023-10-28 11:23:35 26 4
gpt4 key购买 nike

我正在使用 Titanium Mobile 1.0 构建 iPhone 应用程序,我发现它可以编译为原生 iPhone 二进制文件。这是如何运作的?在没有像 280 North 的 Objective-J 和 Cappuccino 这样的超集语言的情况下,分析 JavaScript 代码并直接翻译成 Objective-C 似乎需要大量繁重的工作。

最佳答案

Titanium 获取您的 Javascript 代码,对其进行分析和预处理,然后将其预编译成一组符号,这些符号将根据您的应用程序对 Titanium API 的使用进行解析。从这个符号层次结构中,我们可以构建一个映射到底层 Titanium 库符号的符号依赖矩阵,以了解您的应用程序需要哪些 API(以及相关的依赖关系、框架等)。我以半通用的方式使用符号这个词,因为它根据语言而有所不同。在 iPhone 中,符号映射到真正的 C 符号,最终映射到为 ARM/i386 架构编译的已编译 .o 文件。对于 Java,嗯,它或多或少是一个 .class 文件等。一旦前端可以理解您的依赖矩阵,我们然后调用 SDK 编译器(即 iPhone 的 GCC,Android 的 Java),然后将您的应用程序编译成最终的 native 二进制。

因此,一种简单的思考方式是,您的 JS 代码几乎是一对一地编译成本地的代表符号。仍然有一个解释器在解释模式下运行,否则动态代码之类的东西将无法工作。但是,它更快、更紧凑,并且尽可能接近纯原生映射。

显然,我们仍有很大的空间来改进这一点并继续努力。到目前为止,在我们最新的 1.0 测试中,它与相同的 Objective-c 直接代码几乎无法区分(因为在大多数情况下它完全映射到那个)。然而,从 CompSci 的 Angular 来看,我们现在可以开始优化人类无法轻易做到的事情——就像今天的 GCC 编译器已经做的那样。

关于javascript - Appcelerator Titanium Mobile 如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2444001/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com