【发布时间】:2011-05-12 04:18:38
【问题描述】:
我从 appcelerator 安装了 Titanium 并构建了“KitchenSink”示例应用程序。
一切正常,我只是想知道 javascript 代码在构建的应用程序中的最终位置。
我对 Xcode 项目和结果应用程序进行了 grep-ed,因为我在 Library/Application Support/iPhone Simulator/....KitchenSink.app 中找到了它,但我在 .js 文件中找不到任何函数名称,甚至在应用程序中使用的字符串文本也找不到。
我找到的最接近的信息是这里的答案:How Does Appcelerator Titanium Mobile Work?,但我不清楚这个过程是如何工作的。
javascript 代码是被编译成二进制代码(然后使用什么编译器?),还是只是转换为某种特殊的数据格式并在运行的应用程序中解释?
更新:
这是我在 KitchenSink 的 build/android 目录中看到的:
michal:bin mac$ find . -name table_view_layout\*
./assets/Resources/examples/table_view_layout.js
./assets/Resources/examples/table_view_layout_2.js
./assets/Resources/examples/table_view_layout_3.js
./assets/Resources/examples/table_view_layout_4.js
./assets/Resources/examples/table_view_layout_5.js
./classes/org/appcelerator/generated/examples/table_view_layout.class
./classes/org/appcelerator/generated/examples/table_view_layout_2.class
./classes/org/appcelerator/generated/examples/table_view_layout_3.class
./classes/org/appcelerator/generated/examples/table_view_layout_4.class
./classes/org/appcelerator/generated/examples/table_view_layout_5.class
michal:bin mac$ unzip -t app.apk | grep table_view_layout
testing: assets/Resources/examples/table_view_layout.js OK
testing: assets/Resources/examples/table_view_layout_2.js OK
testing: assets/Resources/examples/table_view_layout_3.js OK
testing: assets/Resources/examples/table_view_layout_4.js OK
testing: assets/Resources/examples/table_view_layout_5.js OK
我之前没有查看 app.apk,我只能看到这些类文件对应于每个 javascript 文件。因此,我假设在 Android 上正在为 JVM 编译 javascript。为什么在 app.apk 中找不到这些?
【问题讨论】:
-
我在这里可能是错的,但是当我几个月前尝试适用于 Android 的 Appcelerator 时,我得到的印象是 javascript 代码根本没有编译。相反,它是随 .apk 文件和一个在运行时运行 javascript 代码的 javascript 解释器一起提供的。否则他们为什么会首先将 javascript 代码包含在 apk 文件中?
标签: javascript iphone android objective-c titanium