【发布时间】:2011-03-12 03:33:59
【问题描述】:
有没有人写过这个比较的博客,或者有人想在这里试一试吗?很高兴看到一些关于 Android 上的 Adobe AIR 与“本机”Android SDK(Java 中)的一些合理想法。
编辑:尽管观点很少,也没有答案,我还是把这个问题留在这里,因为它是一个需要在某个时候讨论的话题......但如果它没有得到关注,我'过几天就删了。
【问题讨论】:
有没有人写过这个比较的博客,或者有人想在这里试一试吗?很高兴看到一些关于 Android 上的 Adobe AIR 与“本机”Android SDK(Java 中)的一些合理想法。
编辑:尽管观点很少,也没有答案,我还是把这个问题留在这里,因为它是一个需要在某个时候讨论的话题......但如果它没有得到关注,我'过几天就删了。
【问题讨论】:
在构建 AIR 的本机扩展时,我主要使用 AIR,而很少使用 Android SDK。我对 AIR 的最大障碍是它的不成熟、错误和不一致的行为。是的,您可以访问 adobe.com 上的闪亮页面,看看 AIR 有多酷……所有这些都具有大量功能,似乎可以满足您的所有需求。然而,一旦您开始构建您的应用程序,您会发现许多丑陋的惊喜:
暂存文本无法正常工作。 link 除了这个错误,StageText 几乎没有其他错误,例如 Scroller 中的行为。
Sound() 对象不播放流(仅在模拟器上播放)。 link
缺少 AEC 等功能使 AIR 对整个聊天应用程序列表毫无用处,因为您会听到回声和尖叫声。 link
重载(对移动设备来说还不成熟)Flex SDK(我希望 Apache 的人从 0 开始重写它,让它更易于管理)。
iOS 设备上不支持 H264:link(是的,我知道这是 Apple 的问题,他们想在他们的平台上控制高清传输,但仍然是 Adobe 的问题,因为他们无法正确地争取将他们的技术带到最前沿)。
声音对象不采用可变的出价率(只有 44.1KHz 是可能的)。以 16Khz 闪烁“第二代”Speex 编解码器样本。现在,尝试通过 Sound 播放此内容,您将欣赏到有趣的马戏团。最后,您需要编写自己的上采样算法。
我相信人们会在此列表中添加更多内容。所以,对于任何严肃的事情,我的回答是 native SDK 更可取。您不会像 QA 人员那样使用它 - 测试无数小示例,试图了解为什么 AIR 功能不起作用,在互联网上搜索答案并查看 AIR 错误数据库......只是发现关键错误从发布开始就坐在那里释放。这就是我对 AIR 的体验。使用本机 SDK 使您的应用程序不是真正的“跨平台”,但 AIR SDK 无论如何都不能为任何比几个“员工目录”示例更严重的事情声称这个标题。如果您需要为其他平台构建,您只需使用本机工具即可。
GL。
【讨论】:
需要考虑的一个问题是与 Android 设备的兼容性。高档智能手机和廉价手机都运行 Android 系统,但它们的功能不同。即使您的应用程序很简单或可以在 AIR 中精美地完成,也需要提及 AIR 并不兼容所有 Android 设备。
目前销售的一些非常流行的设备(例如三星 ACE 和其他“廉价”设备)使用 ArmV6 芯片,而 AIR 或 Flash 不兼容此架构,即使在 Android 2.2 左右运行时也是如此。
AIR 很有趣,因为相同的开发适用于不同的技术,但考虑到 AIR 也不能在“旧”iPhone 上运行,它只能保证在具有大处理器的新技术上运行。
查看此 Adobe 链接 http://www.adobe.com/flashplatform/certified_devices/
如果您的要求是针对尽可能多的手机,包括那些不是那么花哨或新的手机,则在您的技术决策中应该排除 AIR。
【讨论】:
我认为这最终与桌面应用程序使用 AIR 还是 Java 的问题非常相似。最终归结为三点:
AIR 能满足您的所有需求吗?显然,android SDK 让您可以完全访问设备功能,但 AIR 故意不这样做,以保持便携性。例如,AIR 可能不支持意图,至少最初是这样(我认为 Adobe 还没有宣布任何一种方式)。此外,AIR 需要 Android 2.2。如果这些限制很麻烦,那么常规的 android SDK 可能是最好的。
您是否正在寻找非常适合在 Flash 中执行的操作?如果您正在计划一个包含动画、视频、声音等的重设计应用程序,那么在 Flash 中构建它可能比使用 Java 容易得多。另一方面,如果您的应用程序将是仅使用标准可视化组件的纯代码,那么您使用哪个平台可能不会有什么不同。或者,如果您有现有的 Flash 动画等,那么尝试将它们硬塞到 Java 应用程序中会很麻烦。
您是否针对除 Android 之外的其他平台?如果是这样,AIR 可能是一个巨大的胜利,因为相同的应用程序内容应该可以在 windows、mac、linux 以及稍后计划支持 AIR 的其他设备上运行,如黑莓、一些电视、蓝光光盘播放器等。如果您只针对 Android,AIR 可能会失去一些吸引力。
希望对大家有所帮助。实际上,除非您因为需要一些它没有给您的东西而被有效地锁定在使用 AIR 之外,或者因为您正在进行繁重的设计工作并且需要工具而有效地锁定了使用 AIR,那么我认为优点和这两个 SDK 的缺点主要是方便性问题。任何一个平台都可以工作,所以它只会让你以最快、最可靠的方式到达终点线。
【讨论】: