Flex应用程序是否可以在移动设备上运行?

时间:2012-03-20 19:19:47

标签: flex mobile

设计用于PC的Flex应用程序可以在iPad,iPhone或基于Android的移动设备上运行吗?

似乎是一个简单的问题。访问http://www.adobe.com/products/flex.html会产生一张在Android上运行(可能)Flex应用程序的家伙的照片。所以乍一看,答案似乎是“是”。"故事结局。

但是......

各种技术网站上有很多(错误的)信息表明基于Flash的技术只是在iOS或其他移动平台上运行。为什么是这样?也许他们的意思是说Flex不会开箱即用#34;开箱即用"并需要一个插件?或者他们是否意味着它根本不会运行?

每次我认为我已经得出了明确的结论,一些关于SlashDot或CNET的帖子就直接与之相矛盾。那么独家新闻是什么?可以使用现有的Flex应用程序并在iOS / Android上运行吗? (我意识到需要考虑屏幕尺寸问题,因此应用程序可能无法有效地运行。我只是想知道移动设备上是否有运行时可以启用Flex应用程序。)

抱歉这个菜鸟问题。我的背景是WPF / HTML5。 Adobe技术对我来说完全陌生。

5 个答案:

答案 0 :(得分:4)

如果你想阅读它,我会在下面写下很多内容,如果不是抱歉拿走你的宝贵字节:)我先在这里直接回答了问题:

为什么会这样? 这是一个令人困惑的问题,请阅读下面的详细信息。

也许他们的意思是说Flex不会“开箱即用”而需要一个插件? 或者他们是否意味着它根本不会运行? 使用Flash构建器工具(SDK中的bin文件夹),您可以编译本机桌面应用程序,桌面Web浏览器,本机iOS应用程序,本机Android应用程序。安装了FlashPlayer插件的Android将在Web浏览器中显示Flash内容,iOS将仅运行使用AIR编译的内容,而不是在Web浏览器中运行,而是作为本机应用程序。

每当我认为我已经得出一个明确的结论时,一些关于SlashDot或CNET的帖子就直接与之相矛盾。那么独家新闻是什么?可以使用现有的Flex应用程序并在iOS / Android上运行吗? 是的,如果使用AIR并在所有三个平台上作为本机应用程序运行(桌面Flex API在很大程度上是Web Flex API的超集),那么关于性能和外形的其他要点是有效的,应该加以考虑。好的是你可以在AS3的公共库中编写模型/控制器代码,然后编写所有共享库的独立表示层接口。

这是很长的版本:

使用flash编译器使用swf格式以swf扩展名的文件形式生成“字节码”,您可以在此处阅读更多内容: http://www.adobe.com/devnet/swf.html

要解释该文件,您需要某种程度的运行时,类似于在.NET框架上下文中运行WPF / XAML / C#(桌面或在Web上使用Silverlight)。在adobe技术的情况下(粗略等价):

  • AS3 = C#
  • MXML = XAML
  • Flex = WPF + WCF(客户端RPC不是服务器端)
  • Flash Player = Silverlight
  • AIR(Adobe集成运行时)= .NET 桌面操作系统的框架可再发行的.dll / .so(s)

(请非常宽松地阅读此列表,我知道XAML保留在MSIL或其他任何不同之处,因为MXML被编译为AS3,并且只有在编译器上设置了调试标志它是否包含调试符号时,肯定会大量的差异,但我认为这是一个容易和正确的模型使用)

在iOS上,浏览器不允许使用传统意义上的netscape浏览器插件或ActiveX插件。因此,您无法在浏览器中执行插件即flashplayer或silverlight。由于Adobe确实发布了一款适用于在浏览器中运行的Android设备的flashplayer,它可以在浏览器中的这些设备上运行,但是它们基本上已经被用来支持这个长期,因为它们必须支持大多数移动设备平台, iOS,为了保持相关性(这是我认为更多的是谷歌,设备制造商,运营商,微软的集体投入,只是跟风并试图做出最佳商业决策,WebKit和V8或SpiderMonkey可能做99%的Flash可以做什么,在某些情况下做得更好,WebKit希望不会分裂并保持开源...框架和浏览器只需要充实并稳定下来。

如果用户安装AIR(或运行时随应用程序打包),则可以对Flex / Flash(在AS3和/或MXML中编码并编译为swf的内容)进行转码/打包以由正确运行该设备的运行时间(无论是iOS还是Android或RIM做了什么,我认为他们没有AIR for Windows Phone 7和ARM上的Win8也不支持浏览器插件)。令人困惑的部分原因可能是苹果公司拒绝分发“交叉编译”的应用程序,这使得AIR在iOS开始宣布可用于此目的之后的一年中将其排除在iOS选项列表之外(在他们失败时踢Adobe)。混乱的另一部分可能来自真正的视频,其中有1个人攻击了他们的设备,或者2个人能够获得flash源播放器运行时的开源替代品以便在他们的iOS设备上工作(gnash是我所知道的一些偶尔的Linux修补,也可能是FAKE vids)。

答案 1 :(得分:3)

您可以在移动设备上运行Flex应用程序,但不能简单地运行任何Flex项目。

在Flash Builder(Flex Ide)或Flash Professional中,您可以创建移动项目。这些项目为iOS和Android生成本机应用程序。

上次我尝试过,结果和可用组件的数量低于我的预期。所以,如果可以,我会建议你去Appcelerator.com或类似的东西,它将HTML5 / Js代码转换为本机应用程序。我试过它们,比Flex工作好很多。

答案 2 :(得分:1)

简答:否

答案很长:您可以使用Adobe的工具编译您的Flash / Flex应用程序,以用作本机iOS应用程序。因此,您无法像通常使用Flex一样将该应用程序嵌入到网页中,但您可以将其构建为本机应用程序。请注意,您必须使用Flash Builder 4.5才能执行此操作。

答案 3 :(得分:1)

它不能作为.swf文件在iPhone上运行,但它将在安装了adobe flash的基于Android的设备上运行。它也将在BB剧本上运行,该剧本也有闪光灯。

答案 4 :(得分:0)

Flex是一个框架。(无论如何,它是非常美妙的,甚至有时看起来像完全不同的语言)。

一旦你构建AIR应用程序,它就可以在各种平台上运行,例如:Windows,iOS,Android,upcomming TV,PlayBook,甚至是未来(也许/希望)在Windows Phone上,加上Linux(AIR无论如何,未来还不是很清楚(但希望Adobe会重新考虑))。

所以 - 使用Flash Builder 4.5+创建的应用程序可能会在AIR应用程序中随处运行。 编译方法非常简单,你几乎可以同时编译你想要的所有内容。

这里最重要的事情之一 - 您的应用程序的运行,工作,外观和感觉与您在一台设备上设计的方式相同。 Flex是负责在运行的每个平台上看起来都很美观的东西。 例如,我目前正在为Android编译,即使没有测试,我可以清楚地说它在iOS和Windows下看起来和感觉都一样,而且它会。