我是一名网络开发人员,我想将我的网络产品移至iPhone.其中一个产品就像Google地图:在手机屏幕上显示地图,您可以拖动或调整地图大小并查看我们添加到地图中的一些信息.
我知道有一些技术可以让您使用HTML,CSS和Javascript来开发本机iPhone应用程序.我发现了一些:
还有其他同类产品吗?它们之间有什么区别?我该选哪个?
我正在使用Titanium Mobile 1.0构建iPhone应用程序,我发现它可以编译为本机iPhone二进制文件.这是如何运作的?似乎需要花费大量精力来分析JavaScript代码并直接翻译成Objective-C,而不需要像280 North的Objective-J和Cappuccino这样的超集语言.
我从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中找到这些?
我无法在网上找到W3C语言如何编译成机器代码的信息.我知道网络和处理器之间的差距必然是浏览器,但它是如何工作的,以及在处理器中执行Javascript之前的步骤是什么?
科学文件的链接也将受到高度赞赏.