我从appcelerator安装了Titanium并构建了“KitchenSink”示例应用程序。
一切正常,我只是想知道在构建的应用程序中javascript代码在哪里。
我在Xcode项目和结果应用程序中进行了grep搜索,因为我在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上JavaScript被编译为JVM。为什么这些类文件在app.apk中找不到?