我从appcelerator安装了Titanium并构建了"KitchenSink"示例应用程序.
一切正常,我只是想知道javascript代码在构建的应用程序中的最终位置.
我发现了Xcode项目和结果应用程序Library/Application Support/iPhone Simulator/....KitchenSink.app,但是我找不到.js文件中的任何函数名,甚至找不到应用程序中使用的字符串文本.
我找到的最近信息是答案:Appcelerator Titanium Mobile如何工作?但我不清楚这个过程是如何运作的.
将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
Run Code Online (Sandbox Code Playgroud)
之前我没有查看app.apk,我只能看到这些类文件对应于每个javascript文件.因此我假设在Android上javascript正在为JVM编译.为什么不能在app.apk中找到这些?
Rhodes,Phonegap和Appcelerator如何能够使用Javascript或Ruby,并将它们编译成应用程序SDK的二进制文件,这些应用程序SDK通常需要用Obj-C,Java和其他文件编写应用程序?
我读了很多文章(我在下面列出),但我无法得到一致的答案.我们可以选择以下2个答案中的一个吗?如果您为Appcelerator或任何竞争对手工作,请说明.谢谢!
仅供参考,我正在使用Titanium Studio 1.7.2.
A)是的,它编译为本机代码,但是一些代码必须保留在Javascript中并在运行时解释.
B)不,这不是Titanium的工作方式.
以下是文章,我读过:
1)Corona,Phonegap,Titanium之间的比较
2)http://developer.appcelerator.com/blog/2010/12/titanium-guides-project-js-environment.html
我无法找到有关Titanium SDK如何工作的明确信息.
我对此有点困惑.Titanium正在吹嘘能够使用CSS进行样式,使用javascript编程并使用HTML5创建,同时使最终产品成为平台的原生.这怎么可能?如果我用JS/HTML/CSS编写,那么它们不会在浏览器中运行吗?让他们非原生?
当您为Adobe AIR编写HTML/CSS/JavaScript应用程序时,源文件位于任何查看的人都可以看到的目录中.
Appcelerator Titanium允许您使用JavaScript,Python和Ruby进行编码.捆绑是否类似于AIR,所有源都暴露在外?
titanium ×5
iphone ×3
android ×2
javascript ×2
objective-c ×2
appcelerator ×1
compilation ×1
cordova ×1
ios ×1
java ×1
native ×1
python ×1
rhodes ×1
ria ×1
ruby ×1