Adobe Flash/Flex在iOS上与MonoTouch相比如何?

3
现在你可以使用Adobe 使Flash/Flex编译为iPhone和iPad。那么这与MonoTouch有什么区别呢? Adobe的解决方案是否真的能编译成本地iOS代码?还是只是一个iOS Air容器,运行您的代码,并能够通过Air容器访问本机iOS调用?我想知道Adobe与MonoTouch相比有何不同。我只是想了解两种技术之间的区别。如果有的话。或者他们的原理完全相同。
3个回答

8
他们都创建了在设备上运行的原生二进制文件。简而言之,Monotouch允许您使用除Objective-C外的其他语言使用Apple的SDK。您还可以访问Mono基类库,并编写托管代码而不是非托管代码。从本质上讲,如果您选择使用Objective-C,那么与使用Monotouch创建绑定到本机Cocoa Touch API的应用程序非常相似。
Adobe Air/Flex的抽象程度更高一些。是的,它也可以让您避免使用Objective-C,但您并不是真正使用Cocoa Touch SDK,而是使用Adobe的。这意味着它可能更具跨平台性,但性能可能不如Monotouch。最终,它仍然被编译成一个本地二进制文件。

1
Adobe的解决方案是否真正编译成本地iOS代码?
是的,这就是为什么创建正式发布版本需要很长时间的原因。我听说导出iOS需要花费5分钟(还好)到30分钟以上的时间。 此信息来源 标准打包方法将应用程序SWF文件的字节码转换为ARM指令后再进行打包。由于在打包之前需要进行额外的翻译步骤,因此使用此方法创建应用程序(IPA)文件需要几分钟的时间。标准方法比快速方法需要更长的时间。但是,标准方法的应用程序性能达到发布质量,并且适合提交到Apple App Store。 第二个来源 在iOS上,ADT将SWF文件的字节码和其他源文件转换为本地iOS应用程序。

-

Or is it just a iOS Air container that runs your code which is able to access the natife iOS calls through the Air container?

对于进行任何形式的运行时处理或解析代码都违反了苹果开发者许可协议。这就是为什么某些功能(例如SWFLoader)不支持iOS的原因。

我对Monotouch一无所知,无法进行比较。


1
好问题。我的原始问题甚至被投票“关闭”,我不知道为什么。 - 7wp
我不确定(因为我没有给它投反对票),但我的猜测是,在问题要求“X与Y相比如何”时,您的答案结尾应该是“所以无法比较这两个”。 - poupou
@7wp 我是投票关闭的人。这是一种会引发辩论和长时间讨论的问题类型。它不能用直接的事实回答。尽管如此,我决定发布自己的答案,以对你的一些直接问题提供一些事实上的答案。 - JeffryHouser

-2

我不清楚这个答案与我提供的答案有什么不同,而且我被投了很多负分。 - JeffryHouser
这是真的...我不太确定为什么上面的答案被踩了。 - Akshay
1
我不确定(因为我没有给它投反对票),但我的猜测是,在问题询问“X与Y相比如何”,回答时以“因此无法比较”结束。 - poupou

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接